Regen docs (#364)

diff --git a/docs/dyn/acceleratedmobilepageurl_v1.ampUrls.html b/docs/dyn/acceleratedmobilepageurl_v1.ampUrls.html
index 02a5f45..01bb848 100644
--- a/docs/dyn/acceleratedmobilepageurl_v1.ampUrls.html
+++ b/docs/dyn/acceleratedmobilepageurl_v1.ampUrls.html
@@ -111,9 +111,9 @@
         # only once.
       { # AMP URL response for a requested URL.
         "ampUrl": "A String", # The AMP URL pointing to the publisher's web server.
+        "originalUrl": "A String", # The original non-AMP URL.
         "cdnAmpUrl": "A String", # The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to
             # the cached document in the Google AMP Cache.
-        "originalUrl": "A String", # The original non-AMP URL.
       },
     ],
     "urlErrors": [ # The errors for requested URLs that have no AMP URL.
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
index 1dbaef9..361790f 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
@@ -102,14 +102,14 @@
 { # An invitation for a new client user to get access to the Ad Exchange
       # Buyer UI.
       # All fields are required unless otherwise specified.
+    "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+        # The value of this field is ignored in create operations.
     "clientAccountId": "A String", # Numerical account ID of the client buyer
         # that the invited user is associated with.
         # The value of this field is ignored in create operations.
     "email": "A String", # The email address to which the invitation is sent. Email
         # addresses should be unique among all client users under each sponsor
         # buyer.
-    "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-        # The value of this field is ignored in create operations.
   }
 
   x__xgafv: string, V1 error format.
@@ -123,14 +123,14 @@
     { # An invitation for a new client user to get access to the Ad Exchange
         # Buyer UI.
         # All fields are required unless otherwise specified.
+      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+          # The value of this field is ignored in create operations.
       "clientAccountId": "A String", # Numerical account ID of the client buyer
           # that the invited user is associated with.
           # The value of this field is ignored in create operations.
       "email": "A String", # The email address to which the invitation is sent. Email
           # addresses should be unique among all client users under each sponsor
           # buyer.
-      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-          # The value of this field is ignored in create operations.
     }</pre>
 </div>
 
@@ -154,14 +154,14 @@
     { # An invitation for a new client user to get access to the Ad Exchange
         # Buyer UI.
         # All fields are required unless otherwise specified.
+      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+          # The value of this field is ignored in create operations.
       "clientAccountId": "A String", # Numerical account ID of the client buyer
           # that the invited user is associated with.
           # The value of this field is ignored in create operations.
       "email": "A String", # The email address to which the invitation is sent. Email
           # addresses should be unique among all client users under each sponsor
           # buyer.
-      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-          # The value of this field is ignored in create operations.
     }</pre>
 </div>
 
@@ -206,14 +206,14 @@
       { # An invitation for a new client user to get access to the Ad Exchange
             # Buyer UI.
             # All fields are required unless otherwise specified.
+          "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+              # The value of this field is ignored in create operations.
           "clientAccountId": "A String", # Numerical account ID of the client buyer
               # that the invited user is associated with.
               # The value of this field is ignored in create operations.
           "email": "A String", # The email address to which the invitation is sent. Email
               # addresses should be unique among all client users under each sponsor
               # buyer.
-          "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-              # The value of this field is ignored in create operations.
         },
     ],
   }</pre>
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html
new file mode 100644
index 0000000..52f88fb
--- /dev/null
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.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="adexchangebuyer2_v2beta1.html">Ad Exchange Buyer API II</a> . <a href="adexchangebuyer2_v2beta1.accounts.html">accounts</a> . <a href="adexchangebuyer2_v2beta1.accounts.creatives.html">creatives</a> . <a href="adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html">dealAssociations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#add">add(accountId, creativeId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Associate an existing deal with a creative.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId=None, creativeId=None, pageSize=None, pageToken=None, x__xgafv=None, query=None)</a></code></p>
+<p class="firstline">List all creative-deal associations.</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(accountId, creativeId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Remove the association between a deal and a creative.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="add">add(accountId, creativeId, body, x__xgafv=None)</code>
+  <pre>Associate an existing deal with a creative.
+
+Args:
+  accountId: string, The account the creative belongs to. (required)
+  creativeId: string, The ID of the creative associated with the deal. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for associating a deal and a creative.
+    "association": { # The association between a creative and a deal. # The association between a creative and a deal that should be added.
+      "dealsId": "A String", # The externalDealId for the deal associated with the creative.
+      "creativeId": "A String", # The ID of the creative associated with the deal.
+      "accountId": "A String", # The account the creative belongs to.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId=None, creativeId=None, pageSize=None, pageToken=None, x__xgafv=None, query=None)</code>
+  <pre>List all creative-deal associations.
+
+Args:
+  accountId: string, The account to list the associations from.
+Specify "-" to list all creatives the current user has access to. (required)
+  creativeId: string, The creative ID to list the associations from.
+Specify "-" to list all creatives under the above account. (required)
+  pageSize: integer, Requested page size. Server may return fewer associations than requested.
+If unspecified, server will pick an appropriate default.
+  pageToken: string, A token identifying a page of results the server should return.
+Typically, this is the value of
+ListDealAssociationsResponse.next_page_token
+returned from the previous call to 'ListDealAssociations' method.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  query: string, An optional query string to filter deal associations. If no filter is
+specified, all associations will be returned.
+Supported queries are:
+<ul>
+<li>accountId=<i>account_id_string</i>
+<li>creativeId=<i>creative_id_string</i>
+<li>dealsId=<i>deals_id_string</i>
+<li>dealsStatus:{approved, conditionally_approved, disapproved,
+                  not_checked}
+<li>openAuctionStatus:{approved, conditionally_approved, disapproved,
+                         not_checked}
+</ul>
+Example: 'dealsId=12345 AND dealsStatus:disapproved'
+
+Returns:
+  An object of the form:
+
+    { # A response for listing creative and deal associations
+    "nextPageToken": "A String", # A token to retrieve the next page of results.
+        # Pass this value in the
+        # ListDealAssociationsRequest.page_token
+        # field in the subsequent call to 'ListDealAssociation' method to retrieve
+        # the next page of results.
+    "associations": [ # The list of associations.
+      { # The association between a creative and a deal.
+        "dealsId": "A String", # The externalDealId for the deal associated with the creative.
+        "creativeId": "A String", # The ID of the creative associated with the deal.
+        "accountId": "A String", # The account the creative belongs to.
+      },
+    ],
+  }</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(accountId, creativeId, body, x__xgafv=None)</code>
+  <pre>Remove the association between a deal and a creative.
+
+Args:
+  accountId: string, The account the creative belongs to. (required)
+  creativeId: string, The ID of the creative associated with the deal. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for removing the association between a deal and a creative.
+    "association": { # The association between a creative and a deal. # The association between a creative and a deal that should be removed.
+      "dealsId": "A String", # The externalDealId for the deal associated with the creative.
+      "creativeId": "A String", # The ID of the creative associated with the deal.
+      "accountId": "A String", # The account the creative belongs to.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
new file mode 100644
index 0000000..725bd1d
--- /dev/null
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
@@ -0,0 +1,1759 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="adexchangebuyer2_v2beta1.html">Ad Exchange Buyer API II</a> . <a href="adexchangebuyer2_v2beta1.accounts.html">accounts</a> . <a href="adexchangebuyer2_v2beta1.accounts.creatives.html">creatives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html">dealAssociations()</a></code>
+</p>
+<p class="firstline">Returns the dealAssociations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(accountId=None, body, duplicateIdMode=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a creative.</p>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, creativeId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a creative.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId=None, pageSize=None, pageToken=None, query=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists creatives.</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="#stopWatching">stopWatching(accountId, creativeId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Stops watching a creative. Will stop push notifications being sent to the</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId=None, creativeId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a creative.</p>
+<p class="toc_element">
+  <code><a href="#watch">watch(accountId, creativeId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Watches a creative. Will result in push notifications being sent to the</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(accountId=None, body, duplicateIdMode=None, x__xgafv=None)</code>
+  <pre>Creates a creative.
+
+Args:
+  accountId: string, The account that this creative belongs to.
+Can be used to filter the response of the
+creatives.list
+method. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A creative and its classification data.
+  "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+    "A String",
+  ],
+  "version": 42, # @OutputOnly The version of this creative.
+  "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+      # day (from midnight to midnight Pacific).
+    "reasons": [ # The set of filtering reasons for this date.
+      { # A specific filtering status and how many times it occurred.
+        "status": 42, # The filtering status code. Please refer to the
+            # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+            # file for different statuses.
+        "count": "A String", # The number of times the creative was filtered for the status. The
+            # count is aggregated across all publishers on the exchange.
+      },
+    ],
+    "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+        # The data is collected from 00:00:00 to 23:59:59 PT.
+        # During switches from PST to PDT and back, the day may
+        # contain 23 or 25 hours of data instead of the usual 24.
+        # time zone are either specified elsewhere or are not significant. The date
+        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+        # represent a year and month where the day is not significant, e.g. credit card
+        # expiration date. The year may be 0 to represent a month and day independent
+        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+        # and `google.protobuf.Timestamp`.
+      "month": 42, # Month of year. Must be from 1 to 12.
+      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+          # if specifying a year/month where the day is not significant.
+      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+          # a year.
+    },
+  },
+  "detectedLanguages": [ # @OutputOnly
+      # The detected languages for this creative. The order is arbitrary. The codes
+      # are 2 or 5 characters and are documented at
+      # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+    "A String",
+  ],
+  "advertiserName": "A String", # The name of the company being advertised in the creative.
+  "clickThroughUrls": [ # The set of destination URLs for the creative.
+    "A String",
+  ],
+  "video": { # Video content for a creative. # A video creative.
+    "videoUrl": "A String", # The URL to fetch a video ad.
+  },
+  "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+      # See the ad-sensitive-categories.txt file in the technical documentation for
+      # a list of IDs. You should use these IDs along with the
+      # excluded-sensitive-category field in the bid request to filter your bids.
+    42,
+  ],
+  "creativeId": "A String", # The buyer-defined creative ID of this creative.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+    "A String",
+  ],
+  "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+  "accountId": "A String", # The account that this creative belongs to.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+      # for possible values.
+    42,
+  ],
+  "agencyId": "A String", # The agency ID for this creative.
+  "html": { # HTML content for a creative. # An HTML creative.
+    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+    "width": 42, # The width of the HTML snippet in pixels.
+    "height": 42, # The height of the HTML snippet in pixels.
+  },
+  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+  "native": { # Native content for a creative. # A native creative.
+    "body": "A String", # A long description of the ad.
+    "videoUrl": "A String", # The URL to fetch a native video ad.
+    "headline": "A String", # A short title for the ad.
+    "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+    "priceDisplayText": "A String", # The price of the promoted app including currency info.
+    "callToAction": "A String", # A label for the button that the user is supposed to click.
+    "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+    "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+  },
+  "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+      # See the ad-product-categories.txt file in the technical documentation
+      # for a list of IDs.
+    42,
+  ],
+  "detectedDomains": [ # @OutputOnly
+      # The detected domains for this creative.
+    "A String",
+  ],
+  "attributes": [ # All attributes for the ads that may be shown from this creative.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+    "A String",
+  ],
+  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+      # A context here relates to where something ultimately serves (for example,
+      # a physical location, a platform, an HTTPS vs HTTP request, or the type
+      # of auction).
+    { # @OutputOnly A representation of the status of an ad in a
+        # specific context. A context here relates to where something ultimately serves
+        # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+        # or the type of auction).
+      "contexts": [ # The contexts for the restriction.
+        { # The serving context for this restriction.
+          "all": "A String", # Matches all contexts.
+          "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+            "appTypes": [ # The app types this restriction applies to.
+              "A String",
+            ],
+          },
+          "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+            "securities": [ # The security types in this context.
+              "A String",
+            ],
+          },
+          "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+            "platforms": [ # The platforms this restriction applies to.
+              "A String",
+            ],
+          },
+          "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+              # location.
+            "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                # Please refer to the
+                # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                # file for different geo criteria IDs.
+              42,
+            ],
+          },
+          "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+            "auctionTypes": [ # The auction types this restriction applies to.
+              "A String",
+            ],
+          },
+        },
+      ],
+      "status": "A String", # The status of the creative in this context (for example, it has been
+          # explicitly disapproved or is pending review).
+      "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+          # Only present if status=DISAPPROVED.
+          # Can be used to filter the response of the
+          # creatives.list
+          # method.
+        { # @OutputOnly The reason and details for a disapproval.
+          "reason": "A String", # The categorized reason for disapproval.
+          "details": [ # Additional details about the reason for disapproval.
+            "A String",
+          ],
+        },
+      ],
+    },
+  ],
+  "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+    "A String",
+  ],
+  "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+    { # @OutputOnly Shows any corrections that were applied to this creative.
+      "contexts": [ # The contexts for the correction.
+        { # The serving context for this restriction.
+          "all": "A String", # Matches all contexts.
+          "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+            "appTypes": [ # The app types this restriction applies to.
+              "A String",
+            ],
+          },
+          "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+            "securities": [ # The security types in this context.
+              "A String",
+            ],
+          },
+          "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+            "platforms": [ # The platforms this restriction applies to.
+              "A String",
+            ],
+          },
+          "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+              # location.
+            "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                # Please refer to the
+                # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                # file for different geo criteria IDs.
+              42,
+            ],
+          },
+          "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+            "auctionTypes": [ # The auction types this restriction applies to.
+              "A String",
+            ],
+          },
+        },
+      ],
+      "type": "A String", # The type of correction that was applied to the creative.
+      "details": [ # Additional details about what was corrected.
+        "A String",
+      ],
+    },
+  ],
+  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+}
+
+  duplicateIdMode: string, Indicates if multiple creatives can share an ID or not. Default is
+NO_DUPLICATES (one ID per creative).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A creative and its classification data.
+    "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+      "A String",
+    ],
+    "version": 42, # @OutputOnly The version of this creative.
+    "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+        # day (from midnight to midnight Pacific).
+      "reasons": [ # The set of filtering reasons for this date.
+        { # A specific filtering status and how many times it occurred.
+          "status": 42, # The filtering status code. Please refer to the
+              # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+              # file for different statuses.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
+        },
+      ],
+      "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+          # The data is collected from 00:00:00 to 23:59:59 PT.
+          # During switches from PST to PDT and back, the day may
+          # contain 23 or 25 hours of data instead of the usual 24.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
+    },
+    "detectedLanguages": [ # @OutputOnly
+        # The detected languages for this creative. The order is arbitrary. The codes
+        # are 2 or 5 characters and are documented at
+        # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+      "A String",
+    ],
+    "advertiserName": "A String", # The name of the company being advertised in the creative.
+    "clickThroughUrls": [ # The set of destination URLs for the creative.
+      "A String",
+    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
+    "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+        # See the ad-sensitive-categories.txt file in the technical documentation for
+        # a list of IDs. You should use these IDs along with the
+        # excluded-sensitive-category field in the bid request to filter your bids.
+      42,
+    ],
+    "creativeId": "A String", # The buyer-defined creative ID of this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+      "A String",
+    ],
+    "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+    "native": { # Native content for a creative. # A native creative.
+      "body": "A String", # A long description of the ad.
+      "videoUrl": "A String", # The URL to fetch a native video ad.
+      "headline": "A String", # A short title for the ad.
+      "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+      "priceDisplayText": "A String", # The price of the promoted app including currency info.
+      "callToAction": "A String", # A label for the button that the user is supposed to click.
+      "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+      "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+    },
+    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+        # See the ad-product-categories.txt file in the technical documentation
+        # for a list of IDs.
+      42,
+    ],
+    "detectedDomains": [ # @OutputOnly
+        # The detected domains for this creative.
+      "A String",
+    ],
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+        # A context here relates to where something ultimately serves (for example,
+        # a physical location, a platform, an HTTPS vs HTTP request, or the type
+        # of auction).
+      { # @OutputOnly A representation of the status of an ad in a
+          # specific context. A context here relates to where something ultimately serves
+          # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+          # or the type of auction).
+        "contexts": [ # The contexts for the restriction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "status": "A String", # The status of the creative in this context (for example, it has been
+            # explicitly disapproved or is pending review).
+        "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+            # Only present if status=DISAPPROVED.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+          { # @OutputOnly The reason and details for a disapproval.
+            "reason": "A String", # The categorized reason for disapproval.
+            "details": [ # Additional details about the reason for disapproval.
+              "A String",
+            ],
+          },
+        ],
+      },
+    ],
+    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+      "A String",
+    ],
+    "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+      { # @OutputOnly Shows any corrections that were applied to this creative.
+        "contexts": [ # The contexts for the correction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "type": "A String", # The type of correction that was applied to the creative.
+        "details": [ # Additional details about what was corrected.
+          "A String",
+        ],
+      },
+    ],
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(accountId, creativeId, x__xgafv=None)</code>
+  <pre>Gets a creative.
+
+Args:
+  accountId: string, The account the creative belongs to. (required)
+  creativeId: string, The ID of the creative to retrieve. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A creative and its classification data.
+    "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+      "A String",
+    ],
+    "version": 42, # @OutputOnly The version of this creative.
+    "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+        # day (from midnight to midnight Pacific).
+      "reasons": [ # The set of filtering reasons for this date.
+        { # A specific filtering status and how many times it occurred.
+          "status": 42, # The filtering status code. Please refer to the
+              # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+              # file for different statuses.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
+        },
+      ],
+      "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+          # The data is collected from 00:00:00 to 23:59:59 PT.
+          # During switches from PST to PDT and back, the day may
+          # contain 23 or 25 hours of data instead of the usual 24.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
+    },
+    "detectedLanguages": [ # @OutputOnly
+        # The detected languages for this creative. The order is arbitrary. The codes
+        # are 2 or 5 characters and are documented at
+        # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+      "A String",
+    ],
+    "advertiserName": "A String", # The name of the company being advertised in the creative.
+    "clickThroughUrls": [ # The set of destination URLs for the creative.
+      "A String",
+    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
+    "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+        # See the ad-sensitive-categories.txt file in the technical documentation for
+        # a list of IDs. You should use these IDs along with the
+        # excluded-sensitive-category field in the bid request to filter your bids.
+      42,
+    ],
+    "creativeId": "A String", # The buyer-defined creative ID of this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+      "A String",
+    ],
+    "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+    "native": { # Native content for a creative. # A native creative.
+      "body": "A String", # A long description of the ad.
+      "videoUrl": "A String", # The URL to fetch a native video ad.
+      "headline": "A String", # A short title for the ad.
+      "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+      "priceDisplayText": "A String", # The price of the promoted app including currency info.
+      "callToAction": "A String", # A label for the button that the user is supposed to click.
+      "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+      "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+    },
+    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+        # See the ad-product-categories.txt file in the technical documentation
+        # for a list of IDs.
+      42,
+    ],
+    "detectedDomains": [ # @OutputOnly
+        # The detected domains for this creative.
+      "A String",
+    ],
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+        # A context here relates to where something ultimately serves (for example,
+        # a physical location, a platform, an HTTPS vs HTTP request, or the type
+        # of auction).
+      { # @OutputOnly A representation of the status of an ad in a
+          # specific context. A context here relates to where something ultimately serves
+          # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+          # or the type of auction).
+        "contexts": [ # The contexts for the restriction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "status": "A String", # The status of the creative in this context (for example, it has been
+            # explicitly disapproved or is pending review).
+        "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+            # Only present if status=DISAPPROVED.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+          { # @OutputOnly The reason and details for a disapproval.
+            "reason": "A String", # The categorized reason for disapproval.
+            "details": [ # Additional details about the reason for disapproval.
+              "A String",
+            ],
+          },
+        ],
+      },
+    ],
+    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+      "A String",
+    ],
+    "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+      { # @OutputOnly Shows any corrections that were applied to this creative.
+        "contexts": [ # The contexts for the correction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "type": "A String", # The type of correction that was applied to the creative.
+        "details": [ # Additional details about what was corrected.
+          "A String",
+        ],
+      },
+    ],
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId=None, pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
+  <pre>Lists creatives.
+
+Args:
+  accountId: string, The account to list the creatives from.
+Specify "-" to list all creatives the current user has access to. (required)
+  pageSize: integer, Requested page size. The server may return fewer creatives than requested
+(due to timeout constraint) even if more are available via another call.
+If unspecified, server will pick an appropriate default.
+Acceptable values are 1 to 1000, inclusive.
+  pageToken: string, A token identifying a page of results the server should return.
+Typically, this is the value of
+ListCreativesResponse.next_page_token
+returned from the previous call to 'ListCreatives' method.
+  query: string, An optional query string to filter creatives. If no filter is specified,
+all active creatives will be returned.
+Supported queries are:
+<ul>
+<li>accountId=<i>account_id_string</i>
+<li>creativeId=<i>creative_id_string</i>
+<li>dealsStatus: {approved, conditionally_approved, disapproved,
+                   not_checked}
+<li>openAuctionStatus: {approved, conditionally_approved, disapproved,
+                          not_checked}
+<li>attribute: {a numeric attribute from the list of attributes}
+<li>disapprovalReason: {a reason from DisapprovalReason
+</ul>
+Example: 'accountId=12345 AND (dealsStatus:disapproved AND disapprovalReason:unacceptable_content) OR attribute:47'
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A response for listing creatives.
+    "nextPageToken": "A String", # A token to retrieve the next page of results.
+        # Pass this value in the
+        # ListCreativesRequest.page_token
+        # field in the subsequent call to `ListCreatives` method to retrieve the next
+        # page of results.
+    "creatives": [ # The list of creatives.
+      { # A creative and its classification data.
+        "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+          "A String",
+        ],
+        "version": 42, # @OutputOnly The version of this creative.
+        "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+            # day (from midnight to midnight Pacific).
+          "reasons": [ # The set of filtering reasons for this date.
+            { # A specific filtering status and how many times it occurred.
+              "status": 42, # The filtering status code. Please refer to the
+                  # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+                  # file for different statuses.
+              "count": "A String", # The number of times the creative was filtered for the status. The
+                  # count is aggregated across all publishers on the exchange.
+            },
+          ],
+          "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+              # The data is collected from 00:00:00 to 23:59:59 PT.
+              # During switches from PST to PDT and back, the day may
+              # contain 23 or 25 hours of data instead of the usual 24.
+              # time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+              # represent a year and month where the day is not significant, e.g. credit card
+              # expiration date. The year may be 0 to represent a month and day independent
+              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+              # and `google.protobuf.Timestamp`.
+            "month": 42, # Month of year. Must be from 1 to 12.
+            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year/month where the day is not significant.
+            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+          },
+        },
+        "detectedLanguages": [ # @OutputOnly
+            # The detected languages for this creative. The order is arbitrary. The codes
+            # are 2 or 5 characters and are documented at
+            # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+          "A String",
+        ],
+        "advertiserName": "A String", # The name of the company being advertised in the creative.
+        "clickThroughUrls": [ # The set of destination URLs for the creative.
+          "A String",
+        ],
+        "video": { # Video content for a creative. # A video creative.
+          "videoUrl": "A String", # The URL to fetch a video ad.
+        },
+        "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+            # See the ad-sensitive-categories.txt file in the technical documentation for
+            # a list of IDs. You should use these IDs along with the
+            # excluded-sensitive-category field in the bid request to filter your bids.
+          42,
+        ],
+        "creativeId": "A String", # The buyer-defined creative ID of this creative.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+        "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+          "A String",
+        ],
+        "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+        "accountId": "A String", # The account that this creative belongs to.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+        "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+            # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+            # for possible values.
+          42,
+        ],
+        "agencyId": "A String", # The agency ID for this creative.
+        "html": { # HTML content for a creative. # An HTML creative.
+          "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+          "width": 42, # The width of the HTML snippet in pixels.
+          "height": 42, # The height of the HTML snippet in pixels.
+        },
+        "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+        "native": { # Native content for a creative. # A native creative.
+          "body": "A String", # A long description of the ad.
+          "videoUrl": "A String", # The URL to fetch a native video ad.
+          "headline": "A String", # A short title for the ad.
+          "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+              # so long as the aspect ratio is preserved.
+            "url": "A String", # The URL of the image.
+            "width": 42, # Image width in pixels.
+            "height": 42, # Image height in pixels.
+          },
+          "clickTrackingUrl": "A String", # The URL to use for click tracking.
+          "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+          "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+          "priceDisplayText": "A String", # The price of the promoted app including currency info.
+          "callToAction": "A String", # A label for the button that the user is supposed to click.
+          "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+              # so long as the aspect ratio is preserved.
+            "url": "A String", # The URL of the image.
+            "width": 42, # Image width in pixels.
+            "height": 42, # Image height in pixels.
+          },
+          "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+              # so long as the aspect ratio is preserved.
+            "url": "A String", # The URL of the image.
+            "width": 42, # Image width in pixels.
+            "height": 42, # Image height in pixels.
+          },
+          "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+          "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+        },
+        "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+            # See the ad-product-categories.txt file in the technical documentation
+            # for a list of IDs.
+          42,
+        ],
+        "detectedDomains": [ # @OutputOnly
+            # The detected domains for this creative.
+          "A String",
+        ],
+        "attributes": [ # All attributes for the ads that may be shown from this creative.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+          "A String",
+        ],
+        "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+            # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+            # serving_restrictions will also exist. Note
+            # that this may be nuanced with other contextual restrictions, in which case,
+            # it may be preferable to read from serving_restrictions directly.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+        "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+            # A context here relates to where something ultimately serves (for example,
+            # a physical location, a platform, an HTTPS vs HTTP request, or the type
+            # of auction).
+          { # @OutputOnly A representation of the status of an ad in a
+              # specific context. A context here relates to where something ultimately serves
+              # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+              # or the type of auction).
+            "contexts": [ # The contexts for the restriction.
+              { # The serving context for this restriction.
+                "all": "A String", # Matches all contexts.
+                "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+                  "appTypes": [ # The app types this restriction applies to.
+                    "A String",
+                  ],
+                },
+                "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+                  "securities": [ # The security types in this context.
+                    "A String",
+                  ],
+                },
+                "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+                  "platforms": [ # The platforms this restriction applies to.
+                    "A String",
+                  ],
+                },
+                "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                    # location.
+                  "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                      # Please refer to the
+                      # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                      # file for different geo criteria IDs.
+                    42,
+                  ],
+                },
+                "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+                  "auctionTypes": [ # The auction types this restriction applies to.
+                    "A String",
+                  ],
+                },
+              },
+            ],
+            "status": "A String", # The status of the creative in this context (for example, it has been
+                # explicitly disapproved or is pending review).
+            "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+                # Only present if status=DISAPPROVED.
+                # Can be used to filter the response of the
+                # creatives.list
+                # method.
+              { # @OutputOnly The reason and details for a disapproval.
+                "reason": "A String", # The categorized reason for disapproval.
+                "details": [ # Additional details about the reason for disapproval.
+                  "A String",
+                ],
+              },
+            ],
+          },
+        ],
+        "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+          "A String",
+        ],
+        "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+          { # @OutputOnly Shows any corrections that were applied to this creative.
+            "contexts": [ # The contexts for the correction.
+              { # The serving context for this restriction.
+                "all": "A String", # Matches all contexts.
+                "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+                  "appTypes": [ # The app types this restriction applies to.
+                    "A String",
+                  ],
+                },
+                "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+                  "securities": [ # The security types in this context.
+                    "A String",
+                  ],
+                },
+                "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+                  "platforms": [ # The platforms this restriction applies to.
+                    "A String",
+                  ],
+                },
+                "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                    # location.
+                  "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                      # Please refer to the
+                      # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                      # file for different geo criteria IDs.
+                    42,
+                  ],
+                },
+                "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+                  "auctionTypes": [ # The auction types this restriction applies to.
+                    "A String",
+                  ],
+                },
+              },
+            ],
+            "type": "A String", # The type of correction that was applied to the creative.
+            "details": [ # Additional details about what was corrected.
+              "A String",
+            ],
+          },
+        ],
+        "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+            # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+            # serving_restrictions will also exist. Note
+            # that this may be nuanced with other contextual restrictions, in which case,
+            # it may be preferable to read from serving_restrictions directly.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+      },
+    ],
+  }</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="stopWatching">stopWatching(accountId, creativeId=None, body, x__xgafv=None)</code>
+  <pre>Stops watching a creative. Will stop push notifications being sent to the
+topics when the creative changes status.
+
+Args:
+  accountId: string, The account of the creative to stop notifications for. (required)
+  creativeId: string, The creative ID of the creative to stop notifications for.
+Specify "-" to specify stopping account level notifications. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for stopping notifications for changes to creative Status.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId=None, creativeId=None, body, x__xgafv=None)</code>
+  <pre>Updates a creative.
+
+Args:
+  accountId: string, The account that this creative belongs to.
+Can be used to filter the response of the
+creatives.list
+method. (required)
+  creativeId: string, The buyer-defined creative ID of this creative.
+Can be used to filter the response of the
+creatives.list
+method. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A creative and its classification data.
+  "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+    "A String",
+  ],
+  "version": 42, # @OutputOnly The version of this creative.
+  "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+      # day (from midnight to midnight Pacific).
+    "reasons": [ # The set of filtering reasons for this date.
+      { # A specific filtering status and how many times it occurred.
+        "status": 42, # The filtering status code. Please refer to the
+            # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+            # file for different statuses.
+        "count": "A String", # The number of times the creative was filtered for the status. The
+            # count is aggregated across all publishers on the exchange.
+      },
+    ],
+    "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+        # The data is collected from 00:00:00 to 23:59:59 PT.
+        # During switches from PST to PDT and back, the day may
+        # contain 23 or 25 hours of data instead of the usual 24.
+        # time zone are either specified elsewhere or are not significant. The date
+        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+        # represent a year and month where the day is not significant, e.g. credit card
+        # expiration date. The year may be 0 to represent a month and day independent
+        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+        # and `google.protobuf.Timestamp`.
+      "month": 42, # Month of year. Must be from 1 to 12.
+      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+          # if specifying a year/month where the day is not significant.
+      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+          # a year.
+    },
+  },
+  "detectedLanguages": [ # @OutputOnly
+      # The detected languages for this creative. The order is arbitrary. The codes
+      # are 2 or 5 characters and are documented at
+      # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+    "A String",
+  ],
+  "advertiserName": "A String", # The name of the company being advertised in the creative.
+  "clickThroughUrls": [ # The set of destination URLs for the creative.
+    "A String",
+  ],
+  "video": { # Video content for a creative. # A video creative.
+    "videoUrl": "A String", # The URL to fetch a video ad.
+  },
+  "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+      # See the ad-sensitive-categories.txt file in the technical documentation for
+      # a list of IDs. You should use these IDs along with the
+      # excluded-sensitive-category field in the bid request to filter your bids.
+    42,
+  ],
+  "creativeId": "A String", # The buyer-defined creative ID of this creative.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+    "A String",
+  ],
+  "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+  "accountId": "A String", # The account that this creative belongs to.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+      # for possible values.
+    42,
+  ],
+  "agencyId": "A String", # The agency ID for this creative.
+  "html": { # HTML content for a creative. # An HTML creative.
+    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+    "width": 42, # The width of the HTML snippet in pixels.
+    "height": 42, # The height of the HTML snippet in pixels.
+  },
+  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+  "native": { # Native content for a creative. # A native creative.
+    "body": "A String", # A long description of the ad.
+    "videoUrl": "A String", # The URL to fetch a native video ad.
+    "headline": "A String", # A short title for the ad.
+    "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+    "priceDisplayText": "A String", # The price of the promoted app including currency info.
+    "callToAction": "A String", # A label for the button that the user is supposed to click.
+    "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+        # so long as the aspect ratio is preserved.
+      "url": "A String", # The URL of the image.
+      "width": 42, # Image width in pixels.
+      "height": 42, # Image height in pixels.
+    },
+    "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+    "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+  },
+  "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+      # See the ad-product-categories.txt file in the technical documentation
+      # for a list of IDs.
+    42,
+  ],
+  "detectedDomains": [ # @OutputOnly
+      # The detected domains for this creative.
+    "A String",
+  ],
+  "attributes": [ # All attributes for the ads that may be shown from this creative.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+    "A String",
+  ],
+  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+      # A context here relates to where something ultimately serves (for example,
+      # a physical location, a platform, an HTTPS vs HTTP request, or the type
+      # of auction).
+    { # @OutputOnly A representation of the status of an ad in a
+        # specific context. A context here relates to where something ultimately serves
+        # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+        # or the type of auction).
+      "contexts": [ # The contexts for the restriction.
+        { # The serving context for this restriction.
+          "all": "A String", # Matches all contexts.
+          "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+            "appTypes": [ # The app types this restriction applies to.
+              "A String",
+            ],
+          },
+          "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+            "securities": [ # The security types in this context.
+              "A String",
+            ],
+          },
+          "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+            "platforms": [ # The platforms this restriction applies to.
+              "A String",
+            ],
+          },
+          "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+              # location.
+            "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                # Please refer to the
+                # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                # file for different geo criteria IDs.
+              42,
+            ],
+          },
+          "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+            "auctionTypes": [ # The auction types this restriction applies to.
+              "A String",
+            ],
+          },
+        },
+      ],
+      "status": "A String", # The status of the creative in this context (for example, it has been
+          # explicitly disapproved or is pending review).
+      "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+          # Only present if status=DISAPPROVED.
+          # Can be used to filter the response of the
+          # creatives.list
+          # method.
+        { # @OutputOnly The reason and details for a disapproval.
+          "reason": "A String", # The categorized reason for disapproval.
+          "details": [ # Additional details about the reason for disapproval.
+            "A String",
+          ],
+        },
+      ],
+    },
+  ],
+  "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+    "A String",
+  ],
+  "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+    { # @OutputOnly Shows any corrections that were applied to this creative.
+      "contexts": [ # The contexts for the correction.
+        { # The serving context for this restriction.
+          "all": "A String", # Matches all contexts.
+          "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+            "appTypes": [ # The app types this restriction applies to.
+              "A String",
+            ],
+          },
+          "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+            "securities": [ # The security types in this context.
+              "A String",
+            ],
+          },
+          "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+            "platforms": [ # The platforms this restriction applies to.
+              "A String",
+            ],
+          },
+          "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+              # location.
+            "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                # Please refer to the
+                # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                # file for different geo criteria IDs.
+              42,
+            ],
+          },
+          "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+            "auctionTypes": [ # The auction types this restriction applies to.
+              "A String",
+            ],
+          },
+        },
+      ],
+      "type": "A String", # The type of correction that was applied to the creative.
+      "details": [ # Additional details about what was corrected.
+        "A String",
+      ],
+    },
+  ],
+  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A creative and its classification data.
+    "impressionTrackingUrls": [ # The set of URLs to be called to record an impression.
+      "A String",
+    ],
+    "version": 42, # @OutputOnly The version of this creative.
+    "filteringStats": { # @OutputOnly Filtering reasons for this creative during a period of a single # @OutputOnly The filtering stats for this creative.
+        # day (from midnight to midnight Pacific).
+      "reasons": [ # The set of filtering reasons for this date.
+        { # A specific filtering status and how many times it occurred.
+          "status": 42, # The filtering status code. Please refer to the
+              # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
+              # file for different statuses.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
+        },
+      ],
+      "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
+          # The data is collected from 00:00:00 to 23:59:59 PT.
+          # During switches from PST to PDT and back, the day may
+          # contain 23 or 25 hours of data instead of the usual 24.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
+    },
+    "detectedLanguages": [ # @OutputOnly
+        # The detected languages for this creative. The order is arbitrary. The codes
+        # are 2 or 5 characters and are documented at
+        # https://developers.google.com/adwords/api/docs/appendix/languagecodes.
+      "A String",
+    ],
+    "advertiserName": "A String", # The name of the company being advertised in the creative.
+    "clickThroughUrls": [ # The set of destination URLs for the creative.
+      "A String",
+    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
+    "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
+        # See the ad-sensitive-categories.txt file in the technical documentation for
+        # a list of IDs. You should use these IDs along with the
+        # excluded-sensitive-category field in the bid request to filter your bids.
+      42,
+    ],
+    "creativeId": "A String", # The buyer-defined creative ID of this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "detectedAdvertiserIds": [ # @OutputOnly Detected advertiser IDs, if any.
+      "A String",
+    ],
+    "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
+    "native": { # Native content for a creative. # A native creative.
+      "body": "A String", # A long description of the ad.
+      "videoUrl": "A String", # The URL to fetch a native video ad.
+      "headline": "A String", # A short title for the ad.
+      "image": { # An image resource. You may provide a larger image than was requested, # A large image.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
+      "priceDisplayText": "A String", # The price of the promoted app including currency info.
+      "callToAction": "A String", # A label for the button that the user is supposed to click.
+      "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "appIcon": { # An image resource. You may provide a larger image than was requested, # The app icon, for app download ads.
+          # so long as the aspect ratio is preserved.
+        "url": "A String", # The URL of the image.
+        "width": 42, # Image width in pixels.
+        "height": 42, # Image height in pixels.
+      },
+      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
+      "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
+    },
+    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
+        # See the ad-product-categories.txt file in the technical documentation
+        # for a list of IDs.
+      42,
+    ],
+    "detectedDomains": [ # @OutputOnly
+        # The detected domains for this creative.
+      "A String",
+    ],
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "servingRestrictions": [ # @OutputOnly The granular status of this ad in specific contexts.
+        # A context here relates to where something ultimately serves (for example,
+        # a physical location, a platform, an HTTPS vs HTTP request, or the type
+        # of auction).
+      { # @OutputOnly A representation of the status of an ad in a
+          # specific context. A context here relates to where something ultimately serves
+          # (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request,
+          # or the type of auction).
+        "contexts": [ # The contexts for the restriction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "status": "A String", # The status of the creative in this context (for example, it has been
+            # explicitly disapproved or is pending review).
+        "disapprovalReasons": [ # Any disapprovals bound to this restriction.
+            # Only present if status=DISAPPROVED.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+          { # @OutputOnly The reason and details for a disapproval.
+            "reason": "A String", # The categorized reason for disapproval.
+            "details": [ # Additional details about the reason for disapproval.
+              "A String",
+            ],
+          },
+        ],
+      },
+    ],
+    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this creative.
+      "A String",
+    ],
+    "corrections": [ # @OutputOnly Shows any corrections that were applied to this creative.
+      { # @OutputOnly Shows any corrections that were applied to this creative.
+        "contexts": [ # The contexts for the correction.
+          { # The serving context for this restriction.
+            "all": "A String", # Matches all contexts.
+            "appType": { # @OutputOnly The app type the restriction applies to for mobile device. # Matches impressions for a particular app type.
+              "appTypes": [ # The app types this restriction applies to.
+                "A String",
+              ],
+            },
+            "securityType": { # @OutputOnly A security context. # Matches impressions for a particular security type.
+              "securities": [ # The security types in this context.
+                "A String",
+              ],
+            },
+            "platform": { # @OutputOnly The type of platform the restriction applies to. # Matches impressions coming from a particular platform.
+              "platforms": [ # The platforms this restriction applies to.
+                "A String",
+              ],
+            },
+            "location": { # @OutputOnly The Geo criteria the restriction applies to. # Matches impressions coming from users *or* publishers in a specific
+                # location.
+              "geoCriteriaIds": [ # IDs representing the geo location for this context.
+                  # Please refer to the
+                  # [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv)
+                  # file for different geo criteria IDs.
+                42,
+              ],
+            },
+            "auctionType": { # @OutputOnly The auction type the restriction applies to. # Matches impressions for a particular auction type.
+              "auctionTypes": [ # The auction types this restriction applies to.
+                "A String",
+              ],
+            },
+          },
+        ],
+        "type": "A String", # The type of correction that was applied to the creative.
+        "details": [ # Additional details about what was corrected.
+          "A String",
+        ],
+      },
+    ],
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watch">watch(accountId, creativeId=None, body, x__xgafv=None)</code>
+  <pre>Watches a creative. Will result in push notifications being sent to the
+topic when the creative changes status.
+
+Args:
+  accountId: string, The account of the creative to watch. (required)
+  creativeId: string, The creative ID to watch for status changes.
+Specify "-" to watch all creatives under the above account.
+If both creative-level and account-level notifications are
+sent, only a single notification will be sent to the
+creative-level notification topic. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for watching changes to creative Status.
+    "topic": "A String", # The Pub/Sub topic to publish notifications to.
+        # This topic must already exist and must give permission to
+        # ad-exchange-buyside-reports@google.com to write to the topic.
+        # This should be the full resource name in
+        # "projects/{project_id}/topics/{topic_id}" format.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.html
index 9c6461b..0d6d13a 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.html
@@ -79,4 +79,9 @@
 </p>
 <p class="firstline">Returns the clients Resource.</p>
 
+<p class="toc_element">
+  <code><a href="adexchangebuyer2_v2beta1.accounts.creatives.html">creatives()</a></code>
+</p>
+<p class="firstline">Returns the creatives Resource.</p>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer_v1_4.accounts.html b/docs/dyn/adexchangebuyer_v1_4.accounts.html
index 8870a0c..a6be7c0 100644
--- a/docs/dyn/adexchangebuyer_v1_4.accounts.html
+++ b/docs/dyn/adexchangebuyer_v1_4.accounts.html
@@ -110,12 +110,13 @@
               # - US_EAST
               # - US_WEST
           "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
               # - PROTOCOL_ADX
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
-              # - PROTOCOL_OPENRTB_PROTOBUF
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_4
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -149,12 +150,13 @@
                   # - US_EAST
                   # - US_WEST
               "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-              "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+              "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
                   # - PROTOCOL_ADX
                   # - PROTOCOL_OPENRTB_2_2
                   # - PROTOCOL_OPENRTB_2_3
                   # - PROTOCOL_OPENRTB_2_4
-                  # - PROTOCOL_OPENRTB_PROTOBUF
+                  # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+                  # - PROTOCOL_OPENRTB_PROTOBUF_2_4
             },
           ],
           "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -189,12 +191,13 @@
             # - US_EAST
             # - US_WEST
         "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-        "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+        "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
             # - PROTOCOL_ADX
             # - PROTOCOL_OPENRTB_2_2
             # - PROTOCOL_OPENRTB_2_3
             # - PROTOCOL_OPENRTB_2_4
-            # - PROTOCOL_OPENRTB_PROTOBUF
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_4
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -221,12 +224,13 @@
               # - US_EAST
               # - US_WEST
           "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
               # - PROTOCOL_ADX
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
-              # - PROTOCOL_OPENRTB_PROTOBUF
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_4
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -258,12 +262,13 @@
             # - US_EAST
             # - US_WEST
         "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-        "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+        "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
             # - PROTOCOL_ADX
             # - PROTOCOL_OPENRTB_2_2
             # - PROTOCOL_OPENRTB_2_3
             # - PROTOCOL_OPENRTB_2_4
-            # - PROTOCOL_OPENRTB_PROTOBUF
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_4
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -290,12 +295,13 @@
               # - US_EAST
               # - US_WEST
           "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
-          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. By default, OpenRTB protocols use JSON, except PROTOCOL_OPENRTB_PROTOBUF. PROTOCOL_OPENRTB_PROTOBUF uses protobuf encoding over the latest OpenRTB protocol version, which is 2.4 right now. Allowed values:
+          "bidProtocol": "A String", # The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON.  Allowed values:
               # - PROTOCOL_ADX
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
-              # - PROTOCOL_OPENRTB_PROTOBUF
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_3
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_4
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
diff --git a/docs/dyn/adexchangebuyer_v1_4.creatives.html b/docs/dyn/adexchangebuyer_v1_4.creatives.html
index 5b9bb56..d8a76d0 100644
--- a/docs/dyn/adexchangebuyer_v1_4.creatives.html
+++ b/docs/dyn/adexchangebuyer_v1_4.creatives.html
@@ -119,11 +119,11 @@
   An object of the form:
 
     { # A creative and its classification data.
-      "attribute": [ # All attributes for the ads that may be shown from this snippet.
+      "attribute": [ # List of buyer selectable attributes for the ads that may be shown from this snippet. Each attribute is represented by an integer as defined in  buyer-declarable-creative-attributes.txt.
         42,
       ],
       "height": 42, # Ad height.
-      "advertiserName": "A String", # The name of the company being advertised in the creative.
+      "advertiserName": "A String", # The name of the company being advertised in the creative. The value provided must exist in the advertisers.txt file.
       "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
       "openAuctionStatus": "A String", # Top-level open auction status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from ServingRestrictions directly.
       "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
@@ -172,13 +172,13 @@
       },
       "version": 42, # The version for this creative. Read-only. This field should not be set in requests.
       "apiUploadTimestamp": "A String", # The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).
-      "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+      "vendorType": [ # List of vendor types for the ads that may be shown from this snippet. Each vendor type is represented by an integer as defined in vendors.txt.
         42,
       ],
-      "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+      "sensitiveCategories": [ # Detected sensitive categories, if any. Each category is represented by an integer as defined in  ad-sensitive-categories.txt. Read-only. This field should not be set in requests.
         42,
       ],
-      "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+      "productCategories": [ # Detected product categories, if any. Each category is represented by an integer as defined in  ad-product-categories.txt. Read-only. This field should not be set in requests.
         42,
       ],
       "agencyId": "A String", # The agency id for this creative.
@@ -201,7 +201,7 @@
               "auctionType": [ # Only set when contextType=AUCTION_TYPE. Represents the auction types this restriction applies to.
                 "A String",
               ],
-              "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to.
+              "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to. Impressions are considered to match a context if either the user location or publisher location matches a given geoCriteriaId.
                 42,
               ],
             },
@@ -217,7 +217,7 @@
           "reason": "A String", # Why the creative is ineligible to serve in this context (e.g., it has been explicitly disapproved or is pending review).
         },
       ],
-      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet. Each category is represented by an integer as defined in the  ad-restricted-categories.txt.
         42,
       ],
       "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
@@ -247,7 +247,7 @@
         "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 the creative-status-codes.txt file for different statuses.
+            "filteringStatus": 42, # The filtering status code as defined in  creative-status-codes.txt.
           },
         ],
       },
@@ -263,11 +263,11 @@
     The object takes the form of:
 
 { # A creative and its classification data.
-    "attribute": [ # All attributes for the ads that may be shown from this snippet.
+    "attribute": [ # List of buyer selectable attributes for the ads that may be shown from this snippet. Each attribute is represented by an integer as defined in  buyer-declarable-creative-attributes.txt.
       42,
     ],
     "height": 42, # Ad height.
-    "advertiserName": "A String", # The name of the company being advertised in the creative.
+    "advertiserName": "A String", # The name of the company being advertised in the creative. The value provided must exist in the advertisers.txt file.
     "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
     "openAuctionStatus": "A String", # Top-level open auction status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from ServingRestrictions directly.
     "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
@@ -316,13 +316,13 @@
     },
     "version": 42, # The version for this creative. Read-only. This field should not be set in requests.
     "apiUploadTimestamp": "A String", # The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).
-    "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+    "vendorType": [ # List of vendor types for the ads that may be shown from this snippet. Each vendor type is represented by an integer as defined in vendors.txt.
       42,
     ],
-    "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+    "sensitiveCategories": [ # Detected sensitive categories, if any. Each category is represented by an integer as defined in  ad-sensitive-categories.txt. Read-only. This field should not be set in requests.
       42,
     ],
-    "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+    "productCategories": [ # Detected product categories, if any. Each category is represented by an integer as defined in  ad-product-categories.txt. Read-only. This field should not be set in requests.
       42,
     ],
     "agencyId": "A String", # The agency id for this creative.
@@ -345,7 +345,7 @@
             "auctionType": [ # Only set when contextType=AUCTION_TYPE. Represents the auction types this restriction applies to.
               "A String",
             ],
-            "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to.
+            "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to. Impressions are considered to match a context if either the user location or publisher location matches a given geoCriteriaId.
               42,
             ],
           },
@@ -361,7 +361,7 @@
         "reason": "A String", # Why the creative is ineligible to serve in this context (e.g., it has been explicitly disapproved or is pending review).
       },
     ],
-    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet. Each category is represented by an integer as defined in the  ad-restricted-categories.txt.
       42,
     ],
     "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
@@ -391,7 +391,7 @@
       "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 the creative-status-codes.txt file for different statuses.
+          "filteringStatus": 42, # The filtering status code as defined in  creative-status-codes.txt.
         },
       ],
     },
@@ -402,11 +402,11 @@
   An object of the form:
 
     { # A creative and its classification data.
-      "attribute": [ # All attributes for the ads that may be shown from this snippet.
+      "attribute": [ # List of buyer selectable attributes for the ads that may be shown from this snippet. Each attribute is represented by an integer as defined in  buyer-declarable-creative-attributes.txt.
         42,
       ],
       "height": 42, # Ad height.
-      "advertiserName": "A String", # The name of the company being advertised in the creative.
+      "advertiserName": "A String", # The name of the company being advertised in the creative. The value provided must exist in the advertisers.txt file.
       "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
       "openAuctionStatus": "A String", # Top-level open auction status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from ServingRestrictions directly.
       "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
@@ -455,13 +455,13 @@
       },
       "version": 42, # The version for this creative. Read-only. This field should not be set in requests.
       "apiUploadTimestamp": "A String", # The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).
-      "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+      "vendorType": [ # List of vendor types for the ads that may be shown from this snippet. Each vendor type is represented by an integer as defined in vendors.txt.
         42,
       ],
-      "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+      "sensitiveCategories": [ # Detected sensitive categories, if any. Each category is represented by an integer as defined in  ad-sensitive-categories.txt. Read-only. This field should not be set in requests.
         42,
       ],
-      "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+      "productCategories": [ # Detected product categories, if any. Each category is represented by an integer as defined in  ad-product-categories.txt. Read-only. This field should not be set in requests.
         42,
       ],
       "agencyId": "A String", # The agency id for this creative.
@@ -484,7 +484,7 @@
               "auctionType": [ # Only set when contextType=AUCTION_TYPE. Represents the auction types this restriction applies to.
                 "A String",
               ],
-              "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to.
+              "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to. Impressions are considered to match a context if either the user location or publisher location matches a given geoCriteriaId.
                 42,
               ],
             },
@@ -500,7 +500,7 @@
           "reason": "A String", # Why the creative is ineligible to serve in this context (e.g., it has been explicitly disapproved or is pending review).
         },
       ],
-      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet. Each category is represented by an integer as defined in the  ad-restricted-categories.txt.
         42,
       ],
       "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
@@ -530,7 +530,7 @@
         "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 the creative-status-codes.txt file for different statuses.
+            "filteringStatus": 42, # The filtering status code as defined in  creative-status-codes.txt.
           },
         ],
       },
@@ -566,11 +566,11 @@
     "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.
-          "attribute": [ # All attributes for the ads that may be shown from this snippet.
+          "attribute": [ # List of buyer selectable attributes for the ads that may be shown from this snippet. Each attribute is represented by an integer as defined in  buyer-declarable-creative-attributes.txt.
             42,
           ],
           "height": 42, # Ad height.
-          "advertiserName": "A String", # The name of the company being advertised in the creative.
+          "advertiserName": "A String", # The name of the company being advertised in the creative. The value provided must exist in the advertisers.txt file.
           "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
           "openAuctionStatus": "A String", # Top-level open auction status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from ServingRestrictions directly.
           "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
@@ -619,13 +619,13 @@
           },
           "version": 42, # The version for this creative. Read-only. This field should not be set in requests.
           "apiUploadTimestamp": "A String", # The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).
-          "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+          "vendorType": [ # List of vendor types for the ads that may be shown from this snippet. Each vendor type is represented by an integer as defined in vendors.txt.
             42,
           ],
-          "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+          "sensitiveCategories": [ # Detected sensitive categories, if any. Each category is represented by an integer as defined in  ad-sensitive-categories.txt. Read-only. This field should not be set in requests.
             42,
           ],
-          "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+          "productCategories": [ # Detected product categories, if any. Each category is represented by an integer as defined in  ad-product-categories.txt. Read-only. This field should not be set in requests.
             42,
           ],
           "agencyId": "A String", # The agency id for this creative.
@@ -648,7 +648,7 @@
                   "auctionType": [ # Only set when contextType=AUCTION_TYPE. Represents the auction types this restriction applies to.
                     "A String",
                   ],
-                  "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to.
+                  "geoCriteriaId": [ # Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to. Impressions are considered to match a context if either the user location or publisher location matches a given geoCriteriaId.
                     42,
                   ],
                 },
@@ -664,7 +664,7 @@
               "reason": "A String", # Why the creative is ineligible to serve in this context (e.g., it has been explicitly disapproved or is pending review).
             },
           ],
-          "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+          "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet. Each category is represented by an integer as defined in the  ad-restricted-categories.txt.
             42,
           ],
           "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
@@ -694,7 +694,7 @@
             "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 the creative-status-codes.txt file for different statuses.
+                "filteringStatus": 42, # The filtering status code as defined in  creative-status-codes.txt.
               },
             ],
           },
diff --git a/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html b/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
index 5d7142b..3d1857c 100644
--- a/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
+++ b/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
@@ -309,6 +309,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
@@ -534,6 +535,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
@@ -754,6 +756,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
@@ -981,6 +984,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
@@ -1205,6 +1209,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
@@ -1489,6 +1494,7 @@
         "productRevisionNumber": "A String", # The revision number of the product that the deal was created from (readonly, except on create)
         "flightStartTimeMs": "A String", # Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)
         "dealServingMetadata": { # Metadata about the serving status of this deal (readonly, writes via custom actions)
+          "alcoholAdsAllowed": True or False, # True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals
           "dealPauseStatus": { # Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently. # Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)
             "hasSellerPaused": True or False,
             "buyerPauseReason": "A String",
diff --git a/docs/dyn/admin_directory_v1.users.html b/docs/dyn/admin_directory_v1.users.html
index 8816c87..9a992f2 100644
--- a/docs/dyn/admin_directory_v1.users.html
+++ b/docs/dyn/admin_directory_v1.users.html
@@ -165,6 +165,7 @@
       "deletionTime": "A String",
       "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
       "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+      "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
       "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
       "relations": "",
       "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -176,6 +177,7 @@
       "externalIds": "",
       "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
       "primaryEmail": "A String", # username of User
+      "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
       "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
       "password": "A String", # User's password
       "emails": "",
@@ -224,6 +226,7 @@
     "deletionTime": "A String",
     "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
     "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+    "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
     "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
     "relations": "",
     "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -235,6 +238,7 @@
     "externalIds": "",
     "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
     "primaryEmail": "A String", # username of User
+    "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
     "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
     "password": "A String", # User's password
     "emails": "",
@@ -278,6 +282,7 @@
       "deletionTime": "A String",
       "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
       "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+      "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
       "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
       "relations": "",
       "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -289,6 +294,7 @@
       "externalIds": "",
       "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
       "primaryEmail": "A String", # username of User
+      "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
       "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
       "password": "A String", # User's password
       "emails": "",
@@ -376,6 +382,7 @@
           "deletionTime": "A String",
           "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
           "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+          "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
           "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
           "relations": "",
           "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -387,6 +394,7 @@
           "externalIds": "",
           "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
           "primaryEmail": "A String", # username of User
+          "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
           "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
           "password": "A String", # User's password
           "emails": "",
@@ -468,6 +476,7 @@
     "deletionTime": "A String",
     "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
     "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+    "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
     "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
     "relations": "",
     "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -479,6 +488,7 @@
     "externalIds": "",
     "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
     "primaryEmail": "A String", # username of User
+    "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
     "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
     "password": "A String", # User's password
     "emails": "",
@@ -522,6 +532,7 @@
       "deletionTime": "A String",
       "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
       "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+      "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
       "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
       "relations": "",
       "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -533,6 +544,7 @@
       "externalIds": "",
       "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
       "primaryEmail": "A String", # username of User
+      "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
       "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
       "password": "A String", # User's password
       "emails": "",
@@ -598,6 +610,7 @@
     "deletionTime": "A String",
     "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
     "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+    "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
     "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
     "relations": "",
     "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -609,6 +622,7 @@
     "externalIds": "",
     "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
     "primaryEmail": "A String", # username of User
+    "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
     "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
     "password": "A String", # User's password
     "emails": "",
@@ -652,6 +666,7 @@
       "deletionTime": "A String",
       "suspensionReason": "A String", # Suspension reason if user is suspended (Read-only)
       "thumbnailPhotoUrl": "A String", # Photo Url of the user (Read-only)
+      "isEnrolledIn2Sv": True or False, # Is enrolled in 2-step verification (Read-only)
       "isAdmin": True or False, # Boolean indicating if the user is admin (Read-only)
       "relations": "",
       "includeInGlobalAddressList": True or False, # Boolean indicating if user is included in Global Address List
@@ -663,6 +678,7 @@
       "externalIds": "",
       "ipWhitelisted": True or False, # Boolean indicating if ip is whitelisted
       "primaryEmail": "A String", # username of User
+      "isEnforcedIn2Sv": True or False, # Is 2-step verification enforced (Read-only)
       "isMailboxSetup": True or False, # Is mailbox setup (Read-only)
       "password": "A String", # User's password
       "emails": "",
diff --git a/docs/dyn/analyticsreporting_v4.reports.html b/docs/dyn/analyticsreporting_v4.reports.html
index 69f3515..5ca527f 100644
--- a/docs/dyn/analyticsreporting_v4.reports.html
+++ b/docs/dyn/analyticsreporting_v4.reports.html
@@ -91,6 +91,41 @@
         # There can be a maximum of 5 requests. All requests should have the same
         # `dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.
       { # The main request class which specifies the Reporting API request.
+        "dateRanges": [ # Date ranges in the request. The request can have a maximum of 2 date
+            # ranges. The response will contain a set of metric values for each
+            # combination of the dimensions for each date range in the request. So, if
+            # there are two date ranges, there will be two set of metric values, one for
+            # the original date range and one for the second date range.
+            # The `reportRequest.dateRanges` field should not be specified for cohorts
+            # or Lifetime value requests.
+            # If a date range is not provided, the default date range is (startDate:
+            # current date - 7 days, endDate: current date - 1 day). Every
+            # [ReportRequest](#ReportRequest) within a `batchGet` method must
+            # contain the same `dateRanges` definition.
+          { # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
+              # The start and end dates are specified in
+              # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
+            "startDate": "A String", # The start date for the query in the format `YYYY-MM-DD`.
+            "endDate": "A String", # The end date for the query in the format `YYYY-MM-DD`.
+          },
+        ],
+        "hideTotals": True or False, # If set to true, hides the total of all metrics for all the matching rows,
+            # for every date range. The default false and will return the totals.
+        "pageSize": 42, # Page size is for paging and specifies the maximum number of returned rows.
+            # Page size should be >= 0. A query returns the default of 1,000 rows.
+            # The Analytics Core Reporting API returns a maximum of 10,000 rows per
+            # request, no matter how many you ask for. It can also return fewer rows
+            # than requested, if there aren't as many dimension segments as you expect.
+            # For instance, there are fewer than 300 possible values for `ga:country`,
+            # so when segmenting only by country, you can't get more than 300 rows,
+            # even if you set `pageSize` to a higher value.
+        "filtersExpression": "A String", # Dimension or metric filters that restrict the data returned for your
+            # request. To use the `filtersExpression`, supply a dimension or metric on
+            # which to filter, followed by the filter expression. For example, the
+            # following expression selects `ga:browser` dimension which starts with
+            # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
+            # and metric filters, see
+            # [Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).
         "pivots": [ # The pivot definitions. Requests can have a maximum of 2 pivots.
           { # The Pivot describes the pivot section in the request.
               # The Pivot helps rearrange the information in the table for certain reports
@@ -117,19 +152,8 @@
                     # `INTEGER`.
               },
             ],
-            "startGroup": 42, # If k metrics were requested, then the response will contain some
-                # data-dependent multiple of k columns in the report.  E.g., if you pivoted
-                # on the dimension `ga:browser` then you'd get k columns for "Firefox", k
-                # columns for "IE", k columns for "Chrome", etc. The ordering of the groups
-                # of columns is determined by descending order of "total" for the first of
-                # the k values.  Ties are broken by lexicographic ordering of the first
-                # pivot dimension, then lexicographic ordering of the second pivot
-                # dimension, and so on.  E.g., if the totals for the first value for
-                # Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns
-                # would be Chrome, Firefox, IE.
-                #
-                # The following let you choose which of the groups of k columns are
-                # included in the response.
+            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
+                # The default value is 10, also the maximum value is 1,000.
             "dimensions": [ # A list of dimensions to show as pivot columns. A Pivot can have a maximum
                 # of 4 dimensions. Pivot dimensions are part of the restriction on the
                 # total number of dimensions allowed in the request.
@@ -188,7 +212,7 @@
                     # operator specified.
                   { # Dimension filter specifies the filtering options on a dimension.
                     "dimensionName": "A String", # The dimension to filter on. A DimensionFilter must contain a dimension.
-                    "operator": "A String", # How to match the dimension to the expression. The default is REGEXP.
+                    "caseSensitive": True or False, # Should the match be case sensitive? Default is false.
                     "expressions": [ # Strings or regular expression to match against. Only the first value of
                         # the list is used for comparison unless the operator is `IN_LIST`.
                         # If `IN_LIST` operator, then the entire list is used to filter the
@@ -197,80 +221,24 @@
                     ],
                     "not": True or False, # Logical `NOT` operator. If this boolean is set to true, then the matching
                         # dimension values will be excluded in the report. The default is false.
-                    "caseSensitive": True or False, # Should the match be case sensitive? Default is false.
+                    "operator": "A String", # How to match the dimension to the expression. The default is REGEXP.
                   },
                 ],
               },
             ],
-            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
-                # The default value is 10, also the maximum value is 1,000.
-          },
-        ],
-        "hideTotals": True or False, # If set to true, hides the total of all metrics for all the matching rows,
-            # for every date range. The default false and will return the totals.
-        "metrics": [ # The metrics requested.
-            # Requests must specify at least one metric. Requests can have a
-            # total of 10 metrics.
-          { # [Metrics](https://support.google.com/analytics/answer/1033861)
-              # are the quantitative measurements. For example, the metric `ga:users`
-              # indicates the total number of users for the requested time period.
-            "alias": "A String", # An alias for the metric expression is an alternate name for the
-                # expression. The alias can be used for filtering and sorting. This field
-                # is optional and is useful if the expression is not a single metric but
-                # a complex expression which cannot be used in filtering and sorting.
-                # The alias is also used in the response column header.
-            "expression": "A String", # A metric expression in the request. An expression is constructed from one
-                # or more metrics and numbers. Accepted operators include: Plus (+), Minus
-                # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
-                # Positive cardinal numbers (0-9), can include decimals and is limited to
-                # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
-                # metric expression is just a single metric name like `ga:users`.
-                # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
-                # will result in unexpected results.
-            "formattingType": "A String", # Specifies how the metric expression should be formatted, for example
-                # `INTEGER`.
-          },
-        ],
-        "dimensions": [ # The dimensions requested.
-            # Requests can have a total of 7 dimensions.
-          { # [Dimensions](https://support.google.com/analytics/answer/1033861)
-              # are attributes of your data. For example, the dimension `ga:city`
-              # indicates the city, for example, "Paris" or "New York", from which
-              # a session originates.
-            "name": "A String", # Name of the dimension to fetch, for example `ga:browser`.
-            "histogramBuckets": [ # If non-empty, we place dimension values into buckets after string to
-                # int64. Dimension values that are not the string representation of an
-                # integral value will be converted to zero.  The bucket values have to be in
-                # increasing order.  Each bucket is closed on the lower end, and open on the
-                # upper end. The "first" bucket includes all values less than the first
-                # boundary, the "last" bucket includes all values up to infinity. Dimension
-                # values that fall in a bucket get transformed to a new dimension value. For
-                # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
-                # following buckets:
+            "startGroup": 42, # If k metrics were requested, then the response will contain some
+                # data-dependent multiple of k columns in the report.  E.g., if you pivoted
+                # on the dimension `ga:browser` then you'd get k columns for "Firefox", k
+                # columns for "IE", k columns for "Chrome", etc. The ordering of the groups
+                # of columns is determined by descending order of "total" for the first of
+                # the k values.  Ties are broken by lexicographic ordering of the first
+                # pivot dimension, then lexicographic ordering of the second pivot
+                # dimension, and so on.  E.g., if the totals for the first value for
+                # Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns
+                # would be Chrome, Firefox, IE.
                 #
-                # - bucket #1: values < 0, dimension value "<0"
-                # - bucket #2: values in [0,1), dimension value "0"
-                # - bucket #3: values in [1,3), dimension value "1-2"
-                # - bucket #4: values in [3,4), dimension value "3"
-                # - bucket #5: values in [4,7), dimension value "4-6"
-                # - bucket #6: values >= 7, dimension value "7+"
-                #
-                # NOTE: If you are applying histogram mutation on any dimension, and using
-                # that dimension in sort, you will want to use the sort type
-                # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
-                # will be sorted according to dictionary
-                # (lexicographic) order. For example the ascending dictionary order is:
-                #
-                #    "<50", "1001+", "121-1000", "50-120"
-                #
-                # And the ascending `HISTOGRAM_BUCKET` order is:
-                #
-                #    "<50", "50-120", "121-1000", "1001+"
-                #
-                # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
-                # for a histogram-mutated dimension.
-              "A String",
-            ],
+                # The following let you choose which of the groups of k columns are
+                # included in the response.
           },
         ],
         "dimensionFilterClauses": [ # The dimension filter clauses for filtering Dimension Values. They are
@@ -285,7 +253,7 @@
                 # operator specified.
               { # Dimension filter specifies the filtering options on a dimension.
                 "dimensionName": "A String", # The dimension to filter on. A DimensionFilter must contain a dimension.
-                "operator": "A String", # How to match the dimension to the expression. The default is REGEXP.
+                "caseSensitive": True or False, # Should the match be case sensitive? Default is false.
                 "expressions": [ # Strings or regular expression to match against. Only the first value of
                     # the list is used for comparison unless the operator is `IN_LIST`.
                     # If `IN_LIST` operator, then the entire list is used to filter the
@@ -294,274 +262,25 @@
                 ],
                 "not": True or False, # Logical `NOT` operator. If this boolean is set to true, then the matching
                     # dimension values will be excluded in the report. The default is false.
-                "caseSensitive": True or False, # Should the match be case sensitive? Default is false.
+                "operator": "A String", # How to match the dimension to the expression. The default is REGEXP.
               },
             ],
           },
         ],
+        "viewId": "A String", # The Analytics
+            # [view ID](https://support.google.com/analytics/answer/1009618)
+            # from which to retrieve data. Every [ReportRequest](#ReportRequest)
+            # within a `batchGet` method must contain the same `viewId`.
         "includeEmptyRows": True or False, # If set to false, the response does not include rows if all the retrieved
             # metrics are equal to zero. The default is false which will exclude these
             # rows.
-        "filtersExpression": "A String", # Dimension or metric filters that restrict the data returned for your
-            # request. To use the `filtersExpression`, supply a dimension or metric on
-            # which to filter, followed by the filter expression. For example, the
-            # following expression selects `ga:browser` dimension which starts with
-            # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
-            # and metric filters, see
-            # [Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).
-        "segments": [ # Segment the data returned for the request. A segment definition helps look
-            # at a subset of the segment request. A request can contain up to four
-            # segments. Every [ReportRequest](#ReportRequest) within a
-            # `batchGet` method must contain the same `segments` definition. Requests
-            # with segments must have the `ga:segment` dimension.
-          { # The segment definition, if the report needs to be segmented.
-              # A Segment is a subset of the Analytics data. For example, of the entire
-              # set of users, one Segment might be users from a particular country or city.
-            "dynamicSegment": { # Dynamic segment definition for defining the segment within the request. # A dynamic segment definition in the request.
-                # A segment can select users, sessions or both.
-              "sessionSegment": { # SegmentDefinition defines the segment to be a set of SegmentFilters which # Session Segment to select sessions to include in the segment.
-                  # are combined together with a logical `AND` operation.
-                "segmentFilters": [ # A segment is defined by a set of segment filters which are combined
-                    # together with a logical `AND` operation.
-                  { # SegmentFilter defines the segment to be either a simple or a sequence
-                      # segment. A simple segment condition contains dimension and metric conditions
-                      # to select the sessions or users. A sequence segment condition can be used to
-                      # select users or sessions based on sequential conditions.
-                    "not": True or False, # If true, match the complement of simple or sequence segment.
-                        # For example, to match all visits not from "New York", we can define the
-                        # segment as follows:
-                        #
-                        #       "sessionSegment": {
-                        #         "segmentFilters": [{
-                        #           "simpleSegment" :{
-                        #             "orFiltersForSegment": [{
-                        #               "segmentFilterClauses":[{
-                        #                 "dimensionFilter": {
-                        #                   "dimensionName": "ga:city",
-                        #                   "expressions": ["New York"]
-                        #                 }
-                        #               }]
-                        #             }]
-                        #           },
-                        #           "not": "True"
-                        #         }]
-                        #       },
-                    "simpleSegment": { # A Simple segment conditions consist of one or more dimension/metric # A Simple segment conditions consist of one or more dimension/metric
-                        # conditions that can be combined
-                        # conditions that can be combined.
-                      "orFiltersForSegment": [ # A list of segment filters groups which are combined with logical `AND`
-                          # operator.
-                        { # A list of segment filters in the `OR` group are combined with the logical OR
-                            # operator.
-                          "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
-                            { # Filter Clause to be used in a segment definition, can be wither a metric or
-                                # a dimension filter.
-                              "not": True or False, # Matches the complement (`!`) of the filter.
-                              "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
-                                "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
-                                "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
-                                "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
-                                "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
-                                "operator": "A String", # The operator to use to match the dimension with the expressions.
-                                "expressions": [ # The list of expressions, only the first element is used for all operators
-                                  "A String",
-                                ],
-                              },
-                              "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
-                                "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
-                                    # is `EQUAL`.
-                                "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
-                                    # specified metric scope must be equal to or greater than its primary scope
-                                    # as defined in the data model. The primary scope is defined by if the
-                                    # segment is selecting users or sessions.
-                                "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
-                                    # treated as minimum comparison value.
-                                "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
-                                "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
-                                    # metric name.
-                              },
-                            },
-                          ],
-                        },
-                      ],
-                    },
-                    "sequenceSegment": { # Sequence conditions consist of one or more steps, where each step is defined # Sequence conditions consist of one or more steps, where each step is
-                        # defined by one or more dimension/metric conditions. Multiple steps can
-                        # be combined with special sequence operators.
-                        # by one or more dimension/metric conditions. Multiple steps can be combined
-                        # with special sequence operators.
-                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
-                          # the date range).
-                      "segmentSequenceSteps": [ # The list of steps in the sequence.
-                        { # A segment sequence definition.
-                          "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
-                              # next step.
-                          "orFiltersForSegment": [ # A sequence is specified with a list of Or grouped filters which are
-                              # combined with `AND` operator.
-                            { # A list of segment filters in the `OR` group are combined with the logical OR
-                                # operator.
-                              "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
-                                { # Filter Clause to be used in a segment definition, can be wither a metric or
-                                    # a dimension filter.
-                                  "not": True or False, # Matches the complement (`!`) of the filter.
-                                  "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
-                                    "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
-                                    "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
-                                    "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
-                                    "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
-                                    "operator": "A String", # The operator to use to match the dimension with the expressions.
-                                    "expressions": [ # The list of expressions, only the first element is used for all operators
-                                      "A String",
-                                    ],
-                                  },
-                                  "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
-                                    "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
-                                        # is `EQUAL`.
-                                    "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
-                                        # specified metric scope must be equal to or greater than its primary scope
-                                        # as defined in the data model. The primary scope is defined by if the
-                                        # segment is selecting users or sessions.
-                                    "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
-                                        # treated as minimum comparison value.
-                                    "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
-                                    "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
-                                        # metric name.
-                                  },
-                                },
-                              ],
-                            },
-                          ],
-                        },
-                      ],
-                    },
-                  },
-                ],
-              },
-              "name": "A String", # The name of the dynamic segment.
-              "userSegment": { # SegmentDefinition defines the segment to be a set of SegmentFilters which # User Segment to select users to include in the segment.
-                  # are combined together with a logical `AND` operation.
-                "segmentFilters": [ # A segment is defined by a set of segment filters which are combined
-                    # together with a logical `AND` operation.
-                  { # SegmentFilter defines the segment to be either a simple or a sequence
-                      # segment. A simple segment condition contains dimension and metric conditions
-                      # to select the sessions or users. A sequence segment condition can be used to
-                      # select users or sessions based on sequential conditions.
-                    "not": True or False, # If true, match the complement of simple or sequence segment.
-                        # For example, to match all visits not from "New York", we can define the
-                        # segment as follows:
-                        #
-                        #       "sessionSegment": {
-                        #         "segmentFilters": [{
-                        #           "simpleSegment" :{
-                        #             "orFiltersForSegment": [{
-                        #               "segmentFilterClauses":[{
-                        #                 "dimensionFilter": {
-                        #                   "dimensionName": "ga:city",
-                        #                   "expressions": ["New York"]
-                        #                 }
-                        #               }]
-                        #             }]
-                        #           },
-                        #           "not": "True"
-                        #         }]
-                        #       },
-                    "simpleSegment": { # A Simple segment conditions consist of one or more dimension/metric # A Simple segment conditions consist of one or more dimension/metric
-                        # conditions that can be combined
-                        # conditions that can be combined.
-                      "orFiltersForSegment": [ # A list of segment filters groups which are combined with logical `AND`
-                          # operator.
-                        { # A list of segment filters in the `OR` group are combined with the logical OR
-                            # operator.
-                          "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
-                            { # Filter Clause to be used in a segment definition, can be wither a metric or
-                                # a dimension filter.
-                              "not": True or False, # Matches the complement (`!`) of the filter.
-                              "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
-                                "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
-                                "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
-                                "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
-                                "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
-                                "operator": "A String", # The operator to use to match the dimension with the expressions.
-                                "expressions": [ # The list of expressions, only the first element is used for all operators
-                                  "A String",
-                                ],
-                              },
-                              "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
-                                "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
-                                    # is `EQUAL`.
-                                "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
-                                    # specified metric scope must be equal to or greater than its primary scope
-                                    # as defined in the data model. The primary scope is defined by if the
-                                    # segment is selecting users or sessions.
-                                "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
-                                    # treated as minimum comparison value.
-                                "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
-                                "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
-                                    # metric name.
-                              },
-                            },
-                          ],
-                        },
-                      ],
-                    },
-                    "sequenceSegment": { # Sequence conditions consist of one or more steps, where each step is defined # Sequence conditions consist of one or more steps, where each step is
-                        # defined by one or more dimension/metric conditions. Multiple steps can
-                        # be combined with special sequence operators.
-                        # by one or more dimension/metric conditions. Multiple steps can be combined
-                        # with special sequence operators.
-                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
-                          # the date range).
-                      "segmentSequenceSteps": [ # The list of steps in the sequence.
-                        { # A segment sequence definition.
-                          "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
-                              # next step.
-                          "orFiltersForSegment": [ # A sequence is specified with a list of Or grouped filters which are
-                              # combined with `AND` operator.
-                            { # A list of segment filters in the `OR` group are combined with the logical OR
-                                # operator.
-                              "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
-                                { # Filter Clause to be used in a segment definition, can be wither a metric or
-                                    # a dimension filter.
-                                  "not": True or False, # Matches the complement (`!`) of the filter.
-                                  "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
-                                    "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
-                                    "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
-                                    "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
-                                    "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
-                                    "operator": "A String", # The operator to use to match the dimension with the expressions.
-                                    "expressions": [ # The list of expressions, only the first element is used for all operators
-                                      "A String",
-                                    ],
-                                  },
-                                  "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
-                                    "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
-                                        # is `EQUAL`.
-                                    "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
-                                        # specified metric scope must be equal to or greater than its primary scope
-                                        # as defined in the data model. The primary scope is defined by if the
-                                        # segment is selecting users or sessions.
-                                    "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
-                                        # treated as minimum comparison value.
-                                    "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
-                                    "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
-                                        # metric name.
-                                  },
-                                },
-                              ],
-                            },
-                          ],
-                        },
-                      ],
-                    },
-                  },
-                ],
-              },
-            },
-            "segmentId": "A String", # The segment ID of a built-in or custom segment, for example `gaid::-3`.
-          },
-        ],
-        "hideValueRanges": True or False, # If set to true, hides the minimum and maximum across all matching rows.
-            # The default is false and the value ranges are returned.
+        "samplingLevel": "A String", # The desired report
+            # [sample](https://support.google.com/analytics/answer/2637192) size.
+            # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
+            # level is used. Every [ReportRequest](#ReportRequest) within a
+            # `batchGet` method must contain the same `samplingLevel` definition. See
+            # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
+            #  for details.
         "orderBys": [ # Sort order on output rows. To compare two rows, the elements of the
             # following are applied in order until a difference is found.  All date
             # ranges in the output get the same row order.
@@ -648,43 +367,35 @@
               # - The `viewId` must be an
               #   [app view ID](https://support.google.com/analytics/answer/2649553#WebVersusAppViews)
         },
-        "dateRanges": [ # Date ranges in the request. The request can have a maximum of 2 date
-            # ranges. The response will contain a set of metric values for each
-            # combination of the dimensions for each date range in the request. So, if
-            # there are two date ranges, there will be two set of metric values, one for
-            # the original date range and one for the second date range.
-            # The `reportRequest.dateRanges` field should not be specified for cohorts
-            # or Lifetime value requests.
-            # If a date range is not provided, the default date range is (startDate:
-            # current date - 7 days, endDate: current date - 1 day). Every
-            # [ReportRequest](#ReportRequest) within a `batchGet` method must
-            # contain the same `dateRanges` definition.
-          { # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
-              # The start and end dates are specified in
-              # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
-            "startDate": "A String", # The start date for the query in the format `YYYY-MM-DD`.
-            "endDate": "A String", # The end date for the query in the format `YYYY-MM-DD`.
+        "metrics": [ # The metrics requested.
+            # Requests must specify at least one metric. Requests can have a
+            # total of 10 metrics.
+          { # [Metrics](https://support.google.com/analytics/answer/1033861)
+              # are the quantitative measurements. For example, the metric `ga:users`
+              # indicates the total number of users for the requested time period.
+            "alias": "A String", # An alias for the metric expression is an alternate name for the
+                # expression. The alias can be used for filtering and sorting. This field
+                # is optional and is useful if the expression is not a single metric but
+                # a complex expression which cannot be used in filtering and sorting.
+                # The alias is also used in the response column header.
+            "expression": "A String", # A metric expression in the request. An expression is constructed from one
+                # or more metrics and numbers. Accepted operators include: Plus (+), Minus
+                # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
+                # Positive cardinal numbers (0-9), can include decimals and is limited to
+                # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
+                # metric expression is just a single metric name like `ga:users`.
+                # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
+                # will result in unexpected results.
+            "formattingType": "A String", # Specifies how the metric expression should be formatted, for example
+                # `INTEGER`.
           },
         ],
         "pageToken": "A String", # A continuation token to get the next page of the results. Adding this to
             # the request will return the rows after the pageToken. The pageToken should
             # be the value returned in the nextPageToken parameter in the response to
             # the GetReports request.
-        "samplingLevel": "A String", # The desired report
-            # [sample](https://support.google.com/analytics/answer/2637192) size.
-            # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
-            # level is used. Every [ReportRequest](#ReportRequest) within a
-            # `batchGet` method must contain the same `samplingLevel` definition. See
-            # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
-            #  for details.
-        "pageSize": 42, # Page size is for paging and specifies the maximum number of returned rows.
-            # Page size should be >= 0. A query returns the default of 1,000 rows.
-            # The Analytics Core Reporting API returns a maximum of 10,000 rows per
-            # request, no matter how many you ask for. It can also return fewer rows
-            # than requested, if there aren't as many dimension segments as you expect.
-            # For instance, there are fewer than 300 possible values for `ga:country`,
-            # so when segmenting only by country, you can't get more than 300 rows,
-            # even if you set `pageSize` to a higher value.
+        "hideValueRanges": True or False, # If set to true, hides the minimum and maximum across all matching rows.
+            # The default is false and the value ranges are returned.
         "metricFilterClauses": [ # The metric filter clauses. They are logically combined with the `AND`
             # operator.  Metric filters look at only the first date range and not the
             # comparing date range. Note that filtering on metrics occurs after the
@@ -710,10 +421,299 @@
             ],
           },
         ],
-        "viewId": "A String", # The Analytics
-            # [view ID](https://support.google.com/analytics/answer/1009618)
-            # from which to retrieve data. Every [ReportRequest](#ReportRequest)
-            # within a `batchGet` method must contain the same `viewId`.
+        "segments": [ # Segment the data returned for the request. A segment definition helps look
+            # at a subset of the segment request. A request can contain up to four
+            # segments. Every [ReportRequest](#ReportRequest) within a
+            # `batchGet` method must contain the same `segments` definition. Requests
+            # with segments must have the `ga:segment` dimension.
+          { # The segment definition, if the report needs to be segmented.
+              # A Segment is a subset of the Analytics data. For example, of the entire
+              # set of users, one Segment might be users from a particular country or city.
+            "dynamicSegment": { # Dynamic segment definition for defining the segment within the request. # A dynamic segment definition in the request.
+                # A segment can select users, sessions or both.
+              "sessionSegment": { # SegmentDefinition defines the segment to be a set of SegmentFilters which # Session Segment to select sessions to include in the segment.
+                  # are combined together with a logical `AND` operation.
+                "segmentFilters": [ # A segment is defined by a set of segment filters which are combined
+                    # together with a logical `AND` operation.
+                  { # SegmentFilter defines the segment to be either a simple or a sequence
+                      # segment. A simple segment condition contains dimension and metric conditions
+                      # to select the sessions or users. A sequence segment condition can be used to
+                      # select users or sessions based on sequential conditions.
+                    "not": True or False, # If true, match the complement of simple or sequence segment.
+                        # For example, to match all visits not from "New York", we can define the
+                        # segment as follows:
+                        #
+                        #       "sessionSegment": {
+                        #         "segmentFilters": [{
+                        #           "simpleSegment" :{
+                        #             "orFiltersForSegment": [{
+                        #               "segmentFilterClauses":[{
+                        #                 "dimensionFilter": {
+                        #                   "dimensionName": "ga:city",
+                        #                   "expressions": ["New York"]
+                        #                 }
+                        #               }]
+                        #             }]
+                        #           },
+                        #           "not": "True"
+                        #         }]
+                        #       },
+                    "simpleSegment": { # A Simple segment conditions consist of one or more dimension/metric # A Simple segment conditions consist of one or more dimension/metric
+                        # conditions that can be combined
+                        # conditions that can be combined.
+                      "orFiltersForSegment": [ # A list of segment filters groups which are combined with logical `AND`
+                          # operator.
+                        { # A list of segment filters in the `OR` group are combined with the logical OR
+                            # operator.
+                          "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
+                            { # Filter Clause to be used in a segment definition, can be wither a metric or
+                                # a dimension filter.
+                              "not": True or False, # Matches the complement (`!`) of the filter.
+                              "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
+                                "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
+                                "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
+                                "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
+                                "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
+                                "operator": "A String", # The operator to use to match the dimension with the expressions.
+                                "expressions": [ # The list of expressions, only the first element is used for all operators
+                                  "A String",
+                                ],
+                              },
+                              "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
+                                "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
+                                    # is `EQUAL`.
+                                "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
+                                    # specified metric scope must be equal to or greater than its primary scope
+                                    # as defined in the data model. The primary scope is defined by if the
+                                    # segment is selecting users or sessions.
+                                "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
+                                    # treated as minimum comparison value.
+                                "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
+                                "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
+                                    # metric name.
+                              },
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                    "sequenceSegment": { # Sequence conditions consist of one or more steps, where each step is defined # Sequence conditions consist of one or more steps, where each step is
+                        # defined by one or more dimension/metric conditions. Multiple steps can
+                        # be combined with special sequence operators.
+                        # by one or more dimension/metric conditions. Multiple steps can be combined
+                        # with special sequence operators.
+                      "segmentSequenceSteps": [ # The list of steps in the sequence.
+                        { # A segment sequence definition.
+                          "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
+                              # next step.
+                          "orFiltersForSegment": [ # A sequence is specified with a list of Or grouped filters which are
+                              # combined with `AND` operator.
+                            { # A list of segment filters in the `OR` group are combined with the logical OR
+                                # operator.
+                              "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
+                                { # Filter Clause to be used in a segment definition, can be wither a metric or
+                                    # a dimension filter.
+                                  "not": True or False, # Matches the complement (`!`) of the filter.
+                                  "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
+                                    "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
+                                    "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
+                                    "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
+                                    "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
+                                    "operator": "A String", # The operator to use to match the dimension with the expressions.
+                                    "expressions": [ # The list of expressions, only the first element is used for all operators
+                                      "A String",
+                                    ],
+                                  },
+                                  "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
+                                    "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
+                                        # is `EQUAL`.
+                                    "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
+                                        # specified metric scope must be equal to or greater than its primary scope
+                                        # as defined in the data model. The primary scope is defined by if the
+                                        # segment is selecting users or sessions.
+                                    "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
+                                        # treated as minimum comparison value.
+                                    "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
+                                    "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
+                                        # metric name.
+                                  },
+                                },
+                              ],
+                            },
+                          ],
+                        },
+                      ],
+                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
+                          # the date range).
+                    },
+                  },
+                ],
+              },
+              "name": "A String", # The name of the dynamic segment.
+              "userSegment": { # SegmentDefinition defines the segment to be a set of SegmentFilters which # User Segment to select users to include in the segment.
+                  # are combined together with a logical `AND` operation.
+                "segmentFilters": [ # A segment is defined by a set of segment filters which are combined
+                    # together with a logical `AND` operation.
+                  { # SegmentFilter defines the segment to be either a simple or a sequence
+                      # segment. A simple segment condition contains dimension and metric conditions
+                      # to select the sessions or users. A sequence segment condition can be used to
+                      # select users or sessions based on sequential conditions.
+                    "not": True or False, # If true, match the complement of simple or sequence segment.
+                        # For example, to match all visits not from "New York", we can define the
+                        # segment as follows:
+                        #
+                        #       "sessionSegment": {
+                        #         "segmentFilters": [{
+                        #           "simpleSegment" :{
+                        #             "orFiltersForSegment": [{
+                        #               "segmentFilterClauses":[{
+                        #                 "dimensionFilter": {
+                        #                   "dimensionName": "ga:city",
+                        #                   "expressions": ["New York"]
+                        #                 }
+                        #               }]
+                        #             }]
+                        #           },
+                        #           "not": "True"
+                        #         }]
+                        #       },
+                    "simpleSegment": { # A Simple segment conditions consist of one or more dimension/metric # A Simple segment conditions consist of one or more dimension/metric
+                        # conditions that can be combined
+                        # conditions that can be combined.
+                      "orFiltersForSegment": [ # A list of segment filters groups which are combined with logical `AND`
+                          # operator.
+                        { # A list of segment filters in the `OR` group are combined with the logical OR
+                            # operator.
+                          "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
+                            { # Filter Clause to be used in a segment definition, can be wither a metric or
+                                # a dimension filter.
+                              "not": True or False, # Matches the complement (`!`) of the filter.
+                              "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
+                                "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
+                                "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
+                                "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
+                                "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
+                                "operator": "A String", # The operator to use to match the dimension with the expressions.
+                                "expressions": [ # The list of expressions, only the first element is used for all operators
+                                  "A String",
+                                ],
+                              },
+                              "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
+                                "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
+                                    # is `EQUAL`.
+                                "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
+                                    # specified metric scope must be equal to or greater than its primary scope
+                                    # as defined in the data model. The primary scope is defined by if the
+                                    # segment is selecting users or sessions.
+                                "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
+                                    # treated as minimum comparison value.
+                                "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
+                                "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
+                                    # metric name.
+                              },
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                    "sequenceSegment": { # Sequence conditions consist of one or more steps, where each step is defined # Sequence conditions consist of one or more steps, where each step is
+                        # defined by one or more dimension/metric conditions. Multiple steps can
+                        # be combined with special sequence operators.
+                        # by one or more dimension/metric conditions. Multiple steps can be combined
+                        # with special sequence operators.
+                      "segmentSequenceSteps": [ # The list of steps in the sequence.
+                        { # A segment sequence definition.
+                          "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
+                              # next step.
+                          "orFiltersForSegment": [ # A sequence is specified with a list of Or grouped filters which are
+                              # combined with `AND` operator.
+                            { # A list of segment filters in the `OR` group are combined with the logical OR
+                                # operator.
+                              "segmentFilterClauses": [ # List of segment filters to be combined with a `OR` operator.
+                                { # Filter Clause to be used in a segment definition, can be wither a metric or
+                                    # a dimension filter.
+                                  "not": True or False, # Matches the complement (`!`) of the filter.
+                                  "dimensionFilter": { # Dimension filter specifies the filtering options on a dimension. # Dimension Filter for the segment definition.
+                                    "minComparisonValue": "A String", # Minimum comparison values for `BETWEEN` match type.
+                                    "maxComparisonValue": "A String", # Maximum comparison values for `BETWEEN` match type.
+                                    "dimensionName": "A String", # Name of the dimension for which the filter is being applied.
+                                    "caseSensitive": True or False, # Should the match be case sensitive, ignored for `IN_LIST` operator.
+                                    "operator": "A String", # The operator to use to match the dimension with the expressions.
+                                    "expressions": [ # The list of expressions, only the first element is used for all operators
+                                      "A String",
+                                    ],
+                                  },
+                                  "metricFilter": { # Metric filter to be used in a segment filter clause. # Metric Filter for the segment definition.
+                                    "operator": "A String", # Specifies is the operation to perform to compare the metric. The default
+                                        # is `EQUAL`.
+                                    "scope": "A String", # Scope for a metric defines the level at which that metric is defined.  The
+                                        # specified metric scope must be equal to or greater than its primary scope
+                                        # as defined in the data model. The primary scope is defined by if the
+                                        # segment is selecting users or sessions.
+                                    "comparisonValue": "A String", # The value to compare against. If the operator is `BETWEEN`, this value is
+                                        # treated as minimum comparison value.
+                                    "maxComparisonValue": "A String", # Max comparison value is only used for `BETWEEN` operator.
+                                    "metricName": "A String", # The metric that will be filtered on. A `metricFilter` must contain a
+                                        # metric name.
+                                  },
+                                },
+                              ],
+                            },
+                          ],
+                        },
+                      ],
+                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
+                          # the date range).
+                    },
+                  },
+                ],
+              },
+            },
+            "segmentId": "A String", # The segment ID of a built-in or custom segment, for example `gaid::-3`.
+          },
+        ],
+        "dimensions": [ # The dimensions requested.
+            # Requests can have a total of 7 dimensions.
+          { # [Dimensions](https://support.google.com/analytics/answer/1033861)
+              # are attributes of your data. For example, the dimension `ga:city`
+              # indicates the city, for example, "Paris" or "New York", from which
+              # a session originates.
+            "name": "A String", # Name of the dimension to fetch, for example `ga:browser`.
+            "histogramBuckets": [ # If non-empty, we place dimension values into buckets after string to
+                # int64. Dimension values that are not the string representation of an
+                # integral value will be converted to zero.  The bucket values have to be in
+                # increasing order.  Each bucket is closed on the lower end, and open on the
+                # upper end. The "first" bucket includes all values less than the first
+                # boundary, the "last" bucket includes all values up to infinity. Dimension
+                # values that fall in a bucket get transformed to a new dimension value. For
+                # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
+                # following buckets:
+                #
+                # - bucket #1: values < 0, dimension value "<0"
+                # - bucket #2: values in [0,1), dimension value "0"
+                # - bucket #3: values in [1,3), dimension value "1-2"
+                # - bucket #4: values in [3,4), dimension value "3"
+                # - bucket #5: values in [4,7), dimension value "4-6"
+                # - bucket #6: values >= 7, dimension value "7+"
+                #
+                # NOTE: If you are applying histogram mutation on any dimension, and using
+                # that dimension in sort, you will want to use the sort type
+                # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
+                # will be sorted according to dictionary
+                # (lexicographic) order. For example the ascending dictionary order is:
+                #
+                #    "<50", "1001+", "121-1000", "50-120"
+                #
+                # And the ascending `HISTOGRAM_BUCKET` order is:
+                #
+                #    "<50", "50-120", "121-1000", "1001+"
+                #
+                # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
+                # for a histogram-mutated dimension.
+              "A String",
+            ],
+          },
+        ],
       },
     ],
   }
diff --git a/docs/dyn/androidenterprise_v1.devices.html b/docs/dyn/androidenterprise_v1.devices.html
index 9bae021..b14c852 100644
--- a/docs/dyn/androidenterprise_v1.devices.html
+++ b/docs/dyn/androidenterprise_v1.devices.html
@@ -99,18 +99,18 @@
 Returns:
   An object of the form:
 
-    { # A device resource represents a mobile device managed by the EMM and belonging to a specific enterprise user.
+    { # A Devices resource represents a mobile device managed by the EMM and belonging to a specific enterprise user.
       #
-      # This collection cannot be modified via the API; it is automatically populated as devices are set up to be managed.
+      # This collection cannot be modified via the API. It is automatically populated as devices are set up to be managed.
     "kind": "androidenterprise#device", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#device".
-    "managementType": "A String", # Identifies the extent to which the device is controlled by an Android for Work EMM in various deployment configurations.
+    "managementType": "A String", # Identifies the extent to which the device is controlled by a managed Google Play EMM in various deployment configurations.
         #
         # Possible values include:
         # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner,
-        # - "managedProfile", a device that has a work profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
-        # - "containerApp", a device running the Android for Work App. The Android for Work App is managed by the DPC,
-        # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use Android for Work apps or Google Apps for Work, but the profile is itself not owned by a DPC.
-    "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string, e.g. "123456789abcdef0".
+        # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
+        # - "containerApp", a device running the container App. The container App is managed by the DPC,
+        # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use managed Google Play, but the profile is itself not owned by a DPC.
+    "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string. For example, "123456789abcdef0".
   }</pre>
 </div>
 
@@ -145,18 +145,18 @@
 
     { # The device resources for the user.
     "device": [ # A managed device.
-      { # A device resource represents a mobile device managed by the EMM and belonging to a specific enterprise user.
+      { # A Devices resource represents a mobile device managed by the EMM and belonging to a specific enterprise user.
           #
-          # This collection cannot be modified via the API; it is automatically populated as devices are set up to be managed.
+          # This collection cannot be modified via the API. It is automatically populated as devices are set up to be managed.
         "kind": "androidenterprise#device", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#device".
-        "managementType": "A String", # Identifies the extent to which the device is controlled by an Android for Work EMM in various deployment configurations.
+        "managementType": "A String", # Identifies the extent to which the device is controlled by a managed Google Play EMM in various deployment configurations.
             #
             # Possible values include:
             # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner,
-            # - "managedProfile", a device that has a work profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
-            # - "containerApp", a device running the Android for Work App. The Android for Work App is managed by the DPC,
-            # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use Android for Work apps or Google Apps for Work, but the profile is itself not owned by a DPC.
-        "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string, e.g. "123456789abcdef0".
+            # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
+            # - "containerApp", a device running the container App. The container App is managed by the DPC,
+            # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use managed Google Play, but the profile is itself not owned by a DPC.
+        "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string. For example, "123456789abcdef0".
       },
     ],
     "kind": "androidenterprise#devicesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#devicesListResponse".
diff --git a/docs/dyn/androidenterprise_v1.enterprises.html b/docs/dyn/androidenterprise_v1.enterprises.html
index a31348c..78800f1 100644
--- a/docs/dyn/androidenterprise_v1.enterprises.html
+++ b/docs/dyn/androidenterprise_v1.enterprises.html
@@ -82,10 +82,10 @@
 <p class="firstline">Completes the signup flow, by specifying the Completion token and Enterprise token. This request must not be called multiple times for a given Enterprise Token.</p>
 <p class="toc_element">
   <code><a href="#createWebToken">createWebToken(enterpriseId, body)</a></code></p>
-<p class="firstline">Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the Play for Work javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.</p>
+<p class="firstline">Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(enterpriseId)</a></code></p>
-<p class="firstline">Deletes the binding between the EMM and enterprise. This is now deprecated; use this to unenroll customers that were previously enrolled with the 'insert' call, then enroll them again with the 'enroll' call.</p>
+<p class="firstline">Deletes the binding between the EMM and enterprise. This is now deprecated. Use this method only to unenroll customers that were previously enrolled with the insert call, then enroll them again with the enroll call.</p>
 <p class="toc_element">
   <code><a href="#enroll">enroll(token, body)</a></code></p>
 <p class="firstline">Enrolls an enterprise with the calling EMM.</p>
@@ -115,10 +115,10 @@
 <p class="firstline">Sends a test push notification to validate the EMM integration with the Google Cloud Pub/Sub service for this enterprise.</p>
 <p class="toc_element">
   <code><a href="#setAccount">setAccount(enterpriseId, body)</a></code></p>
-<p class="firstline">Set the account that will be used to authenticate to the API as the enterprise.</p>
+<p class="firstline">Sets the account that will be used to authenticate to the API as the enterprise.</p>
 <p class="toc_element">
   <code><a href="#setStoreLayout">setStoreLayout(enterpriseId, body)</a></code></p>
-<p class="firstline">Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the administrator, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.</p>
+<p class="firstline">Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.</p>
 <p class="toc_element">
   <code><a href="#unenroll">unenroll(enterpriseId)</a></code></p>
 <p class="firstline">Unenrolls an enterprise from the calling EMM.</p>
@@ -145,10 +145,10 @@
 
     { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
         # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-        # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-      "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-        { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-          "email": "A String", # The administrator's email address.
+        # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+          "email": "A String", # The admin's email address.
         },
       ],
       "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -160,7 +160,7 @@
 
 <div class="method">
     <code class="details" id="createWebToken">createWebToken(enterpriseId, body)</code>
-  <pre>Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the Play for Work javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.
+  <pre>Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -179,7 +179,7 @@
 Returns:
   An object of the form:
 
-    { # A token authorizing an administrator to access an iframe.
+    { # A token authorizing an admin to access an iframe.
     "kind": "androidenterprise#administratorWebToken", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#administratorWebToken".
     "token": "A String", # An opaque token to be passed to the Play front-end to generate an iframe.
   }</pre>
@@ -187,7 +187,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(enterpriseId)</code>
-  <pre>Deletes the binding between the EMM and enterprise. This is now deprecated; use this to unenroll customers that were previously enrolled with the 'insert' call, then enroll them again with the 'enroll' call.
+  <pre>Deletes the binding between the EMM and enterprise. This is now deprecated. Use this method only to unenroll customers that were previously enrolled with the insert call, then enroll them again with the enroll call.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -205,10 +205,10 @@
 
 { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
       # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-      # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-    "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-      { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-        "email": "A String", # The administrator's email address.
+      # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+    "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+      { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+        "email": "A String", # The admin's email address.
       },
     ],
     "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -223,10 +223,10 @@
 
     { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
         # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-        # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-      "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-        { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-          "email": "A String", # The administrator's email address.
+        # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+          "email": "A String", # The admin's email address.
         },
       ],
       "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -266,10 +266,10 @@
 
     { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
         # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-        # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-      "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-        { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-          "email": "A String", # The administrator's email address.
+        # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+          "email": "A String", # The admin's email address.
         },
       ],
       "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -322,8 +322,8 @@
 Returns:
   An object of the form:
 
-    { # General setting for the Google Play for Work store layout, currently only specifying the page to display the first time the store is opened.
-    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the Google Play for Work store.
+    { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
+    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
         #
         # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
         #
@@ -344,10 +344,10 @@
 
 { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
       # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-      # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-    "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-      { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-        "email": "A String", # The administrator's email address.
+      # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+    "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+      { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+        "email": "A String", # The admin's email address.
       },
     ],
     "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -362,10 +362,10 @@
 
     { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
         # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-        # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-      "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-        { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-          "email": "A String", # The administrator's email address.
+        # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+          "email": "A String", # The admin's email address.
         },
       ],
       "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -390,10 +390,10 @@
     "enterprise": [ # An enterprise.
       { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows:
             # - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process.
-            # - For Android for Work Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the Android for Work Sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
-          "administrator": [ # Administrators of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
-            { # This represents an enterprise administrator who can manage the enterprise in the Google Play for Work Store.
-              "email": "A String", # The administrator's email address.
+            # - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
+          "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
+            { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
+              "email": "A String", # The admin's email address.
             },
           ],
           "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
@@ -408,7 +408,7 @@
 <div class="method">
     <code class="details" id="pullNotificationSet">pullNotificationSet(requestMode=None)</code>
   <pre>Pulls and returns a notification set for the enterprises associated with the service account authenticated for the request. The notification set may be empty if no notification are pending.
-A notification set returned needs to be acknowledged within 20 seconds by calling Enterprises​.AcknowledgeNotificationSet, unless the notification set is empty.
+A notification set returned needs to be acknowledged within 20 seconds by calling Enterprises.AcknowledgeNotificationSet, unless the notification set is empty.
 Notifications that are not acknowledged within the 20 seconds will eventually be included again in the response to another PullNotificationSet request, and those that are never acknowledged will ultimately be deleted according to the Google Cloud Platform Pub/Sub system policy.
 Multiple requests might be performed concurrently to retrieve notifications, in which case the pending notifications (if any) will be split among each caller, if any are pending.
 If no notifications are present, an empty notification list is returned. Subsequent requests may return more notifications once they become available.
@@ -449,6 +449,15 @@
           "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the approval status has changed. This field will always be present.
         },
         "enterpriseId": "A String", # The ID of the enterprise for which the notification is sent. This will always be present.
+        "newDeviceEvent": { # An event generated when a new device is ready to be managed. # Notifications about new devices.
+          "userId": "A String", # The ID of the user. This field will always be present.
+          "deviceId": "A String", # The Android ID of the device. This field will always be present.
+          "managementType": "A String", # Identifies the extent to which the device is controlled by an Android EMM in various deployment configurations.
+              #
+              # Possible values include:
+              # - "managedDevice", a device where the DPC is set as device owner,
+              # - "managedProfile", a device where the DPC is set as profile owner.
+        },
         "installFailureEvent": { # An event generated when an app installation failed on a device # Notifications about an app installation failure.
           "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the install failure event occured. This field will always be present.
           "userId": "A String", # The ID of the user. This field will always be present.
@@ -485,7 +494,7 @@
 
 <div class="method">
     <code class="details" id="setAccount">setAccount(enterpriseId, body)</code>
-  <pre>Set the account that will be used to authenticate to the API as the enterprise.
+  <pre>Sets the account that will be used to authenticate to the API as the enterprise.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -509,15 +518,15 @@
 
 <div class="method">
     <code class="details" id="setStoreLayout">setStoreLayout(enterpriseId, body)</code>
-  <pre>Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the administrator, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.
+  <pre>Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # General setting for the Google Play for Work store layout, currently only specifying the page to display the first time the store is opened.
-  "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the Google Play for Work store.
+{ # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
+  "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
       # 
       # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
       # 
@@ -530,8 +539,8 @@
 Returns:
   An object of the form:
 
-    { # General setting for the Google Play for Work store layout, currently only specifying the page to display the first time the store is opened.
-    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the Google Play for Work store.
+    { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
+    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
         #
         # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
         #
diff --git a/docs/dyn/androidenterprise_v1.entitlements.html b/docs/dyn/androidenterprise_v1.entitlements.html
index 47fe56b..1ffc866 100644
--- a/docs/dyn/androidenterprise_v1.entitlements.html
+++ b/docs/dyn/androidenterprise_v1.entitlements.html
@@ -76,13 +76,13 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(enterpriseId, userId, entitlementId)</a></code></p>
-<p class="firstline">Removes an entitlement to an app for a user and uninstalls it.</p>
+<p class="firstline">Removes an entitlement to an app for a user.</p>
 <p class="toc_element">
   <code><a href="#get">get(enterpriseId, userId, entitlementId)</a></code></p>
 <p class="firstline">Retrieves details of an entitlement.</p>
 <p class="toc_element">
   <code><a href="#list">list(enterpriseId, userId)</a></code></p>
-<p class="firstline">List of all entitlements for the specified user. Only the ID is set.</p>
+<p class="firstline">Lists all entitlements for the specified user. Only the ID is set.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(enterpriseId, userId, entitlementId, body, install=None)</a></code></p>
 <p class="firstline">Adds or updates an entitlement to an app for a user. This method supports patch semantics.</p>
@@ -92,7 +92,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(enterpriseId, userId, entitlementId)</code>
-  <pre>Removes an entitlement to an app for a user and uninstalls it.
+  <pre>Removes an entitlement to an app for a user.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -113,24 +113,24 @@
 Returns:
   An object of the form:
 
-    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+    { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
         #
-        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
         #
-        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
         #
-        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
         #
-        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+        # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
       "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+      "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(enterpriseId, userId)</code>
-  <pre>List of all entitlements for the specified user. Only the ID is set.
+  <pre>Lists all entitlements for the specified user. Only the ID is set.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -142,18 +142,18 @@
     { # The entitlement resources for the user.
     "kind": "androidenterprise#entitlementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlementsListResponse".
     "entitlement": [ # An entitlement of a user to a product (e.g. an app). For example, a free app that they have installed, or a paid app that they have been allocated a license to.
-      { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+      { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
             #
-            # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+            # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
             #
-            # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+            # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
             #
-            # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+            # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
             #
-            # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+            # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
           "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-          "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-          "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+          "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+          "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
         },
     ],
   }</pre>
@@ -170,18 +170,18 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+{ # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
       # 
-      # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+      # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
       # 
-      # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+      # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
       # 
-      # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+      # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
       # 
-      # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+      # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
     "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-    "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-    "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+    "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+    "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
   }
 
   install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.
@@ -189,18 +189,18 @@
 Returns:
   An object of the form:
 
-    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+    { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
         #
-        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
         #
-        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
         #
-        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
         #
-        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+        # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
       "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+      "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
@@ -215,18 +215,18 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+{ # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
       # 
-      # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+      # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
       # 
-      # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+      # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
       # 
-      # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+      # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
       # 
-      # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+      # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
     "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-    "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-    "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+    "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+    "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
   }
 
   install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.
@@ -234,18 +234,18 @@
 Returns:
   An object of the form:
 
-    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+    { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
         #
-        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the EMM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
         #
-        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
         #
-        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
         #
-        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+        # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These entitlements cannot be removed via the API.
       "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
-      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
-      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+      "reason": "A String", # The reason for the entitlement. For example, "free" for free apps. This property is temporary: it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
diff --git a/docs/dyn/androidenterprise_v1.grouplicenses.html b/docs/dyn/androidenterprise_v1.grouplicenses.html
index 06da7c9..4302591 100644
--- a/docs/dyn/androidenterprise_v1.grouplicenses.html
+++ b/docs/dyn/androidenterprise_v1.grouplicenses.html
@@ -98,11 +98,11 @@
       #
       # Group license objects are never deleted. If, for example, a free app is added to a collection and then removed, the group license will remain, allowing the enterprise admin to keep track of any remaining entitlements. An enterprise admin may indicate they are no longer interested in the group license by marking it as unapproved in Google Play.
     "kind": "androidenterprise#groupLicense", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicense".
-    "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted then there is no limit on the number of licenses that can be provisioned (e.g. if the acquisition kind is "free").
+    "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted, then there is no limit on the number of licenses that can be provisioned (for example, if the acquisition kind is "free").
     "numProvisioned": 42, # The total number of provisioned licenses for this product. Returned by read operations, but ignored in write operations.
-    "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this group license object was created because the enterprise purchased licenses for this product; this is "free" otherwise (for free products).
-    "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise, as either "approved" or "unapproved". Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections and new entitlements to them should not normally be created.
-    "productId": "A String", # The ID of the product that the license is for, e.g. "app:com.google.android.gm".
+    "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this Grouplicenses resource was created because the enterprise purchased licenses for this product; otherwise, the value is "free" (for free products).
+    "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise. Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections, and new entitlements to them should not normally be created.
+    "productId": "A String", # The ID of the product that the license is for. For example, "app:com.google.android.gm".
   }</pre>
 </div>
 
@@ -124,11 +124,11 @@
           #
           # Group license objects are never deleted. If, for example, a free app is added to a collection and then removed, the group license will remain, allowing the enterprise admin to keep track of any remaining entitlements. An enterprise admin may indicate they are no longer interested in the group license by marking it as unapproved in Google Play.
         "kind": "androidenterprise#groupLicense", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicense".
-        "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted then there is no limit on the number of licenses that can be provisioned (e.g. if the acquisition kind is "free").
+        "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted, then there is no limit on the number of licenses that can be provisioned (for example, if the acquisition kind is "free").
         "numProvisioned": 42, # The total number of provisioned licenses for this product. Returned by read operations, but ignored in write operations.
-        "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this group license object was created because the enterprise purchased licenses for this product; this is "free" otherwise (for free products).
-        "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise, as either "approved" or "unapproved". Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections and new entitlements to them should not normally be created.
-        "productId": "A String", # The ID of the product that the license is for, e.g. "app:com.google.android.gm".
+        "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this Grouplicenses resource was created because the enterprise purchased licenses for this product; otherwise, the value is "free" (for free products).
+        "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise. Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections, and new entitlements to them should not normally be created.
+        "productId": "A String", # The ID of the product that the license is for. For example, "app:com.google.android.gm".
       },
     ],
     "kind": "androidenterprise#groupLicensesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicensesListResponse".
diff --git a/docs/dyn/androidenterprise_v1.grouplicenseusers.html b/docs/dyn/androidenterprise_v1.grouplicenseusers.html
index 5b342f1..8c6d341 100644
--- a/docs/dyn/androidenterprise_v1.grouplicenseusers.html
+++ b/docs/dyn/androidenterprise_v1.grouplicenseusers.html
@@ -92,17 +92,17 @@
     { # The user resources for the group license.
     "kind": "androidenterprise#groupLicenseUsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicenseUsersListResponse".
     "user": [ # A user of an enterprise.
-      { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-            # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-            # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-          "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-          "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-          "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-          "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-          "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-          "id": "A String", # The unique ID for the user.
-        },
+      { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+          # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+          # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+        "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+        "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+        "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+        "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+        "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+        "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+        "id": "A String", # The unique ID for the user.
+      },
     ],
   }</pre>
 </div>
diff --git a/docs/dyn/androidenterprise_v1.html b/docs/dyn/androidenterprise_v1.html
index b52862d..f3b73bd 100644
--- a/docs/dyn/androidenterprise_v1.html
+++ b/docs/dyn/androidenterprise_v1.html
@@ -75,16 +75,6 @@
 <h1><a href="androidenterprise_v1.html">Google Play EMM API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="androidenterprise_v1.collections.html">collections()</a></code>
-</p>
-<p class="firstline">Returns the collections Resource.</p>
-
-<p class="toc_element">
-  <code><a href="androidenterprise_v1.collectionviewers.html">collectionviewers()</a></code>
-</p>
-<p class="firstline">Returns the collectionviewers Resource.</p>
-
-<p class="toc_element">
   <code><a href="androidenterprise_v1.devices.html">devices()</a></code>
 </p>
 <p class="firstline">Returns the devices Resource.</p>
diff --git a/docs/dyn/androidenterprise_v1.installs.html b/docs/dyn/androidenterprise_v1.installs.html
index f7e49f0..319382f 100644
--- a/docs/dyn/androidenterprise_v1.installs.html
+++ b/docs/dyn/androidenterprise_v1.installs.html
@@ -85,10 +85,10 @@
 <p class="firstline">Retrieves the details of all apps installed on the specified device.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(enterpriseId, userId, deviceId, installId, body)</a></code></p>
-<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary. This method supports patch semantics.</p>
+<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed, then it is updated to the latest version if necessary. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(enterpriseId, userId, deviceId, installId, body)</a></code></p>
-<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary.</p>
+<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed, then it is updated to the latest version if necessary.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(enterpriseId, userId, deviceId, installId)</code>
@@ -115,13 +115,13 @@
 Returns:
   An object of the form:
 
-    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+    { # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
         #
-        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
         #
-        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
         #
-        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
         #
         # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
         #
@@ -129,7 +129,7 @@
       "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
       "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
       "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+      "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
@@ -148,13 +148,13 @@
     { # The install resources for the device.
     "kind": "androidenterprise#installsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#installsListResponse".
     "install": [ # An installation of an app for a user on a specific device. The existence of an install implies that the user must have an entitlement to the app.
-      { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+      { # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
             #
-            # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+            # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
             #
-            # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+            # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
             #
-            # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+            # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
             #
             # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
             #
@@ -162,7 +162,7 @@
           "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
           "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
           "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-          "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+          "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
         },
     ],
   }</pre>
@@ -170,7 +170,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(enterpriseId, userId, deviceId, installId, body)</code>
-  <pre>Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary. This method supports patch semantics.
+  <pre>Requests to install the latest version of an app to a device. If the app is already installed, then it is updated to the latest version if necessary. This method supports patch semantics.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -180,13 +180,13 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+{ # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
       # 
-      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
       # 
-      # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+      # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
       # 
-      # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+      # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
       # 
       # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
       # 
@@ -194,20 +194,20 @@
     "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
     "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
     "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-    "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+    "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
   }
 
 
 Returns:
   An object of the form:
 
-    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+    { # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
         #
-        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
         #
-        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
         #
-        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
         #
         # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
         #
@@ -215,13 +215,13 @@
       "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
       "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
       "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+      "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="update">update(enterpriseId, userId, deviceId, installId, body)</code>
-  <pre>Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary.
+  <pre>Requests to install the latest version of an app to a device. If the app is already installed, then it is updated to the latest version if necessary.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -231,13 +231,13 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+{ # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
       # 
-      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
       # 
-      # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+      # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
       # 
-      # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+      # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
       # 
       # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
       # 
@@ -245,20 +245,20 @@
     "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
     "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
     "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-    "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+    "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
   }
 
 
 Returns:
   An object of the form:
 
-    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+    { # The existence of an Installs resource indicates that an app is installed on a particular device (or that an install is pending).
         #
-        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app, then an attempt is made to create one. If this fails (for example, because the app is not free and there is no available license), then the creation of the install fails.
         #
-        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        # The API can also be used to update an installed app. If the update method is used on an existing install, then the app will be updated to the latest available version.
         #
-        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        # Note that it is not possible to force the installation of a specific version of an app: the version code is read-only.
         #
         # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
         #
@@ -266,7 +266,7 @@
       "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
       "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
       "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
-      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+      "productId": "A String", # The ID of the product that the install is for. For example, "app:com.google.android.gm".
     }</pre>
 </div>
 
diff --git a/docs/dyn/androidenterprise_v1.permissions.html b/docs/dyn/androidenterprise_v1.permissions.html
index d59f04e..c16616e 100644
--- a/docs/dyn/androidenterprise_v1.permissions.html
+++ b/docs/dyn/androidenterprise_v1.permissions.html
@@ -89,12 +89,12 @@
 Returns:
   An object of the form:
 
-    { # A permission represents some extra capability, to be granted to an Android app, which requires explicit consent. An enterprise admin must consent to these permissions on behalf of their users before an entitlement for the app can be created.
+    { # A Permissions resource represents some extra capability, to be granted to an Android app, which requires explicit consent. An enterprise admin must consent to these permissions on behalf of their users before an entitlement for the app can be created.
       #
-      # The permissions collection is read-only. The information provided for each permission (localized name and description) is intended to be used in the EMM user interface when obtaining consent from the enterprise.
+      # The permissions collection is read-only. The information provided for each permission (localized name and description) is intended to be used in the MDM user interface when obtaining consent from the enterprise.
     "permissionId": "A String", # An opaque string uniquely identifying the permission.
     "kind": "androidenterprise#permission", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#permission".
-    "description": "A String", # A longer description of the permissions giving more details of what it affects.
+    "description": "A String", # A longer description of the Permissions resource, giving more details of what it affects.
     "name": "A String", # The name of the permission.
   }</pre>
 </div>
diff --git a/docs/dyn/androidenterprise_v1.products.html b/docs/dyn/androidenterprise_v1.products.html
index 510095e..ddc33c1 100644
--- a/docs/dyn/androidenterprise_v1.products.html
+++ b/docs/dyn/androidenterprise_v1.products.html
@@ -85,7 +85,7 @@
 <p class="firstline">Retrieves details of a product for display to an enterprise admin.</p>
 <p class="toc_element">
   <code><a href="#getAppRestrictionsSchema">getAppRestrictionsSchema(enterpriseId, productId, language=None)</a></code></p>
-<p class="firstline">Retrieves the schema that defines the configurable properties for this product. All products have a schema, but this schema may be empty if no managed configurations have been defined. This schema can be used to populate a UI that allows an administrator to configure the product. To apply a managed configuration based on the schema obtained using this API, see Managed Configurations through Play.</p>
+<p class="firstline">Retrieves the schema that defines the configurable properties for this product. All products have a schema, but this schema may be empty if no managed configurations have been defined. This schema can be used to populate a UI that allows an admin to configure the product. To apply a managed configuration based on the schema obtained using this API, see Managed Configurations through Play.</p>
 <p class="toc_element">
   <code><a href="#getPermissions">getPermissions(enterpriseId, productId)</a></code></p>
 <p class="firstline">Retrieves the Android app permissions required by this app.</p>
@@ -95,15 +95,12 @@
 <p class="toc_element">
   <code><a href="#unapprove">unapprove(enterpriseId, productId)</a></code></p>
 <p class="firstline">Unapproves the specified product (and the relevant app permissions, if any)</p>
-<p class="toc_element">
-  <code><a href="#updatePermissions">updatePermissions(enterpriseId, productId, body)</a></code></p>
-<p class="firstline">This method has been deprecated. To programmatically approve applications, you must use the iframe mechanism via the  generateApprovalUrl and  approve methods of the Products resource. For more information, see the  Play EMM API usage requirements.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="approve">approve(enterpriseId, productId, body)</code>
   <pre>Approves the specified product and the relevant app permissions, if any. The maximum number of products that you can approve per enterprise customer is 1,000.
 
-To learn how to use Google Play for Work to design and create a store layout to display approved products to your users, see Store Layout Design.
+To learn how to use managed Google Play to design and create a store layout to display approved products to your users, see Store Layout Design.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -152,24 +149,24 @@
 Returns:
   An object of the form:
 
-    { # A Products resource represents an app in the Google Play Store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
+    { # A Products resource represents an app in the Google Play store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
       #
       # The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an EMM user interface.
     "smallIconUrl": "A String", # A link to a smaller image that can be used as an icon for the product. This image is suitable for use at up to 128px x 128px.
     "kind": "androidenterprise#product", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#product".
-    "distributionChannel": "A String", # How and to whom the package is made available. The value publicGoogleHosted means that the package is available through the Play Store and not restricted to a specific enterprise. The value privateGoogleHosted means that the package is a private app (restricted to an enterprise) but hosted by Google. The value privateSelfHosted means that the package is a private app (restricted to an enterprise) and is privately hosted.
+    "distributionChannel": "A String", # How and to whom the package is made available. The value publicGoogleHosted means that the package is available through the Play store and not restricted to a specific enterprise. The value privateGoogleHosted means that the package is a private app (restricted to an enterprise) but hosted by Google. The value privateSelfHosted means that the package is a private app (restricted to an enterprise) and is privately hosted.
     "title": "A String", # The name of the product.
-    "workDetailsUrl": "A String", # A link to the Google Play for Work details page for the product, for use by an Enterprise administrator.
+    "workDetailsUrl": "A String", # A link to the managed Google Play details page for the product, for use by an Enterprise admin.
     "appVersion": [ # App versions currently available for this product. The returned list contains only public versions. Alpha and beta versions are not included.
       { # This represents a single version of the app.
         "versionCode": 42, # Unique increasing identifier for the app version.
-        "versionString": "A String", # The string used in the Play Store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4").
+        "versionString": "A String", # The string used in the Play store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4").
       },
     ],
     "productPricing": "A String", # Whether this product is free, free with in-app purchases, or paid. If the pricing is unknown, this means the product is not generally available anymore (even though it might still be available to people who own it).
     "iconUrl": "A String", # A link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.
-    "authorName": "A String", # The name of the author of the product (e.g. the app developer).
-    "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android for Work container app.
+    "authorName": "A String", # The name of the author of the product (for example, the app developer).
+    "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android container app.
     "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
     "productId": "A String", # A string of the form app:<package name>. For example, app:com.google.android.gm represents the Gmail app.
   }</pre>
@@ -177,7 +174,7 @@
 
 <div class="method">
     <code class="details" id="getAppRestrictionsSchema">getAppRestrictionsSchema(enterpriseId, productId, language=None)</code>
-  <pre>Retrieves the schema that defines the configurable properties for this product. All products have a schema, but this schema may be empty if no managed configurations have been defined. This schema can be used to populate a UI that allows an administrator to configure the product. To apply a managed configuration based on the schema obtained using this API, see Managed Configurations through Play.
+  <pre>Retrieves the schema that defines the configurable properties for this product. All products have a schema, but this schema may be empty if no managed configurations have been defined. This schema can be used to populate a UI that allows an admin to configure the product. To apply a managed configuration based on the schema obtained using this API, see Managed Configurations through Play.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -230,17 +227,17 @@
   An object of the form:
 
     { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
-      "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
-      "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
-      "permission": [ # The permissions required by the app.
-        { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
-            #
-            # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
-          "permissionId": "A String", # An opaque string uniquely identifying the permission.
-          "state": "A String", # Whether the permission has been accepted or not.
-        },
-      ],
-    }</pre>
+    "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
+    "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
+    "permission": [ # The permissions required by the app.
+      { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
+          #
+          # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
+        "permissionId": "A String", # An opaque string uniquely identifying the permission.
+        "state": "A String", # Whether the permission has been accepted or not.
+      },
+    ],
+  }</pre>
 </div>
 
 <div class="method">
@@ -251,33 +248,33 @@
   enterpriseId: string, The ID of the enterprise. (required)
   language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de"). Results are returned in the language best matching the preferred language.
   maxResults: integer, Specifies the maximum number of products that can be returned per request. If not specified, uses a default value of 100, which is also the maximum retrievable within a single response.
-  token: string, A pagination token is contained in a requestÂ’s response when there are more products. The token can be used in a subsequent request to obtain more products, and so forth. This parameter cannot be used in the initial request.
-  query: string, The search query as typed in the Google Play Store search box. If omitted, all approved apps will be returned (using the pagination parameters), including apps that are not available in the store (e.g. unpublished apps).
+  token: string, A pagination token is contained in a request''s response when there are more products. The token can be used in a subsequent request to obtain more products, and so forth. This parameter cannot be used in the initial request.
+  query: string, The search query as typed in the Google Play store search box. If omitted, all approved apps will be returned (using the pagination parameters), including apps that are not available in the store (e.g. unpublished apps).
   approved: boolean, Specifies whether to search among all products (false) or among only products that have been approved (true). Only "true" is supported, and should be specified.
 
 Returns:
   An object of the form:
 
     { # The matching products.
-    "product": [ # Information about a product (e.g. an app) in the Google Play Store, for display to an enterprise admin.
-      { # A Products resource represents an app in the Google Play Store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
+    "product": [ # Information about a product (e.g. an app) in the Google Play store, for display to an enterprise admin.
+      { # A Products resource represents an app in the Google Play store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
           #
           # The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an EMM user interface.
         "smallIconUrl": "A String", # A link to a smaller image that can be used as an icon for the product. This image is suitable for use at up to 128px x 128px.
         "kind": "androidenterprise#product", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#product".
-        "distributionChannel": "A String", # How and to whom the package is made available. The value publicGoogleHosted means that the package is available through the Play Store and not restricted to a specific enterprise. The value privateGoogleHosted means that the package is a private app (restricted to an enterprise) but hosted by Google. The value privateSelfHosted means that the package is a private app (restricted to an enterprise) and is privately hosted.
+        "distributionChannel": "A String", # How and to whom the package is made available. The value publicGoogleHosted means that the package is available through the Play store and not restricted to a specific enterprise. The value privateGoogleHosted means that the package is a private app (restricted to an enterprise) but hosted by Google. The value privateSelfHosted means that the package is a private app (restricted to an enterprise) and is privately hosted.
         "title": "A String", # The name of the product.
-        "workDetailsUrl": "A String", # A link to the Google Play for Work details page for the product, for use by an Enterprise administrator.
+        "workDetailsUrl": "A String", # A link to the managed Google Play details page for the product, for use by an Enterprise admin.
         "appVersion": [ # App versions currently available for this product. The returned list contains only public versions. Alpha and beta versions are not included.
           { # This represents a single version of the app.
             "versionCode": 42, # Unique increasing identifier for the app version.
-            "versionString": "A String", # The string used in the Play Store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4").
+            "versionString": "A String", # The string used in the Play store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4").
           },
         ],
         "productPricing": "A String", # Whether this product is free, free with in-app purchases, or paid. If the pricing is unknown, this means the product is not generally available anymore (even though it might still be available to people who own it).
         "iconUrl": "A String", # A link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.
-        "authorName": "A String", # The name of the author of the product (e.g. the app developer).
-        "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android for Work container app.
+        "authorName": "A String", # The name of the author of the product (for example, the app developer).
+        "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android container app.
         "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
         "productId": "A String", # A string of the form app:<package name>. For example, app:com.google.android.gm represents the Gmail app.
       },
@@ -305,47 +302,4 @@
 </pre>
 </div>
 
-<div class="method">
-    <code class="details" id="updatePermissions">updatePermissions(enterpriseId, productId, body)</code>
-  <pre>This method has been deprecated. To programmatically approve applications, you must use the iframe mechanism via the  generateApprovalUrl and  approve methods of the Products resource. For more information, see the  Play EMM API usage requirements.
-
-The updatePermissions method (deprecated) updates the set of Android app permissions for this app that have been accepted by the enterprise.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  productId: string, The ID of the product. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
-    "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
-    "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
-    "permission": [ # The permissions required by the app.
-      { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
-          #
-          # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
-        "permissionId": "A String", # An opaque string uniquely identifying the permission.
-        "state": "A String", # Whether the permission has been accepted or not.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
-      "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
-      "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
-      "permission": [ # The permissions required by the app.
-        { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
-            #
-            # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
-          "permissionId": "A String", # An opaque string uniquely identifying the permission.
-          "state": "A String", # Whether the permission has been accepted or not.
-        },
-      ],
-    }</pre>
-</div>
-
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.storelayoutclusters.html b/docs/dyn/androidenterprise_v1.storelayoutclusters.html
index 85b4a9a..49e1141 100644
--- a/docs/dyn/androidenterprise_v1.storelayoutclusters.html
+++ b/docs/dyn/androidenterprise_v1.storelayoutclusters.html
@@ -116,7 +116,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+    { # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
       "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
       "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
           #
@@ -144,7 +144,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+{ # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
     "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
     "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
         # 
@@ -165,7 +165,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+    { # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
       "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
       "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
           #
@@ -196,7 +196,7 @@
 
     { # The store page resources for the enterprise.
     "cluster": [ # A store cluster of an enterprise.
-      { # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+      { # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
           "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
           "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
               #
@@ -228,7 +228,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+{ # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
     "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
     "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
         # 
@@ -249,7 +249,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+    { # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
       "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
       "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
           #
@@ -278,7 +278,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+{ # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
     "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
     "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
         # 
@@ -299,7 +299,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store cluster, a list of products displayed as part of a store page.
+    { # Definition of a managed Google Play store cluster, a list of products displayed as part of a store page.
       "kind": "androidenterprise#storeCluster", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeCluster".
       "orderInPage": "A String", # String (US-ASCII only) used to determine order of this cluster within the parent page's elements. Page elements are sorted in lexicographic order of this field. Duplicated values are allowed, but ordering between elements with duplicate order is undefined.
           #
diff --git a/docs/dyn/androidenterprise_v1.storelayoutpages.html b/docs/dyn/androidenterprise_v1.storelayoutpages.html
index 8a3db4e..1039339 100644
--- a/docs/dyn/androidenterprise_v1.storelayoutpages.html
+++ b/docs/dyn/androidenterprise_v1.storelayoutpages.html
@@ -114,7 +114,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+    { # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
       "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
       "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
           #
@@ -140,7 +140,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+{ # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
     "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
     "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
         # 
@@ -160,7 +160,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+    { # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
       "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
       "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
           #
@@ -190,7 +190,7 @@
     { # The store page resources for the enterprise.
     "kind": "androidenterprise#storeLayoutPagesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeLayoutPagesListResponse".
     "page": [ # A store page of an enterprise.
-      { # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+      { # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
           "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
           "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
               #
@@ -219,7 +219,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+{ # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
     "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
     "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
         # 
@@ -239,7 +239,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+    { # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
       "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
       "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
           #
@@ -266,7 +266,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+{ # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
     "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
     "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
         # 
@@ -286,7 +286,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of a Google Play for Work store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
+    { # Definition of a managed Google Play store page, made of a localized name and links to other pages. A page also contains clusters defined as a subcollection.
       "kind": "androidenterprise#storePage", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storePage".
       "link": [ # Ordered list of pages a user should be able to reach from this page. The pages must exist, must not be this page, and once a link is created the page linked to cannot be deleted until all links to it are removed. It is recommended that the basic pages are created first, before adding the links between pages.
           #
diff --git a/docs/dyn/androidenterprise_v1.users.html b/docs/dyn/androidenterprise_v1.users.html
index 9349c3a..d23eea4 100644
--- a/docs/dyn/androidenterprise_v1.users.html
+++ b/docs/dyn/androidenterprise_v1.users.html
@@ -82,7 +82,7 @@
 <p class="firstline">Generates an authentication token which the device policy client can use to provision the given EMM-managed user account on a device. The generated token is single-use and expires after a few minutes.</p>
 <p class="toc_element">
   <code><a href="#generateToken">generateToken(enterpriseId, userId)</a></code></p>
-<p class="firstline">Generates a token (activation code) to allow this user to configure their work account in the Android Setup Wizard. Revokes any previously generated token.</p>
+<p class="firstline">Generates a token (activation code) to allow this user to configure their managed account in the Android Setup Wizard. Revokes any previously generated token.</p>
 <p class="toc_element">
   <code><a href="#get">get(enterpriseId, userId)</a></code></p>
 <p class="firstline">Retrieves a user's details.</p>
@@ -103,7 +103,7 @@
 <p class="firstline">Revokes a previously generated token (activation code) for the user.</p>
 <p class="toc_element">
   <code><a href="#setAvailableProductSet">setAvailableProductSet(enterpriseId, userId, body)</a></code></p>
-<p class="firstline">Modifies the set of products a user is entitled to access.</p>
+<p class="firstline">Modifies the set of products that a user is entitled to access (referred to as whitelisted products). Only products that are approved or products that were previously approved (products with revoked approval) can be whitelisted.</p>
 <p class="toc_element">
   <code><a href="#update">update(enterpriseId, userId, body)</a></code></p>
 <p class="firstline">Updates the details of an EMM-managed user.</p>
@@ -139,7 +139,7 @@
 
 <div class="method">
     <code class="details" id="generateToken">generateToken(enterpriseId, userId)</code>
-  <pre>Generates a token (activation code) to allow this user to configure their work account in the Android Setup Wizard. Revokes any previously generated token.
+  <pre>Generates a token (activation code) to allow this user to configure their managed account in the Android Setup Wizard. Revokes any previously generated token.
 
 This call only works with Google managed accounts.
 
@@ -150,7 +150,7 @@
 Returns:
   An object of the form:
 
-    { # A UserToken is used by a user when setting up a managed device or profile with their work account on a device. When the user enters their email address and token (activation code) the appropriate EMM app can be automatically downloaded.
+    { # A UserToken is used by a user when setting up a managed device or profile with their managed Google Play account on a device. When the user enters their email address and token (activation code) the appropriate EMM app can be automatically downloaded.
     "kind": "androidenterprise#userToken", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#userToken".
     "userId": "A String", # The unique ID for the user.
     "token": "A String", # The token (activation code) to be entered by the user. This consists of a sequence of decimal digits. Note that the leading digit may be 0.
@@ -168,17 +168,17 @@
 Returns:
   An object of the form:
 
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
+    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+      # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+      # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+    "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+    "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+    "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+    "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+    "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+    "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+    "id": "A String", # The unique ID for the user.
+  }</pre>
 </div>
 
 <div class="method">
@@ -194,7 +194,7 @@
 
     { # A set of products.
       "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, not approved, and even products where approval has been revoked. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
       "productId": [ # The list of product IDs making up the set of products.
         "A String",
       ],
@@ -213,9 +213,25 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-      # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-      # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
+{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+    # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+    # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+  "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+  "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+  "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+  "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+  "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+  "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+  "id": "A String", # The unique ID for the user.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+      # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+      # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
     "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
     "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
     "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
@@ -223,23 +239,7 @@
     "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
     "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
     "id": "A String", # The unique ID for the user.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
+  }</pre>
 </div>
 
 <div class="method">
@@ -256,17 +256,17 @@
     { # The matching user resources.
     "kind": "androidenterprise#usersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#usersListResponse".
     "user": [ # A user of an enterprise.
-      { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-            # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-            # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-          "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-          "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-          "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-          "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-          "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-          "id": "A String", # The unique ID for the user.
-        },
+      { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+          # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+          # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+        "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+        "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+        "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+        "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+        "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+        "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+        "id": "A String", # The unique ID for the user.
+      },
     ],
   }</pre>
 </div>
@@ -283,9 +283,25 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-      # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-      # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
+{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+    # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+    # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+  "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+  "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+  "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+  "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+  "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+  "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+  "id": "A String", # The unique ID for the user.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+      # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+      # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
     "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
     "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
     "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
@@ -293,23 +309,7 @@
     "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
     "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
     "id": "A String", # The unique ID for the user.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
+  }</pre>
 </div>
 
 <div class="method">
@@ -324,7 +324,7 @@
 
 <div class="method">
     <code class="details" id="setAvailableProductSet">setAvailableProductSet(enterpriseId, userId, body)</code>
-  <pre>Modifies the set of products a user is entitled to access.
+  <pre>Modifies the set of products that a user is entitled to access (referred to as whitelisted products). Only products that are approved or products that were previously approved (products with revoked approval) can be whitelisted.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -334,7 +334,7 @@
 
 { # A set of products.
     "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-    "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, not approved, and even products where approval has been revoked. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+    "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
     "productId": [ # The list of product IDs making up the set of products.
       "A String",
     ],
@@ -346,7 +346,7 @@
 
     { # A set of products.
       "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, not approved, and even products where approval has been revoked. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
       "productId": [ # The list of product IDs making up the set of products.
         "A String",
       ],
@@ -365,9 +365,25 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-      # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-      # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
+{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+    # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+    # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
+  "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+  "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
+  "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
+  "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
+  "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
+  "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
+  "id": "A String", # The unique ID for the user.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to managed Google Play only, or to other Google services, depending on the identity model:
+      # - The Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
+      # - The managed Google Play Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to managed Google Play.
     "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
     "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
     "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
@@ -375,23 +391,7 @@
     "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
     "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
     "id": "A String", # The unique ID for the user.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
+  }</pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher_v2.purchases.subscriptions.html b/docs/dyn/androidpublisher_v2.purchases.subscriptions.html
index 05c7268..57ecd3c 100644
--- a/docs/dyn/androidpublisher_v2.purchases.subscriptions.html
+++ b/docs/dyn/androidpublisher_v2.purchases.subscriptions.html
@@ -154,6 +154,7 @@
         # - User cancelled the subscription
         # - Subscription was cancelled by the system, for example because of a billing problem
     "startTimeMillis": "A String", # Time at which the subscription was granted, in milliseconds since the Epoch.
+    "userCancellationTimeMillis": "A String", # The time at which the subscription was canceled by the user, in milliseconds since the epoch. Only present if cancelReason is 0.
     "priceAmountMicros": "A String", # Price of the subscription, not including tax. Price is expressed in micro-units, where 1,000,000 micro-units represents one unit of the currency. For example, if the subscription price is €1.99, price_amount_micros is 1990000.
   }</pre>
 </div>
diff --git a/docs/dyn/androidpublisher_v2.purchases.voidedpurchases.html b/docs/dyn/androidpublisher_v2.purchases.voidedpurchases.html
index f24b252..75fe858 100644
--- a/docs/dyn/androidpublisher_v2.purchases.voidedpurchases.html
+++ b/docs/dyn/androidpublisher_v2.purchases.voidedpurchases.html
@@ -84,22 +84,22 @@
 
 Args:
   packageName: string, The package name of the application for which voided purchases need to be returned (for example, 'com.some.thing'). (required)
-  startTime: string, The start time of list window, in milliseconds since the epoch (Jan 1, 1970). If not specified, default to current time - 30 days, which is also the earlies accepted start time. This parameter will be ignored if pagination token is set.
+  startTime: string, The time, in milliseconds since the Epoch, of the oldest voided in-app product purchase that you want to see in the response. The value of this parameter cannot be older than 30 days and is ignored if a pagination token is set. Default value is current time minus 30 days.
   token: string, A parameter
   maxResults: integer, A parameter
   startIndex: integer, A parameter
-  endTime: string, The end time of list window, in milliseconds since the epoch (Jan 1, 1970). If not specified, default to current time, which is also the latest accepted end time. This parameter will be ignored if pagination token is set.
+  endTime: string, The time, in milliseconds since the Epoch, of the newest voided in-app product purchase that you want to see in the response. The value of this parameter cannot be greater than the current time and is ignored if a pagination token is set. Default value is current time.
 
 Returns:
   An object of the form:
 
     {
     "voidedPurchases": [
-      { # A VoidedPurchase resource indicates the purchase was either cancelled/refunded/charged-back.
+      { # A VoidedPurchase resource indicates a purchase that was either cancelled/refunded/charged-back.
         "kind": "androidpublisher#voidedPurchase", # This kind represents a voided purchase object in the androidpublisher service.
-        "voidedTimeMillis": "A String", # The time when the purchase was cancelled/refunded/chargeback, in milliseconds since the epoch (Jan 1, 1970).
-        "purchaseToken": "A String", # The token that was generated when a purchase was made and uniquely identifies a purchase.
-        "purchaseTimeMillis": "A String", # The time the purchase was made, in milliseconds since the epoch (Jan 1, 1970).
+        "voidedTimeMillis": "A String", # The time at which the purchase was cancelled/refunded/charged-back, in milliseconds since the epoch (Jan 1, 1970).
+        "purchaseToken": "A String", # The token that was generated when a purchase was made. This uniquely identifies a purchase.
+        "purchaseTimeMillis": "A String", # The time at which the purchase was made, in milliseconds since the epoch (Jan 1, 1970).
       },
     ],
     "tokenPagination": {
diff --git a/docs/dyn/androidpublisher_v2.reviews.html b/docs/dyn/androidpublisher_v2.reviews.html
index 4b64122..ed8a8da 100644
--- a/docs/dyn/androidpublisher_v2.reviews.html
+++ b/docs/dyn/androidpublisher_v2.reviews.html
@@ -79,7 +79,7 @@
 <p class="firstline">Returns a single review.</p>
 <p class="toc_element">
   <code><a href="#list">list(packageName, translationLanguage=None, token=None, maxResults=None, startIndex=None)</a></code></p>
-<p class="firstline">Returns a list of reviews.</p>
+<p class="firstline">Returns a list of reviews. Only reviews from last week will be returned.</p>
 <p class="toc_element">
   <code><a href="#reply">reply(packageName, reviewId, body)</a></code></p>
 <p class="firstline">Reply to a single review, or update an existing reply.</p>
@@ -144,7 +144,7 @@
 
 <div class="method">
     <code class="details" id="list">list(packageName, translationLanguage=None, token=None, maxResults=None, startIndex=None)</code>
-  <pre>Returns a list of reviews.
+  <pre>Returns a list of reviews. Only reviews from last week will be returned.
 
 Args:
   packageName: string, Unique identifier for the Android app for which we want reviews; for example, "com.spiffygame". (required)
diff --git a/docs/dyn/appengine_v1alpha.apps.html b/docs/dyn/appengine_v1alpha.apps.html
new file mode 100644
index 0000000..32634da
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.html
@@ -0,0 +1,340 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about an application.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(appsId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
+<p class="toc_element">
+  <code><a href="#repair">repair(appsId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body, x__xgafv=None)</code>
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Application resource contains the top-level configuration of an App Engine application.
+    "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+    },
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+    "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+    "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+    "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+      { # Rules to match an HTTP request and dispatch that request to a service.
+        "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+        "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+        "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+      },
+    ],
+    "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+    "servingStatus": "A String", # Serving status of this application.
+    "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+    "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, x__xgafv=None)</code>
+  <pre>Gets information about an application.
+
+Args:
+  appsId: string, Part of `name`. Name of the Application resource to get. Example: apps/myapp. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Application resource contains the top-level configuration of an App Engine application.
+      "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+      "iap": { # Identity-Aware Proxy
+        "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+        "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+        "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+        "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+      },
+      "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+      "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+      "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+      "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+        { # Rules to match an HTTP request and dispatch that request to a service.
+          "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+          "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+          "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+        },
+      ],
+      "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+      "servingStatus": "A String", # Serving status of this application.
+      "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+      "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+      "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+      "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(appsId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain - Google authentication domain for controlling user access to the application.
+default_cookie_expiration - Cookie expiration policy for the application.
+
+Args:
+  appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Application resource contains the top-level configuration of an App Engine application.
+    "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+    },
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+    "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+    "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+    "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+      { # Rules to match an HTTP request and dispatch that request to a service.
+        "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+        "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+        "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+      },
+    ],
+    "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+    "servingStatus": "A String", # Serving status of this application.
+    "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+    "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+  }
+
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="repair">repair(appsId, body, x__xgafv=None)</code>
+  <pre>Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.
+
+Args:
+  appsId: string, Part of `name`. Name of the application to repair. Example: apps/myapp (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for 'Applications.RepairApplication'.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1alpha.apps.locations.html b/docs/dyn/appengine_v1alpha.apps.locations.html
new file mode 100644
index 0000000..7e8bf58
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.locations.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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, locationsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Get information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</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(appsId, locationsId, x__xgafv=None)</code>
+  <pre>Get information about a location.
+
+Args:
+  appsId: string, Part of `name`. Resource name for the location. (required)
+  locationsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
+      "a_key": "A String",
+    },
+    "locationId": "A String", # The canonical id for this location. For example: "us-east1".
+    "name": "A String", # Resource name for the location, which may vary between implementations. For example: "projects/example-project/locations/us-east1"
+    "metadata": { # Service-specific metadata. For example the available capacity at the given location.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  appsId: string, Part of `name`. The resource that owns the locations collection, if applicable. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "locations": [ # A list of locations that matches the specified filter in the request.
+      { # A resource that represents Google Cloud Platform location.
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
+          "a_key": "A String",
+        },
+        "locationId": "A String", # The canonical id for this location. For example: "us-east1".
+        "name": "A String", # Resource name for the location, which may vary between implementations. For example: "projects/example-project/locations/us-east1"
+        "metadata": { # Service-specific metadata. For example the available capacity at the given location.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+  }</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/appengine_v1alpha.apps.operations.html b/docs/dyn/appengine_v1alpha.apps.operations.html
new file mode 100644
index 0000000..0043da1
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.operations.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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, operationsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</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(appsId, operationsId, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  appsId: string, Part of `name`. The name of the operation resource. (required)
+  operationsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+
+Args:
+  appsId: string, Part of `name`. The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a network API call.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/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/appengine_v1alpha.apps.services.html b/docs/dyn/appengine_v1alpha.apps.services.html
new file mode 100644
index 0000000..1fe1500
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.services.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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.services.versions.html">versions()</a></code>
+</p>
+<p class="firstline">Returns the versions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the specified service and all enclosed versions.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the current configuration of the specified service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the services in the application.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the configuration of the specified service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, x__xgafv=None)</code>
+  <pre>Deletes the specified service and all enclosed versions.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, x__xgafv=None)</code>
+  <pre>Gets the current configuration of the specified service.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+      "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+      "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+        "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+        "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+          "a_key": 3.14,
+        },
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all the services in the application.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Application resource. Example: apps/myapp. (required)
+  pageSize: integer, Maximum results to return per page.
+  pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Services.ListServices.
+    "services": [ # The services belonging to the requested application.
+      { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+          "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+          "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+            "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+            "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+              "a_key": 3.14,
+            },
+          },
+        },
+    ],
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+  }</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(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the configuration of the specified service.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+    "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+    "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+      "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+      "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+        "a_key": 3.14,
+      },
+    },
+  }
+
+  migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1alpha.apps.services.versions.html b/docs/dyn/appengine_v1alpha.apps.services.versions.html
new file mode 100644
index 0000000..961545b
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.services.versions.html
@@ -0,0 +1,1019 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a> . <a href="appengine_v1alpha.apps.services.versions.html">versions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.services.versions.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(appsId, servicesId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Deploys code and resource files to a new version.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes an existing Version resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</a></code></p>
+<p class="firstline">Lists the versions of a service.</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(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
+  <pre>Deploys code and resource files to a new version.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
+    },
+    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+      { # Custom static error page to be served when an error occurs.
+        "errorCode": "A String", # Error condition this handler applies to.
+        "mimeType": "A String", # MIME type of file. Defaults to text/html.
+        "staticFile": "A String", # Static file content to be served for this error.
+      },
+    ],
+    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+      "url": "A String", # URL to serve the endpoint at.
+      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+      "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "script": "A String", # Path to the script from the application root directory.
+    },
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
+    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the health check is considered failed.
+      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+    },
+    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+      { # Third-party Python runtime library that is required by the application.
+        "version": "A String", # Version of the library to select, or "latest".
+        "name": "A String", # Name of the library. Example: "django".
+      },
+    ],
+    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+      },
+      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+        "targetReadBytesPerSecond": 42, # Target bytes read per second.
+        "targetWriteOpsPerSecond": 42, # Target ops written per second.
+      },
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+        "targetConcurrentRequests": 42, # Target number of concurrent requests.
+        "targetRequestCountPerSecond": 42, # Target requests per second.
+      },
+      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
+    },
+    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+      "a_key": "A String",
+    },
+    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
+      "volumes": [ # User specified volumes.
+        { # Volumes mounted within the app container. Only applicable for VM runtimes.
+          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+          "name": "A String", # Unique name for the volume.
+          "sizeGb": 3.14, # Volume size in gigabytes.
+        },
+      ],
+    },
+    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
+    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+      "A String",
+    ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
+    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+        },
+      },
+      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+      },
+      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+      },
+    },
+    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "initialDelay": "A String", # The initial delay before starting to execute the checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
+          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+        },
+        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
+      },
+    ],
+    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+    "runtime": "A String", # Desired runtime. Example: python27.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</code>
+  <pre>Deletes an existing Version resource.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</code>
+  <pre>Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, Controls the set of fields returned in the Get response.
+
+Returns:
+  An object of the form:
+
+    { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+      "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+        "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+        "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+      },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+      "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+        "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+        "maxInstances": 42, # Maximum number of instances to create for this version.
+      },
+      "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+        { # Custom static error page to be served when an error occurs.
+          "errorCode": "A String", # Error condition this handler applies to.
+          "mimeType": "A String", # MIME type of file. Defaults to text/html.
+          "staticFile": "A String", # Static file content to be served for this error.
+        },
+      ],
+      "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+      "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+        "checkInterval": "A String", # Interval between health checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+        "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+        "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the check is considered failed.
+        "path": "A String", # The request path.
+      },
+      "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+        "url": "A String", # URL to serve the endpoint at.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "login": "A String", # Level of login required to access this resource. Defaults to optional.
+        "script": "A String", # Path to the script from the application root directory.
+      },
+      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+          "A String",
+        ],
+        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      },
+      "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+        "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+        "checkInterval": "A String", # Interval between health checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+        "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+        "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the health check is considered failed.
+        "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+      },
+      "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+      "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+        { # Third-party Python runtime library that is required by the application.
+          "version": "A String", # Version of the library to select, or "latest".
+          "name": "A String", # Name of the library. Example: "django".
+        },
+      ],
+      "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+      "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+      "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+        "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+        "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+          "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+          "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+          "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+          "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+        },
+        "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+          "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+          "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+          "targetReadBytesPerSecond": 42, # Target bytes read per second.
+          "targetWriteOpsPerSecond": 42, # Target ops written per second.
+        },
+        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+        "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+          "targetConcurrentRequests": 42, # Target number of concurrent requests.
+          "targetRequestCountPerSecond": 42, # Target requests per second.
+        },
+        "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+        "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+        "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+        "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+        "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+          "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+          "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+        },
+      },
+      "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+        "a_key": "A String",
+      },
+      "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+        "memoryGb": 3.14, # Memory (GB) needed.
+        "diskGb": 3.14, # Disk size (GB) needed.
+        "cpu": 3.14, # Number of CPU cores needed.
+        "volumes": [ # User specified volumes.
+          { # Volumes mounted within the app container. Only applicable for VM runtimes.
+            "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+            "name": "A String", # Unique name for the volume.
+            "sizeGb": 3.14, # Volume size in gigabytes.
+          },
+        ],
+      },
+      "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+        "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+      },
+      "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+        "A String",
+      ],
+      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+        "a_key": "A String",
+      },
+      "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+      "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+        "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+          "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+            "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+            "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+          },
+        },
+        "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+          "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+        },
+        "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+          "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+        },
+      },
+      "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+        "checkInterval": "A String", # Interval between health checks.
+        "initialDelay": "A String", # The initial delay before starting to execute the checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+        "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+        "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the check is considered failed.
+        "path": "A String", # The request path.
+      },
+      "createTime": "A String", # Time that this version was created.@OutputOnly
+      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+      "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+      "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+        { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+          "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+          "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+          "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+          "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+            "scriptPath": "A String", # Path to the script from the application root directory.
+          },
+          "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+            "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+            "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+              "a_key": "A String",
+            },
+            "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+            "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+            "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+            "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+            "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+          },
+          "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+            "scriptPath": "A String", # Path to the script from the application root directory.
+          },
+          "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+          "login": "A String", # Level of login required to access this resource.
+        },
+      ],
+      "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+      "runtime": "A String", # Desired runtime. Example: python27.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</code>
+  <pre>Lists the versions of a service.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  pageSize: integer, Maximum results to return per page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Continuation token for fetching the next page of results.
+  view: string, Controls the set of fields returned in the List response.
+
+Returns:
+  An object of the form:
+
+    { # Response message for Versions.ListVersions.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "versions": [ # The versions belonging to the requested service.
+      { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+          "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+            "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+            "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+          },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+          "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+            "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+            "maxInstances": 42, # Maximum number of instances to create for this version.
+          },
+          "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+            { # Custom static error page to be served when an error occurs.
+              "errorCode": "A String", # Error condition this handler applies to.
+              "mimeType": "A String", # MIME type of file. Defaults to text/html.
+              "staticFile": "A String", # Static file content to be served for this error.
+            },
+          ],
+          "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+          "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+            "checkInterval": "A String", # Interval between health checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+            "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+            "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the check is considered failed.
+            "path": "A String", # The request path.
+          },
+          "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+            "url": "A String", # URL to serve the endpoint at.
+            "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+            "login": "A String", # Level of login required to access this resource. Defaults to optional.
+            "script": "A String", # Path to the script from the application root directory.
+          },
+          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+              "A String",
+            ],
+            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+          },
+          "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+            "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+            "checkInterval": "A String", # Interval between health checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+            "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+            "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the health check is considered failed.
+            "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+          },
+          "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+          "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+            { # Third-party Python runtime library that is required by the application.
+              "version": "A String", # Version of the library to select, or "latest".
+              "name": "A String", # Name of the library. Example: "django".
+            },
+          ],
+          "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+          "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+          "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+            "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+            "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+              "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+              "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+              "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+              "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+            },
+            "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+              "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+              "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+              "targetReadBytesPerSecond": 42, # Target bytes read per second.
+              "targetWriteOpsPerSecond": 42, # Target ops written per second.
+            },
+            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+            "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+              "targetConcurrentRequests": 42, # Target number of concurrent requests.
+              "targetRequestCountPerSecond": 42, # Target requests per second.
+            },
+            "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+            "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+            "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+            "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+            "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+              "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+              "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+            },
+          },
+          "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+            "a_key": "A String",
+          },
+          "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+            "memoryGb": 3.14, # Memory (GB) needed.
+            "diskGb": 3.14, # Disk size (GB) needed.
+            "cpu": 3.14, # Number of CPU cores needed.
+            "volumes": [ # User specified volumes.
+              { # Volumes mounted within the app container. Only applicable for VM runtimes.
+                "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+                "name": "A String", # Unique name for the volume.
+                "sizeGb": 3.14, # Volume size in gigabytes.
+              },
+            ],
+          },
+          "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+            "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+          },
+          "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+            "A String",
+          ],
+          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+            "a_key": "A String",
+          },
+          "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+          "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+            "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+              "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+                "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+                "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+              },
+            },
+            "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+              "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+            },
+            "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+              "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+            },
+          },
+          "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+            "checkInterval": "A String", # Interval between health checks.
+            "initialDelay": "A String", # The initial delay before starting to execute the checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+            "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+            "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the check is considered failed.
+            "path": "A String", # The request path.
+          },
+          "createTime": "A String", # Time that this version was created.@OutputOnly
+          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+          "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+          "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+            { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+              "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+              "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+              "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+              "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+                "scriptPath": "A String", # Path to the script from the application root directory.
+              },
+              "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+                "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+                "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+                  "a_key": "A String",
+                },
+                "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+                "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+                "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+                "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+                "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+              },
+              "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+                "scriptPath": "A String", # Path to the script from the application root directory.
+              },
+              "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+              "login": "A String", # Level of login required to access this resource.
+            },
+          ],
+          "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+          "runtime": "A String", # Desired runtime. Example: python27.
+        },
+    ],
+  }</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(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
+    },
+    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+      { # Custom static error page to be served when an error occurs.
+        "errorCode": "A String", # Error condition this handler applies to.
+        "mimeType": "A String", # MIME type of file. Defaults to text/html.
+        "staticFile": "A String", # Static file content to be served for this error.
+      },
+    ],
+    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+      "url": "A String", # URL to serve the endpoint at.
+      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+      "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "script": "A String", # Path to the script from the application root directory.
+    },
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
+    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the health check is considered failed.
+      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+    },
+    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+      { # Third-party Python runtime library that is required by the application.
+        "version": "A String", # Version of the library to select, or "latest".
+        "name": "A String", # Name of the library. Example: "django".
+      },
+    ],
+    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+      },
+      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+        "targetReadBytesPerSecond": 42, # Target bytes read per second.
+        "targetWriteOpsPerSecond": 42, # Target ops written per second.
+      },
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+        "targetConcurrentRequests": 42, # Target number of concurrent requests.
+        "targetRequestCountPerSecond": 42, # Target requests per second.
+      },
+      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
+    },
+    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+      "a_key": "A String",
+    },
+    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
+      "volumes": [ # User specified volumes.
+        { # Volumes mounted within the app container. Only applicable for VM runtimes.
+          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+          "name": "A String", # Unique name for the volume.
+          "sizeGb": 3.14, # Volume size in gigabytes.
+        },
+      ],
+    },
+    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
+    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+      "A String",
+    ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
+    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+        },
+      },
+      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+      },
+      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+      },
+    },
+    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "initialDelay": "A String", # The initial delay before starting to execute the checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
+          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+        },
+        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
+      },
+    ],
+    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+    "runtime": "A String", # Desired runtime. Example: python27.
+  }
+
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html b/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html
new file mode 100644
index 0000000..7d8ac8c
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html
@@ -0,0 +1,286 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a> . <a href="appengine_v1alpha.apps.services.versions.html">versions</a> . <a href="appengine_v1alpha.apps.services.versions.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Stops a running instance.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets instance information.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</code>
+  <pre>Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for Instances.DebugInstance.
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
+  <pre>Stops a running instance.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
+  <pre>Gets instance information.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
+    "errors": 42, # Number of errors since this instance was started.@OutputOnly
+    "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+    "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
+    "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
+    "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
+    "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "startTime": "A String", # Time that this instance was started.@OutputOnly
+    "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
+    "requests": 42, # Number of requests since this instance was started.@OutputOnly
+    "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+    "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</code>
+  <pre>Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `parent`. See documentation of `appsId`. (required)
+  pageSize: integer, Maximum results to return per page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # Response message for Instances.ListInstances.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "instances": [ # The instances belonging to the requested version.
+      { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
+        "errors": 42, # Number of errors since this instance was started.@OutputOnly
+        "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+        "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
+        "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
+        "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
+        "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "startTime": "A String", # Time that this instance was started.@OutputOnly
+        "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
+        "requests": 42, # Number of requests since this instance was started.@OutputOnly
+        "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+        "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+      },
+    ],
+  }</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/appengine_v1alpha.html b/docs/dyn/appengine_v1alpha.html
new file mode 100644
index 0000000..da281d6
--- /dev/null
+++ b/docs/dyn/appengine_v1alpha.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="appengine_v1alpha.html">Google App Engine Admin API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1alpha.apps.html">apps()</a></code>
+</p>
+<p class="firstline">Returns the apps Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1beta.apps.html b/docs/dyn/appengine_v1beta.apps.html
new file mode 100644
index 0000000..d9bb28d
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.html
@@ -0,0 +1,340 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about an application.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(appsId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
+<p class="toc_element">
+  <code><a href="#repair">repair(appsId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body, x__xgafv=None)</code>
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Application resource contains the top-level configuration of an App Engine application.
+    "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+    "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+    "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+    "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+    "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+      { # Rules to match an HTTP request and dispatch that request to a service.
+        "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+        "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+        "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+      },
+    ],
+    "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+    "servingStatus": "A String", # Serving status of this application.
+    "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, x__xgafv=None)</code>
+  <pre>Gets information about an application.
+
+Args:
+  appsId: string, Part of `name`. Name of the Application resource to get. Example: apps/myapp. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Application resource contains the top-level configuration of an App Engine application.
+      "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+      "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+      "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+      "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+      "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+      "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+        { # Rules to match an HTTP request and dispatch that request to a service.
+          "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+          "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+          "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+        },
+      ],
+      "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+      "servingStatus": "A String", # Serving status of this application.
+      "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+      "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+      "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+      "iap": { # Identity-Aware Proxy
+        "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+        "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+        "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+        "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(appsId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain - Google authentication domain for controlling user access to the application.
+default_cookie_expiration - Cookie expiration policy for the application.
+
+Args:
+  appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Application resource contains the top-level configuration of an App Engine application.
+    "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
+    "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
+    "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
+    "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
+    "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent.@OutputOnly
+      { # Rules to match an HTTP request and dispatch that request to a service.
+        "path": "A String", # Pathname within the host. Must start with a "/". A single "*" can be included at the end of the path. The sum of the lengths of the domain and path may not exceed 100 characters.
+        "domain": "A String", # Domain name to match against. The wildcard "*" is supported if specified before a period: "*.".Defaults to matching all domains: "*".
+        "service": "A String", # Resource ID of a service in this application that should serve the matched request. The service must already exist. Example: default.
+      },
+    ],
+    "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
+    "servingStatus": "A String", # Serving status of this application.
+    "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+    },
+  }
+
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="repair">repair(appsId, body, x__xgafv=None)</code>
+  <pre>Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.
+
+Args:
+  appsId: string, Part of `name`. Name of the application to repair. Example: apps/myapp (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for 'Applications.RepairApplication'.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1beta.apps.locations.html b/docs/dyn/appengine_v1beta.apps.locations.html
new file mode 100644
index 0000000..6bb77ab
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.locations.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="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a> . <a href="appengine_v1beta.apps.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, locationsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Get information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</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(appsId, locationsId, x__xgafv=None)</code>
+  <pre>Get information about a location.
+
+Args:
+  appsId: string, Part of `name`. Resource name for the location. (required)
+  locationsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
+      "a_key": "A String",
+    },
+    "locationId": "A String", # The canonical id for this location. For example: "us-east1".
+    "name": "A String", # Resource name for the location, which may vary between implementations. For example: "projects/example-project/locations/us-east1"
+    "metadata": { # Service-specific metadata. For example the available capacity at the given location.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  appsId: string, Part of `name`. The resource that owns the locations collection, if applicable. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "locations": [ # A list of locations that matches the specified filter in the request.
+      { # A resource that represents Google Cloud Platform location.
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
+          "a_key": "A String",
+        },
+        "locationId": "A String", # The canonical id for this location. For example: "us-east1".
+        "name": "A String", # Resource name for the location, which may vary between implementations. For example: "projects/example-project/locations/us-east1"
+        "metadata": { # Service-specific metadata. For example the available capacity at the given location.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+  }</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/appengine_v1beta.apps.operations.html b/docs/dyn/appengine_v1beta.apps.operations.html
new file mode 100644
index 0000000..e5fcbd1
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.operations.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="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a> . <a href="appengine_v1beta.apps.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, operationsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</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(appsId, operationsId, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  appsId: string, Part of `name`. The name of the operation resource. (required)
+  operationsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+
+Args:
+  appsId: string, Part of `name`. The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a network API call.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+    "nextPageToken": "A String", # The standard List 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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1beta.apps.services.html b/docs/dyn/appengine_v1beta.apps.services.html
new file mode 100644
index 0000000..64ae750
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.services.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="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a> . <a href="appengine_v1beta.apps.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.services.versions.html">versions()</a></code>
+</p>
+<p class="firstline">Returns the versions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the specified service and all enclosed versions.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the current configuration of the specified service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the services in the application.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the configuration of the specified service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, x__xgafv=None)</code>
+  <pre>Deletes the specified service and all enclosed versions.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, x__xgafv=None)</code>
+  <pre>Gets the current configuration of the specified service.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+      "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+        "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+        "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+          "a_key": 3.14,
+        },
+      },
+      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+      "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all the services in the application.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Application resource. Example: apps/myapp. (required)
+  pageSize: integer, Maximum results to return per page.
+  pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Services.ListServices.
+    "services": [ # The services belonging to the requested application.
+      { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+          "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+            "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+            "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+              "a_key": 3.14,
+            },
+          },
+          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+          "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+        },
+    ],
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+  }</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(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the configuration of the specified service.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+    "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
+      "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
+      "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
+        "a_key": 3.14,
+      },
+    },
+    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
+    "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+  }
+
+  migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1beta.apps.services.versions.html b/docs/dyn/appengine_v1beta.apps.services.versions.html
new file mode 100644
index 0000000..f011702
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.services.versions.html
@@ -0,0 +1,1019 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a> . <a href="appengine_v1beta.apps.services.html">services</a> . <a href="appengine_v1beta.apps.services.versions.html">versions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.services.versions.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(appsId, servicesId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Deploys code and resource files to a new version.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes an existing Version resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, servicesId, pageSize=None, pageToken=None, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Lists the versions of a service.</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(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
+  <pre>Deploys code and resource files to a new version.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
+    },
+    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+      { # Custom static error page to be served when an error occurs.
+        "errorCode": "A String", # Error condition this handler applies to.
+        "mimeType": "A String", # MIME type of file. Defaults to text/html.
+        "staticFile": "A String", # Static file content to be served for this error.
+      },
+    ],
+    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+      "url": "A String", # URL to serve the endpoint at.
+      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+      "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "script": "A String", # Path to the script from the application root directory.
+    },
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
+    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the health check is considered failed.
+      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+    },
+    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+      { # Third-party Python runtime library that is required by the application.
+        "version": "A String", # Version of the library to select, or "latest".
+        "name": "A String", # Name of the library. Example: "django".
+      },
+    ],
+    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
+      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+      },
+      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+        "targetReadBytesPerSecond": 42, # Target bytes read per second.
+        "targetWriteOpsPerSecond": 42, # Target ops written per second.
+      },
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+        "targetConcurrentRequests": 42, # Target number of concurrent requests.
+        "targetRequestCountPerSecond": 42, # Target requests per second.
+      },
+      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+    },
+    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+      "a_key": "A String",
+    },
+    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "volumes": [ # User specified volumes.
+        { # Volumes mounted within the app container. Only applicable for VM runtimes.
+          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+          "name": "A String", # Unique name for the volume.
+          "sizeGb": 3.14, # Volume size in gigabytes.
+        },
+      ],
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
+      "memoryGb": 3.14, # Memory (GB) needed.
+    },
+    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
+    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+      "A String",
+    ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
+    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+        },
+      },
+      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+      },
+      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+      },
+    },
+    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "initialDelay": "A String", # The initial delay before starting to execute the checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
+          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+        },
+        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
+      },
+    ],
+    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+    "runtime": "A String", # Desired runtime. Example: python27.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</code>
+  <pre>Deletes an existing Version resource.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</code>
+  <pre>Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, Controls the set of fields returned in the Get response.
+
+Returns:
+  An object of the form:
+
+    { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+      "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+        "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+        "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+      },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+      "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+        "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+        "maxInstances": 42, # Maximum number of instances to create for this version.
+      },
+      "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+        { # Custom static error page to be served when an error occurs.
+          "errorCode": "A String", # Error condition this handler applies to.
+          "mimeType": "A String", # MIME type of file. Defaults to text/html.
+          "staticFile": "A String", # Static file content to be served for this error.
+        },
+      ],
+      "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+      "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+        "checkInterval": "A String", # Interval between health checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+        "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+        "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the check is considered failed.
+        "path": "A String", # The request path.
+      },
+      "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+        "url": "A String", # URL to serve the endpoint at.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "login": "A String", # Level of login required to access this resource. Defaults to optional.
+        "script": "A String", # Path to the script from the application root directory.
+      },
+      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+          "A String",
+        ],
+        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      },
+      "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+        "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+        "checkInterval": "A String", # Interval between health checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+        "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+        "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the health check is considered failed.
+        "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+      },
+      "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+      "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+        { # Third-party Python runtime library that is required by the application.
+          "version": "A String", # Version of the library to select, or "latest".
+          "name": "A String", # Name of the library. Example: "django".
+        },
+      ],
+      "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+      "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+      "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+        "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+          "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+          "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+        },
+        "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+          "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+          "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+          "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+          "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+        },
+        "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+          "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+          "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+          "targetReadBytesPerSecond": 42, # Target bytes read per second.
+          "targetWriteOpsPerSecond": 42, # Target ops written per second.
+        },
+        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+        "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+          "targetConcurrentRequests": 42, # Target number of concurrent requests.
+          "targetRequestCountPerSecond": 42, # Target requests per second.
+        },
+        "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+        "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+        "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+        "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+        "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+      },
+      "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+        "a_key": "A String",
+      },
+      "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+        "volumes": [ # User specified volumes.
+          { # Volumes mounted within the app container. Only applicable for VM runtimes.
+            "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+            "name": "A String", # Unique name for the volume.
+            "sizeGb": 3.14, # Volume size in gigabytes.
+          },
+        ],
+        "diskGb": 3.14, # Disk size (GB) needed.
+        "cpu": 3.14, # Number of CPU cores needed.
+        "memoryGb": 3.14, # Memory (GB) needed.
+      },
+      "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+        "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+      },
+      "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+        "A String",
+      ],
+      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+        "a_key": "A String",
+      },
+      "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+      "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+        "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+          "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+            "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+            "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+          },
+        },
+        "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+          "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+        },
+        "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+          "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+        },
+      },
+      "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+        "checkInterval": "A String", # Interval between health checks.
+        "initialDelay": "A String", # The initial delay before starting to execute the checks.
+        "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+        "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+        "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+        "timeout": "A String", # Time before the check is considered failed.
+        "path": "A String", # The request path.
+      },
+      "createTime": "A String", # Time that this version was created.@OutputOnly
+      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+      "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+      "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+        { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+          "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+          "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+          "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+          "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+            "scriptPath": "A String", # Path to the script from the application root directory.
+          },
+          "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+            "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+            "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+              "a_key": "A String",
+            },
+            "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+            "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+            "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+            "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+            "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+          },
+          "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+            "scriptPath": "A String", # Path to the script from the application root directory.
+          },
+          "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+          "login": "A String", # Level of login required to access this resource.
+        },
+      ],
+      "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+      "runtime": "A String", # Desired runtime. Example: python27.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, servicesId, pageSize=None, pageToken=None, x__xgafv=None, view=None)</code>
+  <pre>Lists the versions of a service.
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  pageSize: integer, Maximum results to return per page.
+  pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, Controls the set of fields returned in the List response.
+
+Returns:
+  An object of the form:
+
+    { # Response message for Versions.ListVersions.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "versions": [ # The versions belonging to the requested service.
+      { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+          "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+            "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+            "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+          },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+          "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+            "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+            "maxInstances": 42, # Maximum number of instances to create for this version.
+          },
+          "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+            { # Custom static error page to be served when an error occurs.
+              "errorCode": "A String", # Error condition this handler applies to.
+              "mimeType": "A String", # MIME type of file. Defaults to text/html.
+              "staticFile": "A String", # Static file content to be served for this error.
+            },
+          ],
+          "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+          "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+            "checkInterval": "A String", # Interval between health checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+            "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+            "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the check is considered failed.
+            "path": "A String", # The request path.
+          },
+          "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+            "url": "A String", # URL to serve the endpoint at.
+            "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+            "login": "A String", # Level of login required to access this resource. Defaults to optional.
+            "script": "A String", # Path to the script from the application root directory.
+          },
+          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+              "A String",
+            ],
+            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+          },
+          "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+            "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+            "checkInterval": "A String", # Interval between health checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+            "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+            "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the health check is considered failed.
+            "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+          },
+          "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+          "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+            { # Third-party Python runtime library that is required by the application.
+              "version": "A String", # Version of the library to select, or "latest".
+              "name": "A String", # Name of the library. Example: "django".
+            },
+          ],
+          "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+          "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+          "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+            "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+              "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+              "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+            },
+            "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+              "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+              "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+              "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+              "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+            },
+            "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+              "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+              "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+              "targetReadBytesPerSecond": 42, # Target bytes read per second.
+              "targetWriteOpsPerSecond": 42, # Target ops written per second.
+            },
+            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+            "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+              "targetConcurrentRequests": 42, # Target number of concurrent requests.
+              "targetRequestCountPerSecond": 42, # Target requests per second.
+            },
+            "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+            "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+            "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+            "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+            "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+          },
+          "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+            "a_key": "A String",
+          },
+          "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+            "volumes": [ # User specified volumes.
+              { # Volumes mounted within the app container. Only applicable for VM runtimes.
+                "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+                "name": "A String", # Unique name for the volume.
+                "sizeGb": 3.14, # Volume size in gigabytes.
+              },
+            ],
+            "diskGb": 3.14, # Disk size (GB) needed.
+            "cpu": 3.14, # Number of CPU cores needed.
+            "memoryGb": 3.14, # Memory (GB) needed.
+          },
+          "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+            "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+          },
+          "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+            "A String",
+          ],
+          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+            "a_key": "A String",
+          },
+          "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+          "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+            "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+              "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+                "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+                "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+              },
+            },
+            "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+              "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+            },
+            "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+              "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+            },
+          },
+          "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+            "checkInterval": "A String", # Interval between health checks.
+            "initialDelay": "A String", # The initial delay before starting to execute the checks.
+            "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+            "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+            "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+            "timeout": "A String", # Time before the check is considered failed.
+            "path": "A String", # The request path.
+          },
+          "createTime": "A String", # Time that this version was created.@OutputOnly
+          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+          "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+          "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+            { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+              "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+              "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+              "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+              "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+                "scriptPath": "A String", # Path to the script from the application root directory.
+              },
+              "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+                "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+                "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+                  "a_key": "A String",
+                },
+                "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+                "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+                "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+                "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+                "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+              },
+              "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+                "scriptPath": "A String", # Path to the script from the application root directory.
+              },
+              "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+              "login": "A String", # Level of login required to access this resource.
+            },
+          ],
+          "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+          "runtime": "A String", # Desired runtime. Example: python27.
+        },
+    ],
+  }</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(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
+    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
+      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
+      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
+    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
+    },
+    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
+      { # Custom static error page to be served when an error occurs.
+        "errorCode": "A String", # Error condition this handler applies to.
+        "mimeType": "A String", # MIME type of file. Defaults to text/html.
+        "staticFile": "A String", # Static file content to be served for this error.
+      },
+    ],
+    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
+    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
+      "url": "A String", # URL to serve the endpoint at.
+      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+      "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "script": "A String", # Path to the script from the application root directory.
+    },
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
+    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
+      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
+      "checkInterval": "A String", # Interval between health checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
+      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
+      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the health check is considered failed.
+      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
+    },
+    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
+    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
+      { # Third-party Python runtime library that is required by the application.
+        "version": "A String", # Version of the library to select, or "latest".
+        "name": "A String", # Name of the library. Example: "django".
+      },
+    ],
+    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
+    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
+    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
+      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
+        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
+        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
+        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
+        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
+      },
+      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
+        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
+        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
+        "targetReadBytesPerSecond": 42, # Target bytes read per second.
+        "targetWriteOpsPerSecond": 42, # Target ops written per second.
+      },
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
+        "targetConcurrentRequests": 42, # Target number of concurrent requests.
+        "targetRequestCountPerSecond": 42, # Target requests per second.
+      },
+      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
+      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
+      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
+      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+    },
+    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
+      "a_key": "A String",
+    },
+    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "volumes": [ # User specified volumes.
+        { # Volumes mounted within the app container. Only applicable for VM runtimes.
+          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
+          "name": "A String", # Unique name for the volume.
+          "sizeGb": 3.14, # Volume size in gigabytes.
+        },
+      ],
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
+      "memoryGb": 3.14, # Memory (GB) needed.
+    },
+    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
+    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
+      "A String",
+    ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
+    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
+    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
+      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
+        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
+          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
+        },
+      },
+      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
+        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+      },
+      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
+        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
+      },
+    },
+    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
+      "checkInterval": "A String", # Interval between health checks.
+      "initialDelay": "A String", # The initial delay before starting to execute the checks.
+      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
+      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
+      "timeout": "A String", # Time before the check is considered failed.
+      "path": "A String", # The request path.
+    },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
+    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
+    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
+      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
+        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
+        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
+        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
+          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
+          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
+          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
+          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
+          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+        },
+        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
+          "scriptPath": "A String", # Path to the script from the application root directory.
+        },
+        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
+      },
+    ],
+    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
+    "runtime": "A String", # Desired runtime. Example: python27.
+  }
+
+  updateMask: string, Standard field mask for the set of fields to be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1beta.apps.services.versions.instances.html b/docs/dyn/appengine_v1beta.apps.services.versions.instances.html
new file mode 100644
index 0000000..21e6641
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.apps.services.versions.instances.html
@@ -0,0 +1,286 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="appengine_v1beta.html">Google App Engine Admin API</a> . <a href="appengine_v1beta.apps.html">apps</a> . <a href="appengine_v1beta.apps.services.html">services</a> . <a href="appengine_v1beta.apps.services.versions.html">versions</a> . <a href="appengine_v1beta.apps.services.versions.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Stops a running instance.</p>
+<p class="toc_element">
+  <code><a href="#get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets instance information.</p>
+<p class="toc_element">
+  <code><a href="#list">list(appsId, servicesId, versionsId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</code>
+  <pre>Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for Instances.DebugInstance.
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
+  <pre>Stops a running instance.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
+  <pre>Gets instance information.
+
+Args:
+  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
+  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
+  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
+    "errors": 42, # Number of errors since this instance was started.@OutputOnly
+    "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+    "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
+    "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
+    "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
+    "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "startTime": "A String", # Time that this instance was started.@OutputOnly
+    "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
+    "requests": 42, # Number of requests since this instance was started.@OutputOnly
+    "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+    "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(appsId, servicesId, versionsId, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
+
+Args:
+  appsId: string, Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1. (required)
+  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
+  versionsId: string, Part of `parent`. See documentation of `appsId`. (required)
+  pageSize: integer, Maximum results to return per page.
+  pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Instances.ListInstances.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "instances": [ # The instances belonging to the requested version.
+      { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
+        "errors": 42, # Number of errors since this instance was started.@OutputOnly
+        "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+        "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
+        "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
+        "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
+        "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "startTime": "A String", # Time that this instance was started.@OutputOnly
+        "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
+        "requests": 42, # Number of requests since this instance was started.@OutputOnly
+        "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+        "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
+      },
+    ],
+  }</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/appengine_v1beta.html b/docs/dyn/appengine_v1beta.html
new file mode 100644
index 0000000..5b10a5f
--- /dev/null
+++ b/docs/dyn/appengine_v1beta.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="appengine_v1beta.html">Google App Engine Admin API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appengine_v1beta.apps.html">apps()</a></code>
+</p>
+<p class="firstline">Returns the apps Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appsactivity_v1.activities.html b/docs/dyn/appsactivity_v1.activities.html
index 3595478..0b18f3d 100644
--- a/docs/dyn/appsactivity_v1.activities.html
+++ b/docs/dyn/appsactivity_v1.activities.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="appsactivity_v1.html">Google Apps Activity API</a> . <a href="appsactivity_v1.activities.html">activities</a></h1>
+<h1><a href="appsactivity_v1.html">G Suite Activity API</a> . <a href="appsactivity_v1.activities.html">activities</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, source=None, groupingStrategy=None, userId=None, drive_ancestorId=None, pageToken=None, drive_fileId=None)</a></code></p>
diff --git a/docs/dyn/appsactivity_v1.html b/docs/dyn/appsactivity_v1.html
index 80e5b74..63ec677 100644
--- a/docs/dyn/appsactivity_v1.html
+++ b/docs/dyn/appsactivity_v1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="appsactivity_v1.html">Google Apps Activity API</a></h1>
+<h1><a href="appsactivity_v1.html">G Suite Activity API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="appsactivity_v1.activities.html">activities()</a></code>
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index c2666aa..91d83ac 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -84,6 +84,9 @@
   <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="#getQueryResults_next">getQueryResults_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="#insert">insert(projectId, body=None, media_body=None, media_mime_type=None)</a></code></p>
 <p class="firstline">Starts a new asynchronous job. Requires the Can View project role.</p>
 <p class="toc_element">
@@ -140,6 +143,7 @@
           "query": { # [Output-only] Statistics for a query job.
             "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
               {
+                "status": "A String", # Current status for the stage.
                 "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
                 "recordsWritten": "A String", # Number of records written by the stage.
                 "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -243,7 +247,7 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-            "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
+            "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -273,7 +277,7 @@
             },
           },
           "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.
-          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
             "a_key": "A String",
           },
           "query": { # [Pick one] Configures a query job.
@@ -389,7 +393,7 @@
                 },
               },
             },
-            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
           },
           "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.
@@ -478,6 +482,7 @@
         "query": { # [Output-only] Statistics for a query job.
           "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
             {
+              "status": "A String", # Current status for the stage.
               "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
               "recordsWritten": "A String", # Number of records written by the stage.
               "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -581,7 +586,7 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-          "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
+          "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -611,7 +616,7 @@
           },
         },
         "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.
-        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
           "a_key": "A String",
         },
         "query": { # [Pick one] Configures a query job.
@@ -727,7 +732,7 @@
               },
             },
           },
-          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
         },
         "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.
@@ -833,6 +838,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="getQueryResults_next">getQueryResults_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="insert">insert(projectId, body=None, media_body=None, media_mime_type=None)</code>
   <pre>Starts a new asynchronous job. Requires the Can View project role.
 
@@ -873,6 +892,7 @@
       "query": { # [Output-only] Statistics for a query job.
         "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
           {
+            "status": "A String", # Current status for the stage.
             "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
             "recordsWritten": "A String", # Number of records written by the stage.
             "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -976,7 +996,7 @@
         },
         "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-        "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
+        "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
         "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
         "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1006,7 +1026,7 @@
         },
       },
       "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.
-      "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+      "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
         "a_key": "A String",
       },
       "query": { # [Pick one] Configures a query job.
@@ -1122,7 +1142,7 @@
             },
           },
         },
-        "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+        "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
       },
       "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.
@@ -1203,6 +1223,7 @@
         "query": { # [Output-only] Statistics for a query job.
           "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
             {
+              "status": "A String", # Current status for the stage.
               "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
               "recordsWritten": "A String", # Number of records written by the stage.
               "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -1306,7 +1327,7 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-          "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
+          "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1336,7 +1357,7 @@
           },
         },
         "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.
-        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
           "a_key": "A String",
         },
         "query": { # [Pick one] Configures a query job.
@@ -1452,7 +1473,7 @@
               },
             },
           },
-          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
         },
         "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.
@@ -1555,6 +1576,7 @@
           "query": { # [Output-only] Statistics for a query job.
             "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
               {
+                "status": "A String", # Current status for the stage.
                 "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
                 "recordsWritten": "A String", # Number of records written by the stage.
                 "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -1658,7 +1680,7 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-            "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
+            "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1688,7 +1710,7 @@
             },
           },
           "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.
-          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
             "a_key": "A String",
           },
           "query": { # [Pick one] Configures a query job.
@@ -1804,7 +1826,7 @@
                 },
               },
             },
-            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
           },
           "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.
@@ -1882,7 +1904,7 @@
     "timeoutMs": 42, # [Optional] How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds).
     "kind": "bigquery#queryRequest", # The resource type of the request.
     "dryRun": True or False, # [Optional] If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.
-    "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
+    "parameterMode": "A String", # [Experimental] Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
     "useQueryCache": true, # [Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.
     "defaultDataset": { # [Optional] Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'.
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
diff --git a/docs/dyn/bigquery_v2.tabledata.html b/docs/dyn/bigquery_v2.tabledata.html
index 4074aa7..e3eabd9 100644
--- a/docs/dyn/bigquery_v2.tabledata.html
+++ b/docs/dyn/bigquery_v2.tabledata.html
@@ -80,6 +80,9 @@
 <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. Requires the READER dataset role.</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="insertAll">insertAll(projectId, datasetId, tableId, body)</code>
@@ -161,4 +164,18 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.tables.html b/docs/dyn/bigquery_v2.tables.html
index 091ae9a..b62bd8f 100644
--- a/docs/dyn/bigquery_v2.tables.html
+++ b/docs/dyn/bigquery_v2.tables.html
@@ -124,7 +124,7 @@
       "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.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -248,7 +248,7 @@
     "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.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -365,7 +365,7 @@
       "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.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -503,6 +503,9 @@
         "friendlyName": "A String", # The user-friendly name for this table.
         "type": "A String", # The type of table. Possible values are: TABLE, VIEW.
         "id": "A String", # An opaque ID of the table
+        "view": { # Additional details for a view.
+          "useLegacySql": True or False, # True if view is defined in legacy SQL dialect, false if in standard SQL.
+        },
       },
     ],
     "kind": "bigquery#tableList", # The type of list.
@@ -541,7 +544,7 @@
     "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.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -658,7 +661,7 @@
       "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.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -783,7 +786,7 @@
     "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.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -900,7 +903,7 @@
       "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.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
diff --git a/docs/dyn/calendar_v3.calendarList.html b/docs/dyn/calendar_v3.calendarList.html
index 8373ac8..ceb6f5d 100644
--- a/docs/dyn/calendar_v3.calendarList.html
+++ b/docs/dyn/calendar_v3.calendarList.html
@@ -126,7 +126,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -145,7 +145,7 @@
                 # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
           },
         ],
       },
@@ -182,7 +182,7 @@
         "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
         "method": "A String", # The method used by this reminder. Possible values are:
             # - "email" - Reminders are sent via email.
-            # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+            # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
             # - "popup" - Reminders are sent via a UI popup.
       },
     ],
@@ -201,7 +201,7 @@
               # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
         },
       ],
     },
@@ -234,7 +234,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -253,7 +253,7 @@
                 # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
           },
         ],
       },
@@ -309,7 +309,7 @@
               "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
               "method": "A String", # The method used by this reminder. Possible values are:
                   # - "email" - Reminders are sent via email.
-                  # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                  # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                   # - "popup" - Reminders are sent via a UI popup.
             },
           ],
@@ -328,7 +328,7 @@
                     # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+                    # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
               },
             ],
           },
@@ -385,7 +385,7 @@
         "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
         "method": "A String", # The method used by this reminder. Possible values are:
             # - "email" - Reminders are sent via email.
-            # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+            # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
             # - "popup" - Reminders are sent via a UI popup.
       },
     ],
@@ -404,7 +404,7 @@
               # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
         },
       ],
     },
@@ -437,7 +437,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -456,7 +456,7 @@
                 # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
           },
         ],
       },
@@ -494,7 +494,7 @@
         "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
         "method": "A String", # The method used by this reminder. Possible values are:
             # - "email" - Reminders are sent via email.
-            # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+            # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
             # - "popup" - Reminders are sent via a UI popup.
       },
     ],
@@ -513,7 +513,7 @@
               # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
         },
       ],
     },
@@ -546,7 +546,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -565,7 +565,7 @@
                 # - "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. SMS reminders are only available for Google Apps for Work, Education, and Government customers.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates. SMS reminders are only available for G Suite customers.
           },
         ],
       },
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 743e503..7cebd11 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -262,7 +262,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -414,7 +414,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -561,7 +561,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -713,7 +713,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -862,7 +862,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -910,7 +910,7 @@
         "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
         "method": "A String", # The method used by this reminder. Possible values are:
             # - "email" - Reminders are sent via email.
-            # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+            # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
             # - "popup" - Reminders are sent via a UI popup.
       },
     ],
@@ -1039,7 +1039,7 @@
                 "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
                 "method": "A String", # The method used by this reminder. Possible values are:
                     # - "email" - Reminders are sent via email.
-                    # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                    # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                     # - "popup" - Reminders are sent via a UI popup.
               },
             ],
@@ -1137,7 +1137,7 @@
         "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
         "method": "A String", # The method used by this reminder. Possible values are:
             # - "email" - Reminders are sent via email.
-            # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+            # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
             # - "popup" - Reminders are sent via a UI popup.
       },
     ],
@@ -1266,7 +1266,7 @@
                 "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
                 "method": "A String", # The method used by this reminder. Possible values are:
                     # - "email" - Reminders are sent via email.
-                    # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                    # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                     # - "popup" - Reminders are sent via a UI popup.
               },
             ],
@@ -1449,7 +1449,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -1602,7 +1602,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -1752,7 +1752,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -1907,7 +1907,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
@@ -2060,7 +2060,7 @@
           "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
           "method": "A String", # The method used by this reminder. Possible values are:
               # - "email" - Reminders are sent via email.
-              # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+              # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
               # - "popup" - Reminders are sent via a UI popup.
         },
       ],
@@ -2210,7 +2210,7 @@
             "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
             "method": "A String", # The method used by this reminder. Possible values are:
                 # - "email" - Reminders are sent via email.
-                # - "sms" - Reminders are sent via SMS. These are only available for Google Apps for Work, Education, and Government customers. Requests to set SMS reminders for other account types are ignored.
+                # - "sms" - Reminders are sent via SMS. These are only available for G Suite customers. Requests to set SMS reminders for other account types are ignored.
                 # - "popup" - Reminders are sent via a UI popup.
           },
         ],
diff --git a/docs/dyn/classroom_v1.courses.courseWork.html b/docs/dyn/classroom_v1.courses.courseWork.html
index e0be6bd..17a041b 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.html
@@ -81,7 +81,10 @@
 
 <p class="toc_element">
   <code><a href="#create">create(courseId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work in the requested course, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist.</p>
+<p class="firstline">Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work in the requested course, share a Drive attachment, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist. * `FAILED_PRECONDITION` for the following request error: * AttachmentNotVisible</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(courseId, id, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a course work. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the requesting user is not permitted to delete the requested course or for access errors. * `FAILED_PRECONDITION` if the requested course work has already been deleted. * `NOT_FOUND` if no course exists with the requested ID.</p>
 <p class="toc_element">
   <code><a href="#get">get(courseId, id, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns course work. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course or course work does not exist.</p>
@@ -91,10 +94,13 @@
 <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(courseId, id, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates one or more fields of a course work. See google.classroom.v1.CourseWork for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `FAILED_PRECONDITION` if the requested course work has already been deleted. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(courseId, body, x__xgafv=None)</code>
-  <pre>Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work in the requested course, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist.
+  <pre>Creates course work. The resulting course work (and corresponding student submissions) are associated with the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to make the request. Classroom API requests to modify course work and student submissions must be made with an OAuth client ID from the associated Developer Console project. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course, create course work in the requested course, share a Drive attachment, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course does not exist. * `FAILED_PRECONDITION` for the following request error: * AttachmentNotVisible
 
 Args:
   courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
@@ -107,7 +113,7 @@
     "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
     "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
     "courseId": "A String", # Identifier of the course. Read-only.
-    "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`.
+    "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
       "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
         "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
         "id": "A String", # Drive API resource ID.
@@ -123,8 +129,8 @@
     },
     "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
     "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
-      { # Material attached to course work. When creating attachments, only the Link field may be specified.
-        "link": { # URL item. # Link material.
+      { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
           "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
           "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
           "title": "A String", # Title of the target of the URL. Read-only.
@@ -152,7 +158,7 @@
         },
       },
     ],
-    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. This is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`.
+    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
       "choices": [ # Possible choices.
         "A String",
       ],
@@ -166,7 +172,7 @@
       "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
       "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
     },
-    "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed. When creating course work, this must be `ASSIGNMENT`.
+    "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
   }
 
   x__xgafv: string, V1 error format.
@@ -180,7 +186,7 @@
       "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
       "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
       "courseId": "A String", # Identifier of the course. Read-only.
-      "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`.
+      "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
         "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
           "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
           "id": "A String", # Drive API resource ID.
@@ -196,8 +202,8 @@
       },
       "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
       "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
-        { # Material attached to course work. When creating attachments, only the Link field may be specified.
-          "link": { # URL item. # Link material.
+        { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+          "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
             "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
             "title": "A String", # Title of the target of the URL. Read-only.
@@ -225,7 +231,7 @@
           },
         },
       ],
-      "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. This is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`.
+      "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
         "choices": [ # Possible choices.
           "A String",
         ],
@@ -239,11 +245,27 @@
         "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       },
-      "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed. When creating course work, this must be `ASSIGNMENT`.
+      "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
     }</pre>
 </div>
 
 <div class="method">
+    <code class="details" id="delete">delete(courseId, id, x__xgafv=None)</code>
+  <pre>Deletes a course work. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the requesting user is not permitted to delete the requested course or for access errors. * `FAILED_PRECONDITION` if the requested course work has already been deleted. * `NOT_FOUND` if no course exists with the requested ID.
+
+Args:
+  courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
+  id: string, Identifier of the course work to delete. This identifier is a Classroom-assigned identifier. (required)
+  x__xgafv: string, V1 error format.
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(courseId, id, x__xgafv=None)</code>
   <pre>Returns course work. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course or course work does not exist.
 
@@ -261,7 +283,7 @@
       "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
       "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
       "courseId": "A String", # Identifier of the course. Read-only.
-      "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`.
+      "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
         "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
           "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
           "id": "A String", # Drive API resource ID.
@@ -277,8 +299,8 @@
       },
       "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
       "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
-        { # Material attached to course work. When creating attachments, only the Link field may be specified.
-          "link": { # URL item. # Link material.
+        { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+          "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
             "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
             "title": "A String", # Title of the target of the URL. Read-only.
@@ -306,7 +328,7 @@
           },
         },
       ],
-      "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. This is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`.
+      "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
         "choices": [ # Possible choices.
           "A String",
         ],
@@ -320,7 +342,7 @@
         "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       },
-      "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed. When creating course work, this must be `ASSIGNMENT`.
+      "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
     }</pre>
 </div>
 
@@ -348,7 +370,7 @@
           "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
           "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
           "courseId": "A String", # Identifier of the course. Read-only.
-          "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`.
+          "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
             "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
               "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
               "id": "A String", # Drive API resource ID.
@@ -364,8 +386,8 @@
           },
           "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
           "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
-            { # Material attached to course work. When creating attachments, only the Link field may be specified.
-              "link": { # URL item. # Link material.
+            { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+              "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
                 "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
                 "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
                 "title": "A String", # Title of the target of the URL. Read-only.
@@ -393,7 +415,7 @@
               },
             },
           ],
-          "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. This is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`.
+          "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
             "choices": [ # Possible choices.
               "A String",
             ],
@@ -407,7 +429,7 @@
             "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
             "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
           },
-          "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed. When creating course work, this must be `ASSIGNMENT`.
+          "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
         },
     ],
   }</pre>
@@ -427,4 +449,157 @@
     </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="patch">patch(courseId, id, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates one or more fields of a course work. See google.classroom.v1.CourseWork for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `FAILED_PRECONDITION` if the requested course work has already been deleted. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.
+
+Args:
+  courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
+  id: string, Identifier of the course work. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Course work created by a teacher for students of the course.
+    "updateTime": "A String", # Timestamp of the most recent change to this course work. Read-only.
+    "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions. If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
+    "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
+    "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
+    "courseId": "A String", # Identifier of the course. Read-only.
+    "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
+      "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
+        "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
+        "id": "A String", # Drive API resource ID.
+        "title": "A String", # Title of the Drive folder. Read-only.
+      },
+    },
+    "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI. This is only populated if `state` is `PUBLISHED`. Read-only.
+    "creationTime": "A String", # Timestamp when this course work was created. Read-only.
+    "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Optional date, in UTC, that submissions for this this course work are due. This must be specified if `due_time` is specified.
+      "month": 42, # Month of year. Must be from 1 to 12.
+      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
+      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
+    },
+    "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+    "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
+      { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+        "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
+          "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
+          "title": "A String", # Title of the target of the URL. Read-only.
+        },
+        "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
+          "driveFile": { # Representation of a Google Drive file. # Drive file details.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item. Read-only.
+            "alternateLink": "A String", # URL that can be used to access the Drive item. Read-only.
+            "id": "A String", # Drive API resource ID.
+            "title": "A String", # Title of the Drive item. Read-only.
+          },
+          "shareMode": "A String", # Mechanism by which students access the Drive item.
+        },
+        "youtubeVideo": { # YouTube video item. # YouTube video material.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video. Read-only.
+          "alternateLink": "A String", # URL that can be used to view the YouTube video. Read-only.
+          "id": "A String", # YouTube API resource ID.
+          "title": "A String", # Title of the YouTube video. Read-only.
+        },
+        "form": { # Google Forms item. # Google Forms material.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the Form. Read-only.
+          "formUrl": "A String", # URL of the form.
+          "responseUrl": "A String", # URL of the form responses document. Only set if respsonses have been recorded and only when the requesting user is an editor of the form. Read-only.
+          "title": "A String", # Title of the Form. Read-only.
+        },
+      },
+    ],
+    "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
+      "choices": [ # Possible choices.
+        "A String",
+      ],
+    },
+    "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
+    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
+    "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
+    "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
+      "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
+      "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+      "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+    },
+    "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
+  }
+
+  updateMask: string, Mask that identifies which fields on the course work to update. This field is required to do an update. The update fails if invalid fields are specified. If a field supports empty values, it can be cleared by specifying it in the update mask and not in the CourseWork object. If a field that does not support empty values is included in the update mask and not set in the CourseWork object, an `INVALID_ARGUMENT` error will be returned. The following fields may be specified by teachers: * `title` * `description` * `state` * `due_date` * `due_time` * `max_points` * `submission_modification_mode`
+  x__xgafv: string, V1 error format.
+
+Returns:
+  An object of the form:
+
+    { # Course work created by a teacher for students of the course.
+      "updateTime": "A String", # Timestamp of the most recent change to this course work. Read-only.
+      "submissionModificationMode": "A String", # Setting to determine when students are allowed to modify submissions. If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
+      "description": "A String", # Optional description of this course work. If set, the description must be a valid UTF-8 string containing no more than 30,000 characters.
+      "title": "A String", # Title of this course work. The title must be a valid UTF-8 string containing between 1 and 3000 characters.
+      "courseId": "A String", # Identifier of the course. Read-only.
+      "assignment": { # Additional details for assignments. # Assignment details. This is populated only when `work_type` is `ASSIGNMENT`. Read-only.
+        "studentWorkFolder": { # Representation of a Google Drive folder. # Drive folder where attachments from student submissions are placed. This is only populated for course teachers.
+          "alternateLink": "A String", # URL that can be used to access the Drive folder. Read-only.
+          "id": "A String", # Drive API resource ID.
+          "title": "A String", # Title of the Drive folder. Read-only.
+        },
+      },
+      "alternateLink": "A String", # Absolute link to this course work in the Classroom web UI. This is only populated if `state` is `PUBLISHED`. Read-only.
+      "creationTime": "A String", # Timestamp when this course work was created. Read-only.
+      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Optional date, in UTC, that submissions for this this course work are due. This must be specified if `due_time` is specified.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
+      },
+      "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+      "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
+        { # Material attached to course work. When creating attachments, setting the `form` field is not supported.
+          "link": { # URL item. # Link material. On creation, will be upgraded to a more appropriate type if possible, and this will be reflected in the response.
+            "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
+            "title": "A String", # Title of the target of the URL. Read-only.
+          },
+          "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
+            "driveFile": { # Representation of a Google Drive file. # Drive file details.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item. Read-only.
+              "alternateLink": "A String", # URL that can be used to access the Drive item. Read-only.
+              "id": "A String", # Drive API resource ID.
+              "title": "A String", # Title of the Drive item. Read-only.
+            },
+            "shareMode": "A String", # Mechanism by which students access the Drive item.
+          },
+          "youtubeVideo": { # YouTube video item. # YouTube video material.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video. Read-only.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video. Read-only.
+            "id": "A String", # YouTube API resource ID.
+            "title": "A String", # Title of the YouTube video. Read-only.
+          },
+          "form": { # Google Forms item. # Google Forms material.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Form. Read-only.
+            "formUrl": "A String", # URL of the form.
+            "responseUrl": "A String", # URL of the form responses document. Only set if respsonses have been recorded and only when the requesting user is an editor of the form. Read-only.
+            "title": "A String", # Title of the Form. Read-only.
+          },
+        },
+      ],
+      "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details. For read operations, this field is populated only when `work_type` is `MULTIPLE_CHOICE_QUESTION`. For write operations, this field must be specified when creating course work with a `work_type` of `MULTIPLE_CHOICE_QUESTION`, and it must not be set otherwise.
+        "choices": [ # Possible choices.
+          "A String",
+        ],
+      },
+      "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
+      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
+      "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
+      "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
+        "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
+        "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+        "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      },
+      "workType": "A String", # Type of this course work. The type is set when the course work is created and cannot be changed.
+    }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
index f1f6c36..9e4c3b3 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
@@ -85,13 +85,13 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#modifyAttachments">modifyAttachments(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Modifies attachments of student submission. Attachments may only be added to student submissions whose type is `ASSIGNMENT`. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
+<p class="firstline">Modifies attachments of student submission. Attachments may only be added to student submissions belonging to course work objects with a `workType` of `ASSIGNMENT`. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(courseId, courseWorkId, id, body, updateMask=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates one or more fields of a student submission. See google.classroom.v1.StudentSubmission for details of which fields may be updated and who may change them. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting developer project did not create the corresponding course work, if the user is not permitted to make the requested modification to the student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
 <p class="toc_element">
   <code><a href="#reclaim">reclaim(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and update the submission state. Only the student that ownes the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * `FAILED_PRECONDITION` if the student submission has not been turned in. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
+<p class="firstline">Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and update the submission state. Only the student that owns the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * `FAILED_PRECONDITION` if the student submission has not been turned in. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
 <p class="toc_element">
   <code><a href="#return_">return_(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a student submission. Returning a student submission transfers ownership of attached Drive files to the student and may also update the submission state. Unlike the Classroom application, returning a student submission does not set assignedGrade to the draftGrade value. Only a teacher of the course that contains the requested student submission may call this method. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, return the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.</p>
@@ -132,8 +132,8 @@
     },
     "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
-      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
-        { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are always available, but others (e.g. title) may not be.
+        { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
           "link": { # URL item. # Link attachment.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
             "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -204,8 +204,8 @@
         },
         "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
         "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
-          "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
-            { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+          "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are always available, but others (e.g. title) may not be.
+            { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
               "link": { # URL item. # Link attachment.
                 "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
                 "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -254,7 +254,7 @@
 
 <div class="method">
     <code class="details" id="modifyAttachments">modifyAttachments(courseId, courseWorkId, id, body, x__xgafv=None)</code>
-  <pre>Modifies attachments of student submission. Attachments may only be added to student submissions whose type is `ASSIGNMENT`. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.
+  <pre>Modifies attachments of student submission. Attachments may only be added to student submissions belonging to course work objects with a `workType` of `ASSIGNMENT`. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, if the user is not permitted to modify attachments on the requested student submission, or for access errors. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.
 
 Args:
   courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
@@ -264,8 +264,8 @@
     The object takes the form of:
 
 { # Request to modify the attachments of a student submission.
-    "addAttachments": [ # Attachments to add. A student submission may not have more than 20 attachments. This may only contain link attachments.
-      { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+    "addAttachments": [ # Attachments to add. A student submission may not have more than 20 attachments. Form attachments are not supported.
+      { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
         "link": { # URL item. # Link attachment.
           "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
           "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -318,8 +318,8 @@
     },
     "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
-      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
-        { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are always available, but others (e.g. title) may not be.
+        { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
           "link": { # URL item. # Link attachment.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
             "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -381,8 +381,8 @@
   },
   "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
   "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
-    "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
-      { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+    "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are always available, but others (e.g. title) may not be.
+      { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
         "link": { # URL item. # Link attachment.
           "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
           "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -438,8 +438,8 @@
     },
     "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
-      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
-        { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
+      "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are always available, but others (e.g. title) may not be.
+        { # Attachment added to student assignment work. When creating attachments, setting the `form` field is not supported.
           "link": { # URL item. # Link attachment.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
             "thumbnailUrl": "A String", # URL of a thumbnail image of the target URL. Read-only.
@@ -472,7 +472,7 @@
 
 <div class="method">
     <code class="details" id="reclaim">reclaim(courseId, courseWorkId, id, body, x__xgafv=None)</code>
-  <pre>Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and update the submission state. Only the student that ownes the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * `FAILED_PRECONDITION` if the student submission has not been turned in. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.
+  <pre>Reclaims a student submission on behalf of the student that owns it. Reclaiming a student submission transfers ownership of attached Drive files to the student and update the submission state. Only the student that owns the requested student submission may call this method, and only for a student submission that has been turned in. This request must be made by the Developer Console project of the [OAuth client ID](https://support.google.com/cloud/answer/6158849) used to create the corresponding course work item. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or course work, unsubmit the requested student submission, or for access errors. * `FAILED_PRECONDITION` if the student submission has not been turned in. * `INVALID_ARGUMENT` if the request is malformed. * `NOT_FOUND` if the requested course, course work, or student submission does not exist.
 
 Args:
   courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
diff --git a/docs/dyn/classroom_v1.userProfiles.guardians.html b/docs/dyn/classroom_v1.userProfiles.guardians.html
index 93faa57..eb3f628 100644
--- a/docs/dyn/classroom_v1.userProfiles.guardians.html
+++ b/docs/dyn/classroom_v1.userProfiles.guardians.html
@@ -76,10 +76,10 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(studentId, guardianId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to manage guardians for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API). * `NOT_FOUND` if Classroom cannot find any record of the given `student_id` or `guardian_id`, or if the guardian has already been disabled.</p>
+<p class="firstline">Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * `PERMISSION_DENIED` if no user that matches the provided `student_id` is visible to the requesting user, if the requesting user is not permitted to manage guardians for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API). * `NOT_FOUND` if the requesting user is permitted to modify guardians for the requested `student_id`, but no `Guardian` record exists for that student with the provided `guardian_id`.</p>
 <p class="toc_element">
   <code><a href="#get">get(studentId, guardianId, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a specific guardian. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view guardian information for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if Classroom cannot find any record of the given student or `guardian_id`, or if the guardian has been disabled.</p>
+<p class="firstline">Returns a specific guardian. This method returns the following error codes: * `PERMISSION_DENIED` if no user that matches the provided `student_id` is visible to the requesting user, if the requesting user is not permitted to view guardian information for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if the requesting user is permitted to view guardians for the requested `student_id`, but no `Guardian` record exists for that student that matches the provided `guardian_id`.</p>
 <p class="toc_element">
   <code><a href="#list">list(studentId, invitedEmailAddress=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a list of guardians that the requesting user is permitted to view, restricted to those that match the request. To list guardians for any student that the requesting user may view guardians for, use the literal character `-` for the student ID. This method returns the following error codes: * `PERMISSION_DENIED` if a `student_id` is specified, and the requesting user is not permitted to view guardian information for that student, if `"-"` is specified as the `student_id` and the user is not a domain administrator, if guardians are not enabled for the domain in question, if the `invited_email_address` filter is set by a user who is not a domain administrator, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). May also be returned if an invalid `page_token` is provided. * `NOT_FOUND` if a `student_id` is specified, and its format can be recognized, but Classroom has no record of that student.</p>
@@ -89,7 +89,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(studentId, guardianId, x__xgafv=None)</code>
-  <pre>Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to manage guardians for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API). * `NOT_FOUND` if Classroom cannot find any record of the given `student_id` or `guardian_id`, or if the guardian has already been disabled.
+  <pre>Deletes a guardian. The guardian will no longer receive guardian notifications and the guardian will no longer be accessible via the API. This method returns the following error codes: * `PERMISSION_DENIED` if no user that matches the provided `student_id` is visible to the requesting user, if the requesting user is not permitted to manage guardians for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API). * `NOT_FOUND` if the requesting user is permitted to modify guardians for the requested `student_id`, but no `Guardian` record exists for that student with the provided `guardian_id`.
 
 Args:
   studentId: string, The student whose guardian is to be deleted. One of the following: * the numeric identifier for the user * the email address of the user * the string literal `"me"`, indicating the requesting user (required)
@@ -105,7 +105,7 @@
 
 <div class="method">
     <code class="details" id="get">get(studentId, guardianId, x__xgafv=None)</code>
-  <pre>Returns a specific guardian. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view guardian information for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if Classroom cannot find any record of the given student or `guardian_id`, or if the guardian has been disabled.
+  <pre>Returns a specific guardian. This method returns the following error codes: * `PERMISSION_DENIED` if no user that matches the provided `student_id` is visible to the requesting user, if the requesting user is not permitted to view guardian information for the student identified by the `student_id`, if guardians are not enabled for the domain in question, or for other access errors. * `INVALID_ARGUMENT` if a `student_id` is specified, but its format cannot be recognized (it is not an email address, nor a `student_id` from the API, nor the literal string `me`). * `NOT_FOUND` if the requesting user is permitted to view guardians for the requested `student_id`, but no `Guardian` record exists for that student that matches the provided `guardian_id`.
 
 Args:
   studentId: string, The student whose guardian is being requested. One of the following: * the numeric identifier for the user * the email address of the user * the string literal `"me"`, indicating the requesting user (required)
diff --git a/docs/dyn/classroom_v1.userProfiles.html b/docs/dyn/classroom_v1.userProfiles.html
index 1a0563f..da139a5 100644
--- a/docs/dyn/classroom_v1.userProfiles.html
+++ b/docs/dyn/classroom_v1.userProfiles.html
@@ -86,11 +86,11 @@
 
 <p class="toc_element">
   <code><a href="#get">get(userId, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile or if no profile exists with the requested ID or for access errors.</p>
+<p class="firstline">Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(userId, x__xgafv=None)</code>
-  <pre>Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile or if no profile exists with the requested ID or for access errors.
+  <pre>Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.
 
 Args:
   userId: string, Identifier of the profile to return. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `"me"`, indicating the requesting user (required)
diff --git a/docs/dyn/cloudbilling_v1.billingAccounts.html b/docs/dyn/cloudbilling_v1.billingAccounts.html
index e6b6ca3..42965e9 100644
--- a/docs/dyn/cloudbilling_v1.billingAccounts.html
+++ b/docs/dyn/cloudbilling_v1.billingAccounts.html
@@ -80,52 +80,83 @@
 <p class="firstline">Returns the projects Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets information about a billing account. The current authenticated user must be an [owner of the billing account](https://support.google.com/cloud/answer/4430947).</p>
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a billing account. The current authenticated user</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists the billing accounts that the current authenticated user [owns](https://support.google.com/cloud/answer/4430947).</p>
+<p class="firstline">Lists the billing accounts that the current 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(name, x__xgafv=None)</code>
-  <pre>Gets information about a billing account. The current authenticated user must be an [owner of the billing account](https://support.google.com/cloud/answer/4430947).
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets information about a billing account. The current authenticated user
+must be an [owner of the billing
+account](https://support.google.com/cloud/answer/4430947).
 
 Args:
-  name: string, The resource name of the billing account to retrieve. For example, `billingAccounts/012345-567890-ABCDEF`. (required)
+  name: string, The resource name of the billing account to retrieve. For example,
+`billingAccounts/012345-567890-ABCDEF`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A billing account in [Google Developers Console](https://console.developers.google.com/). You can assign a billing account to one or more projects.
-    "displayName": "A String", # The display name given to the billing account, such as `My Billing Account`. This name is displayed in the Google Developers Console.
-    "open": True or False, # True if the billing account is open, and will therefore be charged for any usage on associated projects. False if the billing account is closed, and therefore projects associated with it will be unable to use paid services.
-    "name": "A String", # The resource name of the billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF` would be the resource name for billing account `012345-567890-ABCDEF`.
+    { # A billing account in [Google Cloud
+      # Console](https://console.cloud.google.com/). You can assign a billing account
+      # to one or more projects.
+    "open": True or False, # True if the billing account is open, and will therefore be charged for any
+        # usage on associated projects. False if the billing account is closed, and
+        # therefore projects associated with it will be unable to use paid services.
+    "displayName": "A String", # The display name given to the billing account, such as `My Billing
+        # Account`. This name is displayed in the Google Cloud Console.
+    "name": "A String", # The resource name of the billing account. The resource name has the form
+        # `billingAccounts/{billing_account_id}`. For example,
+        # `billingAccounts/012345-567890-ABCDEF` would be the resource name for
+        # billing account `012345-567890-ABCDEF`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists the billing accounts that the current authenticated user [owns](https://support.google.com/cloud/answer/4430947).
+  <pre>Lists the billing accounts that the current authenticated user
+[owns](https://support.google.com/cloud/answer/4430947).
 
 Args:
-  pageSize: integer, Requested page size. The maximum page size is 100; this is also the default.
-  pageToken: string, A token identifying a page of results to return. This should be a `next_page_token` value returned from a previous `ListBillingAccounts` call. If unspecified, the first page of results is returned.
+  pageSize: integer, Requested page size. The maximum page size is 100; this is also the
+default.
+  pageToken: string, A token identifying a page of results to return. This should be a
+`next_page_token` value returned from a previous `ListBillingAccounts`
+call. If unspecified, the first page of results is returned.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response message for `ListBillingAccounts`.
-    "nextPageToken": "A String", # A token to retrieve the next page of results. To retrieve the next page, call `ListBillingAccounts` again with the `page_token` field set to this value. This field is empty if there are no more results to retrieve.
+    "nextPageToken": "A String", # A token to retrieve the next page of results. To retrieve the next page,
+        # call `ListBillingAccounts` again with the `page_token` field set to this
+        # value. This field is empty if there are no more results to retrieve.
     "billingAccounts": [ # A list of billing accounts.
-      { # A billing account in [Google Developers Console](https://console.developers.google.com/). You can assign a billing account to one or more projects.
-        "displayName": "A String", # The display name given to the billing account, such as `My Billing Account`. This name is displayed in the Google Developers Console.
-        "open": True or False, # True if the billing account is open, and will therefore be charged for any usage on associated projects. False if the billing account is closed, and therefore projects associated with it will be unable to use paid services.
-        "name": "A String", # The resource name of the billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF` would be the resource name for billing account `012345-567890-ABCDEF`.
+      { # A billing account in [Google Cloud
+          # Console](https://console.cloud.google.com/). You can assign a billing account
+          # to one or more projects.
+        "open": True or False, # True if the billing account is open, and will therefore be charged for any
+            # usage on associated projects. False if the billing account is closed, and
+            # therefore projects associated with it will be unable to use paid services.
+        "displayName": "A String", # The display name given to the billing account, such as `My Billing
+            # Account`. This name is displayed in the Google Cloud Console.
+        "name": "A String", # The resource name of the billing account. The resource name has the form
+            # `billingAccounts/{billing_account_id}`. For example,
+            # `billingAccounts/012345-567890-ABCDEF` would be the resource name for
+            # billing account `012345-567890-ABCDEF`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/cloudbilling_v1.billingAccounts.projects.html b/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
index 4f025a2..8edfd53 100644
--- a/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
+++ b/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
@@ -75,33 +75,56 @@
 <h1><a href="cloudbilling_v1.html">Google Cloud Billing API</a> . <a href="cloudbilling_v1.billingAccounts.html">billingAccounts</a> . <a href="cloudbilling_v1.billingAccounts.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the projects associated with a billing account. The current authenticated user must be an [owner of the billing account](https://support.google.com/cloud/answer/4430947).</p>
+  <code><a href="#list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the projects associated with a billing account. The current</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(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the projects associated with a billing account. The current authenticated user must be an [owner of the billing account](https://support.google.com/cloud/answer/4430947).
+    <code class="details" id="list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists the projects associated with a billing account. The current
+authenticated user must be an [owner of the billing
+account](https://support.google.com/cloud/answer/4430947).
 
 Args:
-  name: string, The resource name of the billing account associated with the projects that you want to list. For example, `billingAccounts/012345-567890-ABCDEF`. (required)
-  pageToken: string, A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous `ListProjectBillingInfo` call. If unspecified, the first page of results is returned.
+  name: string, The resource name of the billing account associated with the projects that
+you want to list. For example, `billingAccounts/012345-567890-ABCDEF`. (required)
+  pageToken: string, A token identifying a page of results to be returned. This should be a
+`next_page_token` value returned from a previous `ListProjectBillingInfo`
+call. If unspecified, the first page of results is returned.
   x__xgafv: string, V1 error format.
-  pageSize: integer, Requested page size. The maximum page size is 100; this is also the default.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Requested page size. The maximum page size is 100; this is also the
+default.
 
 Returns:
   An object of the form:
 
     { # Request message for `ListProjectBillingInfoResponse`.
-    "nextPageToken": "A String", # A token to retrieve the next page of results. To retrieve the next page, call `ListProjectBillingInfo` again with the `page_token` field set to this value. This field is empty if there are no more results to retrieve.
-    "projectBillingInfo": [ # A list of `ProjectBillingInfo` resources representing the projects associated with the billing account.
-      { # Encapsulation of billing information for a Developers Console project. A project has at most one associated billing account at a time (but a billing account can be assigned to multiple projects).
-        "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID. This field is read-only.
-        "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`. This field is read-only.
-        "billingEnabled": True or False, # True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services. This field is read-only.
-        "billingAccountName": "A String", # The resource name of the billing account associated with the project, if any. For example, `billingAccounts/012345-567890-ABCDEF`.
+    "nextPageToken": "A String", # A token to retrieve the next page of results. To retrieve the next page,
+        # call `ListProjectBillingInfo` again with the `page_token` field set to this
+        # value. This field is empty if there are no more results to retrieve.
+    "projectBillingInfo": [ # A list of `ProjectBillingInfo` resources representing the projects
+        # associated with the billing account.
+      { # Encapsulation of billing information for a Cloud Console project. A project
+          # has at most one associated billing account at a time (but a billing account
+          # can be assigned to multiple projects).
+        "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as
+            # `tokyo-rain-123`. This is a convenience field so that you don't need to
+            # parse the `name` field to obtain a project ID. This field is read-only.
+        "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form
+            # `projects/{project_id}/billingInfo`. For example, the resource name for the
+            # billing information for project `tokyo-rain-123` would be
+            # `projects/tokyo-rain-123/billingInfo`. This field is read-only.
+        "billingEnabled": True or False, # True if the project is associated with an open billing account, to which
+            # usage on the project is charged. False if the project is associated with a
+            # closed billing account, or no billing account at all, and therefore cannot
+            # use paid services. This field is read-only.
+        "billingAccountName": "A String", # The resource name of the billing account associated with the project, if
+            # any. For example, `billingAccounts/012345-567890-ABCDEF`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/cloudbilling_v1.projects.html b/docs/dyn/cloudbilling_v1.projects.html
index e4a27cf..feabbce 100644
--- a/docs/dyn/cloudbilling_v1.projects.html
+++ b/docs/dyn/cloudbilling_v1.projects.html
@@ -75,57 +75,131 @@
 <h1><a href="cloudbilling_v1.html">Google Cloud Billing API</a> . <a href="cloudbilling_v1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#getBillingInfo">getBillingInfo(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the billing information for a project. The current authenticated user must have [permission to view the project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo ).</p>
+  <code><a href="#getBillingInfo">getBillingInfo(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the billing information for a project. The current authenticated user</p>
 <p class="toc_element">
-  <code><a href="#updateBillingInfo">updateBillingInfo(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets or updates the billing account associated with a project. You specify the new billing account by setting the `billing_account_name` in the `ProjectBillingInfo` resource to the resource name of a billing account. Associating a project with an open billing account enables billing on the project and allows charges for resource usage. If the project already had a billing account, this method changes the billing account used for resource usage charges. *Note:* Incurred charges that have not yet been reported in the transaction history of the Google Developers Console may be billed to the new billing account, even if the charge occurred before the new billing account was assigned to the project. The current authenticated user must have ownership privileges for both the [project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo ) and the [billing account](https://support.google.com/cloud/answer/4430947). You can disable billing on the project by setting the `billing_account_name` field to empty. This action disassociates the current billing account from the project. Any billable activity of your in-use services will stop, and your application could stop functioning as expected. Any unbilled charges to date will be billed to the previously associated account. The current authenticated user must be either an owner of the project or an owner of the billing account for the project. Note that associating a project with a *closed* billing account will have much the same effect as disabling billing on the project: any paid resources used by the project will be shut down. Thus, unless you wish to disable billing, you should always call this method with the name of an *open* billing account.</p>
+  <code><a href="#updateBillingInfo">updateBillingInfo(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets or updates the billing account associated with a project. You specify</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getBillingInfo">getBillingInfo(name, x__xgafv=None)</code>
-  <pre>Gets the billing information for a project. The current authenticated user must have [permission to view the project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo ).
+    <code class="details" id="getBillingInfo">getBillingInfo(name=None, x__xgafv=None)</code>
+  <pre>Gets the billing information for a project. The current authenticated user
+must have [permission to view the
+project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo
+).
 
 Args:
-  name: string, The resource name of the project for which billing information is retrieved. For example, `projects/tokyo-rain-123`. (required)
+  name: string, The resource name of the project for which billing information is
+retrieved. For example, `projects/tokyo-rain-123`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Encapsulation of billing information for a Developers Console project. A project has at most one associated billing account at a time (but a billing account can be assigned to multiple projects).
-    "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID. This field is read-only.
-    "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`. This field is read-only.
-    "billingEnabled": True or False, # True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services. This field is read-only.
-    "billingAccountName": "A String", # The resource name of the billing account associated with the project, if any. For example, `billingAccounts/012345-567890-ABCDEF`.
+    { # Encapsulation of billing information for a Cloud Console project. A project
+      # has at most one associated billing account at a time (but a billing account
+      # can be assigned to multiple projects).
+    "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as
+        # `tokyo-rain-123`. This is a convenience field so that you don't need to
+        # parse the `name` field to obtain a project ID. This field is read-only.
+    "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form
+        # `projects/{project_id}/billingInfo`. For example, the resource name for the
+        # billing information for project `tokyo-rain-123` would be
+        # `projects/tokyo-rain-123/billingInfo`. This field is read-only.
+    "billingEnabled": True or False, # True if the project is associated with an open billing account, to which
+        # usage on the project is charged. False if the project is associated with a
+        # closed billing account, or no billing account at all, and therefore cannot
+        # use paid services. This field is read-only.
+    "billingAccountName": "A String", # The resource name of the billing account associated with the project, if
+        # any. For example, `billingAccounts/012345-567890-ABCDEF`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="updateBillingInfo">updateBillingInfo(name, body, x__xgafv=None)</code>
-  <pre>Sets or updates the billing account associated with a project. You specify the new billing account by setting the `billing_account_name` in the `ProjectBillingInfo` resource to the resource name of a billing account. Associating a project with an open billing account enables billing on the project and allows charges for resource usage. If the project already had a billing account, this method changes the billing account used for resource usage charges. *Note:* Incurred charges that have not yet been reported in the transaction history of the Google Developers Console may be billed to the new billing account, even if the charge occurred before the new billing account was assigned to the project. The current authenticated user must have ownership privileges for both the [project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo ) and the [billing account](https://support.google.com/cloud/answer/4430947). You can disable billing on the project by setting the `billing_account_name` field to empty. This action disassociates the current billing account from the project. Any billable activity of your in-use services will stop, and your application could stop functioning as expected. Any unbilled charges to date will be billed to the previously associated account. The current authenticated user must be either an owner of the project or an owner of the billing account for the project. Note that associating a project with a *closed* billing account will have much the same effect as disabling billing on the project: any paid resources used by the project will be shut down. Thus, unless you wish to disable billing, you should always call this method with the name of an *open* billing account.
+    <code class="details" id="updateBillingInfo">updateBillingInfo(name=None, body, x__xgafv=None)</code>
+  <pre>Sets or updates the billing account associated with a project. You specify
+the new billing account by setting the `billing_account_name` in the
+`ProjectBillingInfo` resource to the resource name of a billing account.
+Associating a project with an open billing account enables billing on the
+project and allows charges for resource usage. If the project already had a
+billing account, this method changes the billing account used for resource
+usage charges.
+
+*Note:* Incurred charges that have not yet been reported in the transaction
+history of the Google Cloud Console may be billed to the new billing
+account, even if the charge occurred before the new billing account was
+assigned to the project.
+
+The current authenticated user must have ownership privileges for both the
+[project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo
+) and the [billing
+account](https://support.google.com/cloud/answer/4430947).
+
+You can disable billing on the project by setting the
+`billing_account_name` field to empty. This action disassociates the
+current billing account from the project. Any billable activity of your
+in-use services will stop, and your application could stop functioning as
+expected. Any unbilled charges to date will be billed to the previously
+associated account. The current authenticated user must be either an owner
+of the project or an owner of the billing account for the project.
+
+Note that associating a project with a *closed* billing account will have
+much the same effect as disabling billing on the project: any paid
+resources used by the project will be shut down. Thus, unless you wish to
+disable billing, you should always call this method with the name of an
+*open* billing account.
 
 Args:
-  name: string, The resource name of the project associated with the billing information that you want to update. For example, `projects/tokyo-rain-123`. (required)
+  name: string, The resource name of the project associated with the billing information
+that you want to update. For example, `projects/tokyo-rain-123`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Encapsulation of billing information for a Developers Console project. A project has at most one associated billing account at a time (but a billing account can be assigned to multiple projects).
-  "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID. This field is read-only.
-  "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`. This field is read-only.
-  "billingEnabled": True or False, # True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services. This field is read-only.
-  "billingAccountName": "A String", # The resource name of the billing account associated with the project, if any. For example, `billingAccounts/012345-567890-ABCDEF`.
+{ # Encapsulation of billing information for a Cloud Console project. A project
+    # has at most one associated billing account at a time (but a billing account
+    # can be assigned to multiple projects).
+  "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as
+      # `tokyo-rain-123`. This is a convenience field so that you don't need to
+      # parse the `name` field to obtain a project ID. This field is read-only.
+  "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form
+      # `projects/{project_id}/billingInfo`. For example, the resource name for the
+      # billing information for project `tokyo-rain-123` would be
+      # `projects/tokyo-rain-123/billingInfo`. This field is read-only.
+  "billingEnabled": True or False, # True if the project is associated with an open billing account, to which
+      # usage on the project is charged. False if the project is associated with a
+      # closed billing account, or no billing account at all, and therefore cannot
+      # use paid services. This field is read-only.
+  "billingAccountName": "A String", # The resource name of the billing account associated with the project, if
+      # any. For example, `billingAccounts/012345-567890-ABCDEF`.
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Encapsulation of billing information for a Developers Console project. A project has at most one associated billing account at a time (but a billing account can be assigned to multiple projects).
-    "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as `tokyo-rain-123`. This is a convenience field so that you don't need to parse the `name` field to obtain a project ID. This field is read-only.
-    "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form `projects/{project_id}/billingInfo`. For example, the resource name for the billing information for project `tokyo-rain-123` would be `projects/tokyo-rain-123/billingInfo`. This field is read-only.
-    "billingEnabled": True or False, # True if the project is associated with an open billing account, to which usage on the project is charged. False if the project is associated with a closed billing account, or no billing account at all, and therefore cannot use paid services. This field is read-only.
-    "billingAccountName": "A String", # The resource name of the billing account associated with the project, if any. For example, `billingAccounts/012345-567890-ABCDEF`.
+    { # Encapsulation of billing information for a Cloud Console project. A project
+      # has at most one associated billing account at a time (but a billing account
+      # can be assigned to multiple projects).
+    "projectId": "A String", # The ID of the project that this `ProjectBillingInfo` represents, such as
+        # `tokyo-rain-123`. This is a convenience field so that you don't need to
+        # parse the `name` field to obtain a project ID. This field is read-only.
+    "name": "A String", # The resource name for the `ProjectBillingInfo`; has the form
+        # `projects/{project_id}/billingInfo`. For example, the resource name for the
+        # billing information for project `tokyo-rain-123` would be
+        # `projects/tokyo-rain-123/billingInfo`. This field is read-only.
+    "billingEnabled": True or False, # True if the project is associated with an open billing account, to which
+        # usage on the project is charged. False if the project is associated with a
+        # closed billing account, or no billing account at all, and therefore cannot
+        # use paid services. This field is read-only.
+    "billingAccountName": "A String", # The resource name of the billing account associated with the project, if
+        # any. For example, `billingAccounts/012345-567890-ABCDEF`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudbuild_v1.operations.html b/docs/dyn/cloudbuild_v1.operations.html
index 88d0263..cd0b53c 100644
--- a/docs/dyn/cloudbuild_v1.operations.html
+++ b/docs/dyn/cloudbuild_v1.operations.html
@@ -152,22 +152,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -231,6 +215,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -266,22 +266,6 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -345,6 +329,22 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/cloudbuild_v1.projects.builds.html b/docs/dyn/cloudbuild_v1.projects.builds.html
index 8ae8b6e..3aa52c4 100644
--- a/docs/dyn/cloudbuild_v1.projects.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.builds.html
@@ -127,26 +127,24 @@
       # - $TAG_NAME: the tag name specified by RepoSource.
       # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
       #   resolved from the specified branch or tag.
-    "status": "A String", # Status of the build.
-        # @OutputOnly
     "finishTime": "A String", # Time at which execution of the build was finished.
         #
         # The difference between finish_time and start_time is the duration of the
         # build's execution.
         # @OutputOnly
+    "status": "A String", # Status of the build.
+        # @OutputOnly
     "timeout": "A String", # Amount of time that this build should be allowed to run, to second
         # granularity. If this amount of time elapses, work on the build will cease
         # and the build status will be TIMEOUT.
         #
         # Default time is ten minutes.
-    "statusDetail": "A String", # Customer-readable message about the current status.
-        # @OutputOnly
     "startTime": "A String", # Time at which execution of the build was started.
         # @OutputOnly
-    "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-        # [Bucket Name
-        # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-        # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+    "projectId": "A String", # ID of the project.
+        # @OutputOnly.
+    "id": "A String", # Unique identifier of the build.
+        # @OutputOnly
     "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
         # @OutputOnly
       "images": [ # Images that were built as a part of the build.
@@ -160,10 +158,11 @@
         "A String",
       ],
     },
-    "createTime": "A String", # Time at which the request to create the build was received.
+    "statusDetail": "A String", # Customer-readable message about the current status.
         # @OutputOnly
-    "id": "A String", # Unique identifier of the build.
-        # @OutputOnly
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
+    },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
       "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -184,21 +183,28 @@
         "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
             # the build is assumed.
         "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
         "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
       },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
         # @OutputOnly
+    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+      "requestedVerifyOption": "A String", # Requested verifiability options.
+      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+        "A String",
+      ],
+    },
     "steps": [ # Describes the operations to be performed on the workspace.
       { # BuildStep describes a step to perform in the build pipeline.
-        "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-            # This build step will not start until all the build steps in wait_for
-            # have completed successfully. If wait_for is empty, this build step will
-            # start when all previous build steps in the Build.Steps list have completed
-            # successfully.
+        "args": [ # A list of arguments that will be presented to the step when it is started.
+            #
+            # If the image used to run the step's container has an entrypoint, these args
+            # will be used as arguments to that entrypoint. If the image does not define
+            # an entrypoint, the first element in args will be used as the entrypoint,
+            # and the remainder will be used as arguments.
           "A String",
         ],
         "name": "A String", # The name of the container image that will run this particular build step.
@@ -217,14 +223,15 @@
             # If you built an image in a previous build step, it will be stored in the
             # host's Docker daemon's cache and is available to use as the name for a
             # later build step.
-        "args": [ # A list of arguments that will be presented to the step when it is started.
-            #
-            # If the image used to run the step's container has an entrypoint, these args
-            # will be used as arguments to that entrypoint. If the image does not define
-            # an entrypoint, the first element in args will be used as the entrypoint,
-            # and the remainder will be used as arguments.
+        "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+            # This build step will not start until all the build steps in wait_for
+            # have completed successfully. If wait_for is empty, this build step will
+            # start when all previous build steps in the Build.Steps list have completed
+            # successfully.
           "A String",
         ],
+        "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+            # If unset, the image's default will be used.
         "env": [ # A list of environment variable definitions to be used when running a step.
             #
             # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -240,15 +247,18 @@
     "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
         # @OutputOnly
         # some source was used for this build.
-      "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-          # revisions resolved.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
+      "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+          # generations resolved.
+          # Google Cloud Storage.
+        "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+            # omitted, the latest generation will be used.
+        "object": "A String", # Google Cloud Storage object containing source.
+            #
+            # This object must be a gzipped archive file (.tar.gz) containing source to
+            # build.
+        "bucket": "A String", # Google Cloud Storage bucket containing source (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
       "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
           # source integrity was maintained in the build. Note that FileHashes will
@@ -270,22 +280,21 @@
           ],
         },
       },
-      "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-          # generations resolved.
-          # Google Cloud Storage.
-        "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-            # omitted, the latest generation will be used.
-        "object": "A String", # Google Cloud Storage object containing source.
-            #
-            # This object must be a gzipped archive file (.tar.gz) containing source to
-            # build.
-        "bucket": "A String", # Google Cloud Storage bucket containing source (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+      "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+          # revisions resolved.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
       },
     },
-    "projectId": "A String", # ID of the project.
-        # @OutputOnly.
+    "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+        # [Bucket Name
+        # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+        # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
     "images": [ # A list of images to be pushed upon the successful completion of all build
         # steps.
         #
@@ -297,12 +306,8 @@
         # If any of the images fail to be pushed, the build is marked FAILURE.
       "A String",
     ],
-    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-      "requestedVerifyOption": "A String", # Requested verifiability options.
-      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-        "A String",
-      ],
-    },
+    "createTime": "A String", # Time at which the request to create the build was received.
+        # @OutputOnly
     "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
         # @OutputOnly
   }</pre>
@@ -337,26 +342,24 @@
     # - $TAG_NAME: the tag name specified by RepoSource.
     # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
     #   resolved from the specified branch or tag.
-  "status": "A String", # Status of the build.
-      # @OutputOnly
   "finishTime": "A String", # Time at which execution of the build was finished.
       # 
       # The difference between finish_time and start_time is the duration of the
       # build's execution.
       # @OutputOnly
+  "status": "A String", # Status of the build.
+      # @OutputOnly
   "timeout": "A String", # Amount of time that this build should be allowed to run, to second
       # granularity. If this amount of time elapses, work on the build will cease
       # and the build status will be TIMEOUT.
       # 
       # Default time is ten minutes.
-  "statusDetail": "A String", # Customer-readable message about the current status.
-      # @OutputOnly
   "startTime": "A String", # Time at which execution of the build was started.
       # @OutputOnly
-  "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-      # [Bucket Name
-      # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-      # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+  "projectId": "A String", # ID of the project.
+      # @OutputOnly.
+  "id": "A String", # Unique identifier of the build.
+      # @OutputOnly
   "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
       # @OutputOnly
     "images": [ # Images that were built as a part of the build.
@@ -370,10 +373,11 @@
       "A String",
     ],
   },
-  "createTime": "A String", # Time at which the request to create the build was received.
+  "statusDetail": "A String", # Customer-readable message about the current status.
       # @OutputOnly
-  "id": "A String", # Unique identifier of the build.
-      # @OutputOnly
+  "substitutions": { # Substitutions data for Build resource.
+    "a_key": "A String",
+  },
   "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
       # service.
     "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -394,21 +398,28 @@
       "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
           # the build is assumed.
       "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
       "commitSha": "A String", # Explicit commit SHA to build.
+      "tagName": "A String", # Name of the tag to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
     },
   },
   "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
       # triggered automatically.
       # @OutputOnly
+  "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+    "requestedVerifyOption": "A String", # Requested verifiability options.
+    "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+      "A String",
+    ],
+  },
   "steps": [ # Describes the operations to be performed on the workspace.
     { # BuildStep describes a step to perform in the build pipeline.
-      "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-          # This build step will not start until all the build steps in wait_for
-          # have completed successfully. If wait_for is empty, this build step will
-          # start when all previous build steps in the Build.Steps list have completed
-          # successfully.
+      "args": [ # A list of arguments that will be presented to the step when it is started.
+          #
+          # If the image used to run the step's container has an entrypoint, these args
+          # will be used as arguments to that entrypoint. If the image does not define
+          # an entrypoint, the first element in args will be used as the entrypoint,
+          # and the remainder will be used as arguments.
         "A String",
       ],
       "name": "A String", # The name of the container image that will run this particular build step.
@@ -427,14 +438,15 @@
           # If you built an image in a previous build step, it will be stored in the
           # host's Docker daemon's cache and is available to use as the name for a
           # later build step.
-      "args": [ # A list of arguments that will be presented to the step when it is started.
-          #
-          # If the image used to run the step's container has an entrypoint, these args
-          # will be used as arguments to that entrypoint. If the image does not define
-          # an entrypoint, the first element in args will be used as the entrypoint,
-          # and the remainder will be used as arguments.
+      "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+          # This build step will not start until all the build steps in wait_for
+          # have completed successfully. If wait_for is empty, this build step will
+          # start when all previous build steps in the Build.Steps list have completed
+          # successfully.
         "A String",
       ],
+      "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+          # If unset, the image's default will be used.
       "env": [ # A list of environment variable definitions to be used when running a step.
           #
           # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -450,15 +462,18 @@
   "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
       # @OutputOnly
       # some source was used for this build.
-    "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-        # revisions resolved.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
+    "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+        # generations resolved.
+        # Google Cloud Storage.
+      "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+          # omitted, the latest generation will be used.
+      "object": "A String", # Google Cloud Storage object containing source.
+          #
+          # This object must be a gzipped archive file (.tar.gz) containing source to
+          # build.
+      "bucket": "A String", # Google Cloud Storage bucket containing source (see
+          # [Bucket Name
+          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
     },
     "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
         # source integrity was maintained in the build. Note that FileHashes will
@@ -480,22 +495,21 @@
         ],
       },
     },
-    "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-        # generations resolved.
-        # Google Cloud Storage.
-      "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-          # omitted, the latest generation will be used.
-      "object": "A String", # Google Cloud Storage object containing source.
-          #
-          # This object must be a gzipped archive file (.tar.gz) containing source to
-          # build.
-      "bucket": "A String", # Google Cloud Storage bucket containing source (see
-          # [Bucket Name
-          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+    "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+        # revisions resolved.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+      "tagName": "A String", # Name of the tag to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
     },
   },
-  "projectId": "A String", # ID of the project.
-      # @OutputOnly.
+  "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+      # [Bucket Name
+      # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+      # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
   "images": [ # A list of images to be pushed upon the successful completion of all build
       # steps.
       # 
@@ -507,12 +521,8 @@
       # If any of the images fail to be pushed, the build is marked FAILURE.
     "A String",
   ],
-  "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-    "requestedVerifyOption": "A String", # Requested verifiability options.
-    "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-      "A String",
-    ],
-  },
+  "createTime": "A String", # Time at which the request to create the build was received.
+      # @OutputOnly
   "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
       # @OutputOnly
 }
@@ -533,22 +543,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -612,6 +606,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -649,26 +659,24 @@
       # - $TAG_NAME: the tag name specified by RepoSource.
       # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
       #   resolved from the specified branch or tag.
-    "status": "A String", # Status of the build.
-        # @OutputOnly
     "finishTime": "A String", # Time at which execution of the build was finished.
         #
         # The difference between finish_time and start_time is the duration of the
         # build's execution.
         # @OutputOnly
+    "status": "A String", # Status of the build.
+        # @OutputOnly
     "timeout": "A String", # Amount of time that this build should be allowed to run, to second
         # granularity. If this amount of time elapses, work on the build will cease
         # and the build status will be TIMEOUT.
         #
         # Default time is ten minutes.
-    "statusDetail": "A String", # Customer-readable message about the current status.
-        # @OutputOnly
     "startTime": "A String", # Time at which execution of the build was started.
         # @OutputOnly
-    "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-        # [Bucket Name
-        # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-        # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+    "projectId": "A String", # ID of the project.
+        # @OutputOnly.
+    "id": "A String", # Unique identifier of the build.
+        # @OutputOnly
     "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
         # @OutputOnly
       "images": [ # Images that were built as a part of the build.
@@ -682,10 +690,11 @@
         "A String",
       ],
     },
-    "createTime": "A String", # Time at which the request to create the build was received.
+    "statusDetail": "A String", # Customer-readable message about the current status.
         # @OutputOnly
-    "id": "A String", # Unique identifier of the build.
-        # @OutputOnly
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
+    },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
       "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -706,21 +715,28 @@
         "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
             # the build is assumed.
         "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
         "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
       },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
         # @OutputOnly
+    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+      "requestedVerifyOption": "A String", # Requested verifiability options.
+      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+        "A String",
+      ],
+    },
     "steps": [ # Describes the operations to be performed on the workspace.
       { # BuildStep describes a step to perform in the build pipeline.
-        "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-            # This build step will not start until all the build steps in wait_for
-            # have completed successfully. If wait_for is empty, this build step will
-            # start when all previous build steps in the Build.Steps list have completed
-            # successfully.
+        "args": [ # A list of arguments that will be presented to the step when it is started.
+            #
+            # If the image used to run the step's container has an entrypoint, these args
+            # will be used as arguments to that entrypoint. If the image does not define
+            # an entrypoint, the first element in args will be used as the entrypoint,
+            # and the remainder will be used as arguments.
           "A String",
         ],
         "name": "A String", # The name of the container image that will run this particular build step.
@@ -739,14 +755,15 @@
             # If you built an image in a previous build step, it will be stored in the
             # host's Docker daemon's cache and is available to use as the name for a
             # later build step.
-        "args": [ # A list of arguments that will be presented to the step when it is started.
-            #
-            # If the image used to run the step's container has an entrypoint, these args
-            # will be used as arguments to that entrypoint. If the image does not define
-            # an entrypoint, the first element in args will be used as the entrypoint,
-            # and the remainder will be used as arguments.
+        "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+            # This build step will not start until all the build steps in wait_for
+            # have completed successfully. If wait_for is empty, this build step will
+            # start when all previous build steps in the Build.Steps list have completed
+            # successfully.
           "A String",
         ],
+        "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+            # If unset, the image's default will be used.
         "env": [ # A list of environment variable definitions to be used when running a step.
             #
             # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -762,15 +779,18 @@
     "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
         # @OutputOnly
         # some source was used for this build.
-      "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-          # revisions resolved.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
+      "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+          # generations resolved.
+          # Google Cloud Storage.
+        "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+            # omitted, the latest generation will be used.
+        "object": "A String", # Google Cloud Storage object containing source.
+            #
+            # This object must be a gzipped archive file (.tar.gz) containing source to
+            # build.
+        "bucket": "A String", # Google Cloud Storage bucket containing source (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
       "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
           # source integrity was maintained in the build. Note that FileHashes will
@@ -792,22 +812,21 @@
           ],
         },
       },
-      "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-          # generations resolved.
-          # Google Cloud Storage.
-        "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-            # omitted, the latest generation will be used.
-        "object": "A String", # Google Cloud Storage object containing source.
-            #
-            # This object must be a gzipped archive file (.tar.gz) containing source to
-            # build.
-        "bucket": "A String", # Google Cloud Storage bucket containing source (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+      "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+          # revisions resolved.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
       },
     },
-    "projectId": "A String", # ID of the project.
-        # @OutputOnly.
+    "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+        # [Bucket Name
+        # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+        # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
     "images": [ # A list of images to be pushed upon the successful completion of all build
         # steps.
         #
@@ -819,12 +838,8 @@
         # If any of the images fail to be pushed, the build is marked FAILURE.
       "A String",
     ],
-    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-      "requestedVerifyOption": "A String", # Requested verifiability options.
-      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-        "A String",
-      ],
-    },
+    "createTime": "A String", # Time at which the request to create the build was received.
+        # @OutputOnly
     "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
         # @OutputOnly
   }</pre>
@@ -869,26 +884,24 @@
           # - $TAG_NAME: the tag name specified by RepoSource.
           # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
           #   resolved from the specified branch or tag.
-        "status": "A String", # Status of the build.
-            # @OutputOnly
         "finishTime": "A String", # Time at which execution of the build was finished.
             #
             # The difference between finish_time and start_time is the duration of the
             # build's execution.
             # @OutputOnly
+        "status": "A String", # Status of the build.
+            # @OutputOnly
         "timeout": "A String", # Amount of time that this build should be allowed to run, to second
             # granularity. If this amount of time elapses, work on the build will cease
             # and the build status will be TIMEOUT.
             #
             # Default time is ten minutes.
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
-        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+        "projectId": "A String", # ID of the project.
+            # @OutputOnly.
+        "id": "A String", # Unique identifier of the build.
+            # @OutputOnly
         "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
             # @OutputOnly
           "images": [ # Images that were built as a part of the build.
@@ -902,10 +915,11 @@
             "A String",
           ],
         },
-        "createTime": "A String", # Time at which the request to create the build was received.
+        "statusDetail": "A String", # Customer-readable message about the current status.
             # @OutputOnly
-        "id": "A String", # Unique identifier of the build.
-            # @OutputOnly
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
+        },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -926,21 +940,28 @@
             "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
                 # the build is assumed.
             "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
             "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
-            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-                # This build step will not start until all the build steps in wait_for
-                # have completed successfully. If wait_for is empty, this build step will
-                # start when all previous build steps in the Build.Steps list have completed
-                # successfully.
+            "args": [ # A list of arguments that will be presented to the step when it is started.
+                #
+                # If the image used to run the step's container has an entrypoint, these args
+                # will be used as arguments to that entrypoint. If the image does not define
+                # an entrypoint, the first element in args will be used as the entrypoint,
+                # and the remainder will be used as arguments.
               "A String",
             ],
             "name": "A String", # The name of the container image that will run this particular build step.
@@ -959,14 +980,15 @@
                 # If you built an image in a previous build step, it will be stored in the
                 # host's Docker daemon's cache and is available to use as the name for a
                 # later build step.
-            "args": [ # A list of arguments that will be presented to the step when it is started.
-                #
-                # If the image used to run the step's container has an entrypoint, these args
-                # will be used as arguments to that entrypoint. If the image does not define
-                # an entrypoint, the first element in args will be used as the entrypoint,
-                # and the remainder will be used as arguments.
+            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+                # This build step will not start until all the build steps in wait_for
+                # have completed successfully. If wait_for is empty, this build step will
+                # start when all previous build steps in the Build.Steps list have completed
+                # successfully.
               "A String",
             ],
+            "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+                # If unset, the image's default will be used.
             "env": [ # A list of environment variable definitions to be used when running a step.
                 #
                 # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -982,15 +1004,18 @@
         "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
             # @OutputOnly
             # some source was used for this build.
-          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-              # revisions resolved.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
+          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+              # generations resolved.
+              # Google Cloud Storage.
+            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+                # omitted, the latest generation will be used.
+            "object": "A String", # Google Cloud Storage object containing source.
+                #
+                # This object must be a gzipped archive file (.tar.gz) containing source to
+                # build.
+            "bucket": "A String", # Google Cloud Storage bucket containing source (see
+                # [Bucket Name
+                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
           "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
               # source integrity was maintained in the build. Note that FileHashes will
@@ -1012,22 +1037,21 @@
               ],
             },
           },
-          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-              # generations resolved.
-              # Google Cloud Storage.
-            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-                # omitted, the latest generation will be used.
-            "object": "A String", # Google Cloud Storage object containing source.
-                #
-                # This object must be a gzipped archive file (.tar.gz) containing source to
-                # build.
-            "bucket": "A String", # Google Cloud Storage bucket containing source (see
-                # [Bucket Name
-                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+              # revisions resolved.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
-        "projectId": "A String", # ID of the project.
-            # @OutputOnly.
+        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
         "images": [ # A list of images to be pushed upon the successful completion of all build
             # steps.
             #
@@ -1039,12 +1063,8 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
-        },
+        "createTime": "A String", # Time at which the request to create the build was received.
+            # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index bf98749..6ca863a 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -104,11 +104,25 @@
 { # Configuration for an automated build in response to source repository
       # changes.
     "description": "A String", # Human-readable description of this trigger.
+    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+        # 
+        # Branch and tag names in trigger templates are interpreted as regular
+        # expressions. Any branch or tag change that matches that regular expression
+        # will trigger a build.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+      "tagName": "A String", # Name of the tag to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+    },
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @OutputOnly
-    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-        # template.
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
+    },
     "disabled": True or False, # If true, the trigger will never result in a build.
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
@@ -126,26 +140,24 @@
         # - $TAG_NAME: the tag name specified by RepoSource.
         # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
         #   resolved from the specified branch or tag.
-      "status": "A String", # Status of the build.
-          # @OutputOnly
       "finishTime": "A String", # Time at which execution of the build was finished.
           #
           # The difference between finish_time and start_time is the duration of the
           # build's execution.
           # @OutputOnly
+      "status": "A String", # Status of the build.
+          # @OutputOnly
       "timeout": "A String", # Amount of time that this build should be allowed to run, to second
           # granularity. If this amount of time elapses, work on the build will cease
           # and the build status will be TIMEOUT.
           #
           # Default time is ten minutes.
-      "statusDetail": "A String", # Customer-readable message about the current status.
-          # @OutputOnly
       "startTime": "A String", # Time at which execution of the build was started.
           # @OutputOnly
-      "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-          # [Bucket Name
-          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-          # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+      "projectId": "A String", # ID of the project.
+          # @OutputOnly.
+      "id": "A String", # Unique identifier of the build.
+          # @OutputOnly
       "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
           # @OutputOnly
         "images": [ # Images that were built as a part of the build.
@@ -159,10 +171,11 @@
           "A String",
         ],
       },
-      "createTime": "A String", # Time at which the request to create the build was received.
+      "statusDetail": "A String", # Customer-readable message about the current status.
           # @OutputOnly
-      "id": "A String", # Unique identifier of the build.
-          # @OutputOnly
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
+      },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
         "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -183,21 +196,28 @@
           "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
               # the build is assumed.
           "branchName": "A String", # Name of the branch to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          "tagName": "A String", # Name of the tag to build.
           "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
         },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
           # @OutputOnly
+      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+        "requestedVerifyOption": "A String", # Requested verifiability options.
+        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+          "A String",
+        ],
+      },
       "steps": [ # Describes the operations to be performed on the workspace.
         { # BuildStep describes a step to perform in the build pipeline.
-          "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-              # This build step will not start until all the build steps in wait_for
-              # have completed successfully. If wait_for is empty, this build step will
-              # start when all previous build steps in the Build.Steps list have completed
-              # successfully.
+          "args": [ # A list of arguments that will be presented to the step when it is started.
+              #
+              # If the image used to run the step's container has an entrypoint, these args
+              # will be used as arguments to that entrypoint. If the image does not define
+              # an entrypoint, the first element in args will be used as the entrypoint,
+              # and the remainder will be used as arguments.
             "A String",
           ],
           "name": "A String", # The name of the container image that will run this particular build step.
@@ -216,14 +236,15 @@
               # If you built an image in a previous build step, it will be stored in the
               # host's Docker daemon's cache and is available to use as the name for a
               # later build step.
-          "args": [ # A list of arguments that will be presented to the step when it is started.
-              #
-              # If the image used to run the step's container has an entrypoint, these args
-              # will be used as arguments to that entrypoint. If the image does not define
-              # an entrypoint, the first element in args will be used as the entrypoint,
-              # and the remainder will be used as arguments.
+          "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+              # This build step will not start until all the build steps in wait_for
+              # have completed successfully. If wait_for is empty, this build step will
+              # start when all previous build steps in the Build.Steps list have completed
+              # successfully.
             "A String",
           ],
+          "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+              # If unset, the image's default will be used.
           "env": [ # A list of environment variable definitions to be used when running a step.
               #
               # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -239,15 +260,18 @@
       "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
           # @OutputOnly
           # some source was used for this build.
-        "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-            # revisions resolved.
-            # Repository.
-          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-              # the build is assumed.
-          "branchName": "A String", # Name of the branch to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          "tagName": "A String", # Name of the tag to build.
-          "commitSha": "A String", # Explicit commit SHA to build.
+        "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+            # generations resolved.
+            # Google Cloud Storage.
+          "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+              # omitted, the latest generation will be used.
+          "object": "A String", # Google Cloud Storage object containing source.
+              #
+              # This object must be a gzipped archive file (.tar.gz) containing source to
+              # build.
+          "bucket": "A String", # Google Cloud Storage bucket containing source (see
+              # [Bucket Name
+              # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
         "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
             # source integrity was maintained in the build. Note that FileHashes will
@@ -269,22 +293,21 @@
             ],
           },
         },
-        "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-            # generations resolved.
-            # Google Cloud Storage.
-          "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-              # omitted, the latest generation will be used.
-          "object": "A String", # Google Cloud Storage object containing source.
-              #
-              # This object must be a gzipped archive file (.tar.gz) containing source to
-              # build.
-          "bucket": "A String", # Google Cloud Storage bucket containing source (see
-              # [Bucket Name
-              # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+        "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+            # revisions resolved.
+            # Repository.
+          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+              # the build is assumed.
+          "branchName": "A String", # Name of the branch to build.
+          "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
         },
       },
-      "projectId": "A String", # ID of the project.
-          # @OutputOnly.
+      "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+          # [Bucket Name
+          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
       "images": [ # A list of images to be pushed upon the successful completion of all build
           # steps.
           #
@@ -296,31 +319,16 @@
           # If any of the images fail to be pushed, the build is marked FAILURE.
         "A String",
       ],
-      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-        "requestedVerifyOption": "A String", # Requested verifiability options.
-        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-          "A String",
-        ],
-      },
+      "createTime": "A String", # Time at which the request to create the build was received.
+          # @OutputOnly
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
           # @OutputOnly
     },
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
-    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-        # 
-        # Branch and tag names in trigger templates are interpreted as regular
-        # expressions. Any branch or tag change that matches that regular expression
-        # will trigger a build.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
-    },
   }
 
   x__xgafv: string, V1 error format.
@@ -334,11 +342,25 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      },
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
+      },
       "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
@@ -356,26 +378,24 @@
           # - $TAG_NAME: the tag name specified by RepoSource.
           # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
           #   resolved from the specified branch or tag.
-        "status": "A String", # Status of the build.
-            # @OutputOnly
         "finishTime": "A String", # Time at which execution of the build was finished.
             #
             # The difference between finish_time and start_time is the duration of the
             # build's execution.
             # @OutputOnly
+        "status": "A String", # Status of the build.
+            # @OutputOnly
         "timeout": "A String", # Amount of time that this build should be allowed to run, to second
             # granularity. If this amount of time elapses, work on the build will cease
             # and the build status will be TIMEOUT.
             #
             # Default time is ten minutes.
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
-        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+        "projectId": "A String", # ID of the project.
+            # @OutputOnly.
+        "id": "A String", # Unique identifier of the build.
+            # @OutputOnly
         "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
             # @OutputOnly
           "images": [ # Images that were built as a part of the build.
@@ -389,10 +409,11 @@
             "A String",
           ],
         },
-        "createTime": "A String", # Time at which the request to create the build was received.
+        "statusDetail": "A String", # Customer-readable message about the current status.
             # @OutputOnly
-        "id": "A String", # Unique identifier of the build.
-            # @OutputOnly
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
+        },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -413,21 +434,28 @@
             "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
                 # the build is assumed.
             "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
             "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
-            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-                # This build step will not start until all the build steps in wait_for
-                # have completed successfully. If wait_for is empty, this build step will
-                # start when all previous build steps in the Build.Steps list have completed
-                # successfully.
+            "args": [ # A list of arguments that will be presented to the step when it is started.
+                #
+                # If the image used to run the step's container has an entrypoint, these args
+                # will be used as arguments to that entrypoint. If the image does not define
+                # an entrypoint, the first element in args will be used as the entrypoint,
+                # and the remainder will be used as arguments.
               "A String",
             ],
             "name": "A String", # The name of the container image that will run this particular build step.
@@ -446,14 +474,15 @@
                 # If you built an image in a previous build step, it will be stored in the
                 # host's Docker daemon's cache and is available to use as the name for a
                 # later build step.
-            "args": [ # A list of arguments that will be presented to the step when it is started.
-                #
-                # If the image used to run the step's container has an entrypoint, these args
-                # will be used as arguments to that entrypoint. If the image does not define
-                # an entrypoint, the first element in args will be used as the entrypoint,
-                # and the remainder will be used as arguments.
+            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+                # This build step will not start until all the build steps in wait_for
+                # have completed successfully. If wait_for is empty, this build step will
+                # start when all previous build steps in the Build.Steps list have completed
+                # successfully.
               "A String",
             ],
+            "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+                # If unset, the image's default will be used.
             "env": [ # A list of environment variable definitions to be used when running a step.
                 #
                 # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -469,15 +498,18 @@
         "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
             # @OutputOnly
             # some source was used for this build.
-          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-              # revisions resolved.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
+          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+              # generations resolved.
+              # Google Cloud Storage.
+            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+                # omitted, the latest generation will be used.
+            "object": "A String", # Google Cloud Storage object containing source.
+                #
+                # This object must be a gzipped archive file (.tar.gz) containing source to
+                # build.
+            "bucket": "A String", # Google Cloud Storage bucket containing source (see
+                # [Bucket Name
+                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
           "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
               # source integrity was maintained in the build. Note that FileHashes will
@@ -499,22 +531,21 @@
               ],
             },
           },
-          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-              # generations resolved.
-              # Google Cloud Storage.
-            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-                # omitted, the latest generation will be used.
-            "object": "A String", # Google Cloud Storage object containing source.
-                #
-                # This object must be a gzipped archive file (.tar.gz) containing source to
-                # build.
-            "bucket": "A String", # Google Cloud Storage bucket containing source (see
-                # [Bucket Name
-                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+              # revisions resolved.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
-        "projectId": "A String", # ID of the project.
-            # @OutputOnly.
+        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
         "images": [ # A list of images to be pushed upon the successful completion of all build
             # steps.
             #
@@ -526,31 +557,16 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
-        },
+        "createTime": "A String", # Time at which the request to create the build was received.
+            # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
     }</pre>
 </div>
 
@@ -603,11 +619,25 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      },
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
+      },
       "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
@@ -625,26 +655,24 @@
           # - $TAG_NAME: the tag name specified by RepoSource.
           # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
           #   resolved from the specified branch or tag.
-        "status": "A String", # Status of the build.
-            # @OutputOnly
         "finishTime": "A String", # Time at which execution of the build was finished.
             #
             # The difference between finish_time and start_time is the duration of the
             # build's execution.
             # @OutputOnly
+        "status": "A String", # Status of the build.
+            # @OutputOnly
         "timeout": "A String", # Amount of time that this build should be allowed to run, to second
             # granularity. If this amount of time elapses, work on the build will cease
             # and the build status will be TIMEOUT.
             #
             # Default time is ten minutes.
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
-        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+        "projectId": "A String", # ID of the project.
+            # @OutputOnly.
+        "id": "A String", # Unique identifier of the build.
+            # @OutputOnly
         "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
             # @OutputOnly
           "images": [ # Images that were built as a part of the build.
@@ -658,10 +686,11 @@
             "A String",
           ],
         },
-        "createTime": "A String", # Time at which the request to create the build was received.
+        "statusDetail": "A String", # Customer-readable message about the current status.
             # @OutputOnly
-        "id": "A String", # Unique identifier of the build.
-            # @OutputOnly
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
+        },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -682,21 +711,28 @@
             "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
                 # the build is assumed.
             "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
             "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
-            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-                # This build step will not start until all the build steps in wait_for
-                # have completed successfully. If wait_for is empty, this build step will
-                # start when all previous build steps in the Build.Steps list have completed
-                # successfully.
+            "args": [ # A list of arguments that will be presented to the step when it is started.
+                #
+                # If the image used to run the step's container has an entrypoint, these args
+                # will be used as arguments to that entrypoint. If the image does not define
+                # an entrypoint, the first element in args will be used as the entrypoint,
+                # and the remainder will be used as arguments.
               "A String",
             ],
             "name": "A String", # The name of the container image that will run this particular build step.
@@ -715,14 +751,15 @@
                 # If you built an image in a previous build step, it will be stored in the
                 # host's Docker daemon's cache and is available to use as the name for a
                 # later build step.
-            "args": [ # A list of arguments that will be presented to the step when it is started.
-                #
-                # If the image used to run the step's container has an entrypoint, these args
-                # will be used as arguments to that entrypoint. If the image does not define
-                # an entrypoint, the first element in args will be used as the entrypoint,
-                # and the remainder will be used as arguments.
+            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+                # This build step will not start until all the build steps in wait_for
+                # have completed successfully. If wait_for is empty, this build step will
+                # start when all previous build steps in the Build.Steps list have completed
+                # successfully.
               "A String",
             ],
+            "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+                # If unset, the image's default will be used.
             "env": [ # A list of environment variable definitions to be used when running a step.
                 #
                 # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -738,15 +775,18 @@
         "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
             # @OutputOnly
             # some source was used for this build.
-          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-              # revisions resolved.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
+          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+              # generations resolved.
+              # Google Cloud Storage.
+            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+                # omitted, the latest generation will be used.
+            "object": "A String", # Google Cloud Storage object containing source.
+                #
+                # This object must be a gzipped archive file (.tar.gz) containing source to
+                # build.
+            "bucket": "A String", # Google Cloud Storage bucket containing source (see
+                # [Bucket Name
+                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
           "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
               # source integrity was maintained in the build. Note that FileHashes will
@@ -768,22 +808,21 @@
               ],
             },
           },
-          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-              # generations resolved.
-              # Google Cloud Storage.
-            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-                # omitted, the latest generation will be used.
-            "object": "A String", # Google Cloud Storage object containing source.
-                #
-                # This object must be a gzipped archive file (.tar.gz) containing source to
-                # build.
-            "bucket": "A String", # Google Cloud Storage bucket containing source (see
-                # [Bucket Name
-                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+              # revisions resolved.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
-        "projectId": "A String", # ID of the project.
-            # @OutputOnly.
+        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
         "images": [ # A list of images to be pushed upon the successful completion of all build
             # steps.
             #
@@ -795,31 +834,16 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
-        },
+        "createTime": "A String", # Time at which the request to create the build was received.
+            # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
     }</pre>
 </div>
 
@@ -844,11 +868,25 @@
       { # Configuration for an automated build in response to source repository
             # changes.
           "description": "A String", # Human-readable description of this trigger.
+          "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+              #
+              # Branch and tag names in trigger templates are interpreted as regular
+              # expressions. Any branch or tag change that matches that regular expression
+              # will trigger a build.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+          },
           "createTime": "A String", # Time when the trigger was created.
               #
               # @OutputOnly
-          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-              # template.
+          "substitutions": { # Substitutions data for Build resource.
+            "a_key": "A String",
+          },
           "disabled": True or False, # If true, the trigger will never result in a build.
           "build": { # A build resource in the Container Builder API. # Contents of the build template.
               #
@@ -866,26 +904,24 @@
               # - $TAG_NAME: the tag name specified by RepoSource.
               # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
               #   resolved from the specified branch or tag.
-            "status": "A String", # Status of the build.
-                # @OutputOnly
             "finishTime": "A String", # Time at which execution of the build was finished.
                 #
                 # The difference between finish_time and start_time is the duration of the
                 # build's execution.
                 # @OutputOnly
+            "status": "A String", # Status of the build.
+                # @OutputOnly
             "timeout": "A String", # Amount of time that this build should be allowed to run, to second
                 # granularity. If this amount of time elapses, work on the build will cease
                 # and the build status will be TIMEOUT.
                 #
                 # Default time is ten minutes.
-            "statusDetail": "A String", # Customer-readable message about the current status.
-                # @OutputOnly
             "startTime": "A String", # Time at which execution of the build was started.
                 # @OutputOnly
-            "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-                # [Bucket Name
-                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-                # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+            "projectId": "A String", # ID of the project.
+                # @OutputOnly.
+            "id": "A String", # Unique identifier of the build.
+                # @OutputOnly
             "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
                 # @OutputOnly
               "images": [ # Images that were built as a part of the build.
@@ -899,10 +935,11 @@
                 "A String",
               ],
             },
-            "createTime": "A String", # Time at which the request to create the build was received.
+            "statusDetail": "A String", # Customer-readable message about the current status.
                 # @OutputOnly
-            "id": "A String", # Unique identifier of the build.
-                # @OutputOnly
+            "substitutions": { # Substitutions data for Build resource.
+              "a_key": "A String",
+            },
             "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
                 # service.
               "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -923,21 +960,28 @@
                 "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
                     # the build is assumed.
                 "branchName": "A String", # Name of the branch to build.
-                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-                "tagName": "A String", # Name of the tag to build.
                 "commitSha": "A String", # Explicit commit SHA to build.
+                "tagName": "A String", # Name of the tag to build.
+                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
               },
             },
             "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
                 # triggered automatically.
                 # @OutputOnly
+            "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+              "requestedVerifyOption": "A String", # Requested verifiability options.
+              "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+                "A String",
+              ],
+            },
             "steps": [ # Describes the operations to be performed on the workspace.
               { # BuildStep describes a step to perform in the build pipeline.
-                "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-                    # This build step will not start until all the build steps in wait_for
-                    # have completed successfully. If wait_for is empty, this build step will
-                    # start when all previous build steps in the Build.Steps list have completed
-                    # successfully.
+                "args": [ # A list of arguments that will be presented to the step when it is started.
+                    #
+                    # If the image used to run the step's container has an entrypoint, these args
+                    # will be used as arguments to that entrypoint. If the image does not define
+                    # an entrypoint, the first element in args will be used as the entrypoint,
+                    # and the remainder will be used as arguments.
                   "A String",
                 ],
                 "name": "A String", # The name of the container image that will run this particular build step.
@@ -956,14 +1000,15 @@
                     # If you built an image in a previous build step, it will be stored in the
                     # host's Docker daemon's cache and is available to use as the name for a
                     # later build step.
-                "args": [ # A list of arguments that will be presented to the step when it is started.
-                    #
-                    # If the image used to run the step's container has an entrypoint, these args
-                    # will be used as arguments to that entrypoint. If the image does not define
-                    # an entrypoint, the first element in args will be used as the entrypoint,
-                    # and the remainder will be used as arguments.
+                "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+                    # This build step will not start until all the build steps in wait_for
+                    # have completed successfully. If wait_for is empty, this build step will
+                    # start when all previous build steps in the Build.Steps list have completed
+                    # successfully.
                   "A String",
                 ],
+                "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+                    # If unset, the image's default will be used.
                 "env": [ # A list of environment variable definitions to be used when running a step.
                     #
                     # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -979,15 +1024,18 @@
             "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
                 # @OutputOnly
                 # some source was used for this build.
-              "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-                  # revisions resolved.
-                  # Repository.
-                "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                    # the build is assumed.
-                "branchName": "A String", # Name of the branch to build.
-                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-                "tagName": "A String", # Name of the tag to build.
-                "commitSha": "A String", # Explicit commit SHA to build.
+              "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+                  # generations resolved.
+                  # Google Cloud Storage.
+                "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+                    # omitted, the latest generation will be used.
+                "object": "A String", # Google Cloud Storage object containing source.
+                    #
+                    # This object must be a gzipped archive file (.tar.gz) containing source to
+                    # build.
+                "bucket": "A String", # Google Cloud Storage bucket containing source (see
+                    # [Bucket Name
+                    # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
               },
               "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
                   # source integrity was maintained in the build. Note that FileHashes will
@@ -1009,22 +1057,21 @@
                   ],
                 },
               },
-              "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-                  # generations resolved.
-                  # Google Cloud Storage.
-                "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-                    # omitted, the latest generation will be used.
-                "object": "A String", # Google Cloud Storage object containing source.
-                    #
-                    # This object must be a gzipped archive file (.tar.gz) containing source to
-                    # build.
-                "bucket": "A String", # Google Cloud Storage bucket containing source (see
-                    # [Bucket Name
-                    # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+                  # revisions resolved.
+                  # Repository.
+                "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                    # the build is assumed.
+                "branchName": "A String", # Name of the branch to build.
+                "commitSha": "A String", # Explicit commit SHA to build.
+                "tagName": "A String", # Name of the tag to build.
+                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
               },
             },
-            "projectId": "A String", # ID of the project.
-                # @OutputOnly.
+            "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+                # [Bucket Name
+                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+                # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
             "images": [ # A list of images to be pushed upon the successful completion of all build
                 # steps.
                 #
@@ -1036,31 +1083,16 @@
                 # If any of the images fail to be pushed, the build is marked FAILURE.
               "A String",
             ],
-            "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-              "requestedVerifyOption": "A String", # Requested verifiability options.
-              "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-                "A String",
-              ],
-            },
+            "createTime": "A String", # Time at which the request to create the build was received.
+                # @OutputOnly
             "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
                 # @OutputOnly
           },
+          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+              # template.
           "id": "A String", # Unique identifier of the trigger.
               #
               # @OutputOnly
-          "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-              #
-              # Branch and tag names in trigger templates are interpreted as regular
-              # expressions. Any branch or tag change that matches that regular expression
-              # will trigger a build.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-          },
         },
     ],
   }</pre>
@@ -1081,11 +1113,25 @@
 { # Configuration for an automated build in response to source repository
       # changes.
     "description": "A String", # Human-readable description of this trigger.
+    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+        # 
+        # Branch and tag names in trigger templates are interpreted as regular
+        # expressions. Any branch or tag change that matches that regular expression
+        # will trigger a build.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+      "tagName": "A String", # Name of the tag to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+    },
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @OutputOnly
-    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-        # template.
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
+    },
     "disabled": True or False, # If true, the trigger will never result in a build.
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
@@ -1103,26 +1149,24 @@
         # - $TAG_NAME: the tag name specified by RepoSource.
         # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
         #   resolved from the specified branch or tag.
-      "status": "A String", # Status of the build.
-          # @OutputOnly
       "finishTime": "A String", # Time at which execution of the build was finished.
           #
           # The difference between finish_time and start_time is the duration of the
           # build's execution.
           # @OutputOnly
+      "status": "A String", # Status of the build.
+          # @OutputOnly
       "timeout": "A String", # Amount of time that this build should be allowed to run, to second
           # granularity. If this amount of time elapses, work on the build will cease
           # and the build status will be TIMEOUT.
           #
           # Default time is ten minutes.
-      "statusDetail": "A String", # Customer-readable message about the current status.
-          # @OutputOnly
       "startTime": "A String", # Time at which execution of the build was started.
           # @OutputOnly
-      "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-          # [Bucket Name
-          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-          # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+      "projectId": "A String", # ID of the project.
+          # @OutputOnly.
+      "id": "A String", # Unique identifier of the build.
+          # @OutputOnly
       "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
           # @OutputOnly
         "images": [ # Images that were built as a part of the build.
@@ -1136,10 +1180,11 @@
           "A String",
         ],
       },
-      "createTime": "A String", # Time at which the request to create the build was received.
+      "statusDetail": "A String", # Customer-readable message about the current status.
           # @OutputOnly
-      "id": "A String", # Unique identifier of the build.
-          # @OutputOnly
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
+      },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
         "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -1160,21 +1205,28 @@
           "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
               # the build is assumed.
           "branchName": "A String", # Name of the branch to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          "tagName": "A String", # Name of the tag to build.
           "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
         },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
           # @OutputOnly
+      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+        "requestedVerifyOption": "A String", # Requested verifiability options.
+        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+          "A String",
+        ],
+      },
       "steps": [ # Describes the operations to be performed on the workspace.
         { # BuildStep describes a step to perform in the build pipeline.
-          "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-              # This build step will not start until all the build steps in wait_for
-              # have completed successfully. If wait_for is empty, this build step will
-              # start when all previous build steps in the Build.Steps list have completed
-              # successfully.
+          "args": [ # A list of arguments that will be presented to the step when it is started.
+              #
+              # If the image used to run the step's container has an entrypoint, these args
+              # will be used as arguments to that entrypoint. If the image does not define
+              # an entrypoint, the first element in args will be used as the entrypoint,
+              # and the remainder will be used as arguments.
             "A String",
           ],
           "name": "A String", # The name of the container image that will run this particular build step.
@@ -1193,14 +1245,15 @@
               # If you built an image in a previous build step, it will be stored in the
               # host's Docker daemon's cache and is available to use as the name for a
               # later build step.
-          "args": [ # A list of arguments that will be presented to the step when it is started.
-              #
-              # If the image used to run the step's container has an entrypoint, these args
-              # will be used as arguments to that entrypoint. If the image does not define
-              # an entrypoint, the first element in args will be used as the entrypoint,
-              # and the remainder will be used as arguments.
+          "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+              # This build step will not start until all the build steps in wait_for
+              # have completed successfully. If wait_for is empty, this build step will
+              # start when all previous build steps in the Build.Steps list have completed
+              # successfully.
             "A String",
           ],
+          "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+              # If unset, the image's default will be used.
           "env": [ # A list of environment variable definitions to be used when running a step.
               #
               # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -1216,15 +1269,18 @@
       "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
           # @OutputOnly
           # some source was used for this build.
-        "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-            # revisions resolved.
-            # Repository.
-          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-              # the build is assumed.
-          "branchName": "A String", # Name of the branch to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          "tagName": "A String", # Name of the tag to build.
-          "commitSha": "A String", # Explicit commit SHA to build.
+        "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+            # generations resolved.
+            # Google Cloud Storage.
+          "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+              # omitted, the latest generation will be used.
+          "object": "A String", # Google Cloud Storage object containing source.
+              #
+              # This object must be a gzipped archive file (.tar.gz) containing source to
+              # build.
+          "bucket": "A String", # Google Cloud Storage bucket containing source (see
+              # [Bucket Name
+              # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
         "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
             # source integrity was maintained in the build. Note that FileHashes will
@@ -1246,22 +1302,21 @@
             ],
           },
         },
-        "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-            # generations resolved.
-            # Google Cloud Storage.
-          "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-              # omitted, the latest generation will be used.
-          "object": "A String", # Google Cloud Storage object containing source.
-              #
-              # This object must be a gzipped archive file (.tar.gz) containing source to
-              # build.
-          "bucket": "A String", # Google Cloud Storage bucket containing source (see
-              # [Bucket Name
-              # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+        "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+            # revisions resolved.
+            # Repository.
+          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+              # the build is assumed.
+          "branchName": "A String", # Name of the branch to build.
+          "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
         },
       },
-      "projectId": "A String", # ID of the project.
-          # @OutputOnly.
+      "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+          # [Bucket Name
+          # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
       "images": [ # A list of images to be pushed upon the successful completion of all build
           # steps.
           #
@@ -1273,31 +1328,16 @@
           # If any of the images fail to be pushed, the build is marked FAILURE.
         "A String",
       ],
-      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-        "requestedVerifyOption": "A String", # Requested verifiability options.
-        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-          "A String",
-        ],
-      },
+      "createTime": "A String", # Time at which the request to create the build was received.
+          # @OutputOnly
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
           # @OutputOnly
     },
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
-    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-        # 
-        # Branch and tag names in trigger templates are interpreted as regular
-        # expressions. Any branch or tag change that matches that regular expression
-        # will trigger a build.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
-    },
   }
 
   x__xgafv: string, V1 error format.
@@ -1311,11 +1351,25 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      },
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
+      },
       "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
@@ -1333,26 +1387,24 @@
           # - $TAG_NAME: the tag name specified by RepoSource.
           # - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
           #   resolved from the specified branch or tag.
-        "status": "A String", # Status of the build.
-            # @OutputOnly
         "finishTime": "A String", # Time at which execution of the build was finished.
             #
             # The difference between finish_time and start_time is the duration of the
             # build's execution.
             # @OutputOnly
+        "status": "A String", # Status of the build.
+            # @OutputOnly
         "timeout": "A String", # Amount of time that this build should be allowed to run, to second
             # granularity. If this amount of time elapses, work on the build will cease
             # and the build status will be TIMEOUT.
             #
             # Default time is ten minutes.
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
-        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
-            # [Bucket Name
-            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
-            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
+        "projectId": "A String", # ID of the project.
+            # @OutputOnly.
+        "id": "A String", # Unique identifier of the build.
+            # @OutputOnly
         "results": { # Results describes the artifacts created by the build pipeline. # Results of the build.
             # @OutputOnly
           "images": [ # Images that were built as a part of the build.
@@ -1366,10 +1418,11 @@
             "A String",
           ],
         },
-        "createTime": "A String", # Time at which the request to create the build was received.
+        "statusDetail": "A String", # Customer-readable message about the current status.
             # @OutputOnly
-        "id": "A String", # Unique identifier of the build.
-            # @OutputOnly
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
+        },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
@@ -1390,21 +1443,28 @@
             "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
                 # the build is assumed.
             "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
             "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
-            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
-                # This build step will not start until all the build steps in wait_for
-                # have completed successfully. If wait_for is empty, this build step will
-                # start when all previous build steps in the Build.Steps list have completed
-                # successfully.
+            "args": [ # A list of arguments that will be presented to the step when it is started.
+                #
+                # If the image used to run the step's container has an entrypoint, these args
+                # will be used as arguments to that entrypoint. If the image does not define
+                # an entrypoint, the first element in args will be used as the entrypoint,
+                # and the remainder will be used as arguments.
               "A String",
             ],
             "name": "A String", # The name of the container image that will run this particular build step.
@@ -1423,14 +1483,15 @@
                 # If you built an image in a previous build step, it will be stored in the
                 # host's Docker daemon's cache and is available to use as the name for a
                 # later build step.
-            "args": [ # A list of arguments that will be presented to the step when it is started.
-                #
-                # If the image used to run the step's container has an entrypoint, these args
-                # will be used as arguments to that entrypoint. If the image does not define
-                # an entrypoint, the first element in args will be used as the entrypoint,
-                # and the remainder will be used as arguments.
+            "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
+                # This build step will not start until all the build steps in wait_for
+                # have completed successfully. If wait_for is empty, this build step will
+                # start when all previous build steps in the Build.Steps list have completed
+                # successfully.
               "A String",
             ],
+            "entrypoint": "A String", # Optional entrypoint to be used instead of the build step image's default
+                # If unset, the image's default will be used.
             "env": [ # A list of environment variable definitions to be used when running a step.
                 #
                 # The elements are of the form "KEY=VALUE" for the environment variable "KEY"
@@ -1446,15 +1507,18 @@
         "sourceProvenance": { # Provenance of the source. Ways to find the original source, or verify that # A permanent fixed identifier for source.
             # @OutputOnly
             # some source was used for this build.
-          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
-              # revisions resolved.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
+          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
+              # generations resolved.
+              # Google Cloud Storage.
+            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
+                # omitted, the latest generation will be used.
+            "object": "A String", # Google Cloud Storage object containing source.
+                #
+                # This object must be a gzipped archive file (.tar.gz) containing source to
+                # build.
+            "bucket": "A String", # Google Cloud Storage bucket containing source (see
+                # [Bucket Name
+                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
           "fileHashes": { # Hash(es) of the build source, which can be used to verify that the original
               # source integrity was maintained in the build. Note that FileHashes will
@@ -1476,22 +1540,21 @@
               ],
             },
           },
-          "resolvedStorageSource": { # StorageSource describes the location of the source in an archive file in # A copy of the build's source.storage_source, if exists, with any
-              # generations resolved.
-              # Google Cloud Storage.
-            "generation": "A String", # Google Cloud Storage generation for the object. If the generation is
-                # omitted, the latest generation will be used.
-            "object": "A String", # Google Cloud Storage object containing source.
-                #
-                # This object must be a gzipped archive file (.tar.gz) containing source to
-                # build.
-            "bucket": "A String", # Google Cloud Storage bucket containing source (see
-                # [Bucket Name
-                # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+          "resolvedRepoSource": { # RepoSource describes the location of the source in a Google Cloud Source # A copy of the build's source.repo_source, if exists, with any
+              # revisions resolved.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
           },
         },
-        "projectId": "A String", # ID of the project.
-            # @OutputOnly.
+        "logsBucket": "A String", # Google Cloud Storage bucket where logs should be written (see
+            # [Bucket Name
+            # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
         "images": [ # A list of images to be pushed upon the successful completion of all build
             # steps.
             #
@@ -1503,31 +1566,16 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
-        },
+        "createTime": "A String", # Time at which the request to create the build was received.
+            # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
     }</pre>
 </div>
 
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
index bf02be2..f447e28 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
@@ -76,68 +76,281 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(debuggeeId, successOnTimeout=None, waitToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the list of all active breakpoints for the debuggee. The breakpoint specification (location, condition, and expression fields) is semantically immutable, although the field values may change. For example, an agent may update the location line number to reflect the actual line where the breakpoint was set, but this doesn't change the breakpoint semantics. This means that an agent does not need to check if a breakpoint has changed when it encounters the same breakpoint on a successive call. Moreover, an agent should remember the breakpoints that are completed until the controller removes them from the active list to avoid setting those breakpoints again.</p>
+<p class="firstline">Returns the list of all active breakpoints for the debuggee.</p>
 <p class="toc_element">
   <code><a href="#update">update(debuggeeId, id, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the breakpoint state or mutable fields. The entire Breakpoint message must be sent back to the controller service. Updates to active breakpoint fields are only allowed if the new value does not change the breakpoint specification. Updates to the `location`, `condition` and `expression` fields should not alter the breakpoint semantics. These may only make changes such as canonicalizing a value or snapping the location to the correct line of code.</p>
+<p class="firstline">Updates the breakpoint state or mutable fields.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(debuggeeId, successOnTimeout=None, waitToken=None, x__xgafv=None)</code>
-  <pre>Returns the list of all active breakpoints for the debuggee. The breakpoint specification (location, condition, and expression fields) is semantically immutable, although the field values may change. For example, an agent may update the location line number to reflect the actual line where the breakpoint was set, but this doesn't change the breakpoint semantics. This means that an agent does not need to check if a breakpoint has changed when it encounters the same breakpoint on a successive call. Moreover, an agent should remember the breakpoints that are completed until the controller removes them from the active list to avoid setting those breakpoints again.
+  <pre>Returns the list of all active breakpoints for the debuggee.
+
+The breakpoint specification (location, condition, and expression
+fields) is semantically immutable, although the field values may
+change. For example, an agent may update the location line number
+to reflect the actual line where the breakpoint was set, but this
+doesn't change the breakpoint semantics.
+
+This means that an agent does not need to check if a breakpoint has changed
+when it encounters the same breakpoint on a successive call.
+Moreover, an agent should remember the breakpoints that are completed
+until the controller removes them from the active list to avoid
+setting those breakpoints again.
 
 Args:
   debuggeeId: string, Identifies the debuggee. (required)
-  successOnTimeout: boolean, If set to `true`, returns `google.rpc.Code.OK` status and sets the `wait_expired` response field to `true` when the server-selected timeout has expired (recommended). If set to `false`, returns `google.rpc.Code.ABORTED` status when the server-selected timeout has expired (deprecated).
-  waitToken: string, A wait token that, if specified, blocks the method call until the list of active breakpoints has changed, or a server selected timeout has expired. The value should be set from the last returned response.
+  successOnTimeout: boolean, If set to `true`, returns `google.rpc.Code.OK` status and sets the
+`wait_expired` response field to `true` when the server-selected timeout
+has expired (recommended).
+
+If set to `false`, returns `google.rpc.Code.ABORTED` status when the
+server-selected timeout has expired (deprecated).
+  waitToken: string, A wait token that, if specified, blocks the method call until the list
+of active breakpoints has changed, or a server selected timeout has
+expired.  The value should be set from the last returned response.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for listing active breakpoints.
-    "waitExpired": True or False, # The `wait_expired` field is set to true by the server when the request times out and the field `success_on_timeout` is set to true.
-    "nextWaitToken": "A String", # A wait token that can be used in the next method call to block until the list of breakpoints changes.
-    "breakpoints": [ # List of all active breakpoints. The fields `id` and `location` are guaranteed to be set on each breakpoint.
+    "waitExpired": True or False, # The `wait_expired` field is set to true by the server when the
+        # request times out and the field `success_on_timeout` is set to true.
+    "nextWaitToken": "A String", # A wait token that can be used in the next method call to block until
+        # the list of breakpoints changes.
+    "breakpoints": [ # List of all active breakpoints.
+        # The fields `id` and `location` are guaranteed to be set on each breakpoint.
       { # Represents the breakpoint specification, status and results.
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
-        "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+        "status": { # Represents a contextual status message. # Breakpoint status.
+            #
+            # The status includes an error flag and a human readable message.
+            # This field is usually unset. The message can be either
+            # informational or an error message. Regardless, clients should always
+            # display the text message back to the user.
+            #
+            # Error status indicates complete failure of the breakpoint.
+            #
+            # Example (non-final state): `Still loading symbols...`
+            #
+            # Examples (final state):
+            #
+            # *   `Invalid line number` referring to location
+            # *   `Field f not found in class C` referring to condition
+            # The message can indicate an error or informational status, and refer to
+            # specific parts of the containing object.
+            # For example, the `Breakpoint.status` field can indicate an error referring
+            # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
           "isError": True or False, # Distinguishes errors from informational messages.
           "refersTo": "A String", # Reference to which the message applies.
           "description": { # Represents a message with parameters. # Status message text.
             "parameters": [ # Optional parameters to be embedded into the message.
               "A String",
             ],
-            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                # character.
+                #
+                # Examples:
+                #
+                # *   `Failed to load '$0' which helps debug $1 the first time it
+                #     is loaded.  Again, $0 is very important.`
+                # *   `Please pay $$10 to use $0 instead of $1.`
           },
         },
-        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-        "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-          { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-              # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+        "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+            # traffic optimization.  It enables storing a variable once and reference
+            # it from multiple variables, including variables stored in the
+            # `variable_table` itself.
+            # For example, the same `this` object, which may appear at many levels of
+            # the stack, can have all of its data stored once in this table.  The
+            # stack frame variables then would hold only a reference to it.
+            #
+            # The variable `var_table_index` field is an index into this repeated field.
+            # The stored objects are nameless and get their name from the referencing
+            # variable. The effective variable is a merge of the referencing variable
+            # and the referenced variable.
+          { # Represents a variable or an argument possibly of a compound object type.
+              # Note how the following variables are represented:
+              #
+              # 1) A simple variable:
+              #
+              #     int x = 5
+              #
+              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #
+              # 2) A compound object:
+              #
+              #     struct T {
+              #         int m1;
+              #         int m2;
+              #     };
+              #     T x = { 3, 7 };
+              #
+              #     {  // Captured variable
+              #         name: "x",
+              #         type: "T",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 3) A pointer where the pointee was captured:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00500500",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 4) A pointer where the pointee was not captured:
+              #
+              #     T* p = new T;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00400400"
+              #         status { is_error: true, description { format: "unavailable" } }
+              #     }
+              #
+              # The status should describe the reason for the missing value,
+              # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+              #
+              # Note that a null pointer should not have members.
+              #
+              # 5) An unnamed value:
+              #
+              #     int* p = new int(7);
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         value: "0x00500500",
+              #         type: "int*",
+              #         members { value: "7", type: "int" } }
+              #
+              # 6) An unnamed pointer where the pointee was not captured:
+              #
+              #     int* p = new int(7);
+              #     int** pp = &p;
+              #
+              #     {  // Captured variable
+              #         name: "pp",
+              #         value: "0x00500500",
+              #         type: "int**",
+              #         members {
+              #             value: "0x00400400",
+              #             type: "int*"
+              #             status {
+              #                 is_error: true,
+              #                 description: { format: "unavailable" } }
+              #             }
+              #         }
+              #     }
+              #
+              # To optimize computation, memory and network traffic, variables that
+              # repeat in the output multiple times can be stored once in a shared
+              # variable table and be referenced using the `var_table_index` field.  The
+              # variables stored in the shared table are nameless and are essentially
+              # a partition of the complete variable. To reconstruct the complete
+              # variable, merge the referencing variable with the referenced variable.
+              #
+              # When using the shared variable table, the following variables:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #     T& r = x;
+              #
+              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+              #     { name: "r", type="T&", var_table_index: 3 }
+              #
+              #     {  // Shared variable table entry #3:
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # Note that the pointer address is stored with the referencing variable
+              # and not with the referenced variable. This allows the referenced variable
+              # to be shared between pointers and references.
+              #
+              # The type field is optional. The debugger agent may or may not support it.
+            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                # unset. A status of a single variable only applies to that variable or
+                # expression. The rest of breakpoint data still remains valid. Variables
+                # might be reported in error state even when breakpoint is not in final
+                # state.
+                #
+                # The message may refer to variable name with `refers_to` set to
+                # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                # In either case variable value and members will be unset.
+                #
+                # Example of error message applied to name: `Invalid expression syntax`.
+                #
+                # Example of information message applied to value: `Not captured`.
+                #
+                # Examples of error message applied to value:
+                #
+                # *   `Malformed string`,
+                # *   `Field f not found in class C`
+                # *   `Null pointer dereference`
+                # The message can indicate an error or informational status, and refer to
+                # specific parts of the containing object.
+                # For example, the `Breakpoint.status` field can indicate an error referring
+                # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
               "isError": True or False, # Distinguishes errors from informational messages.
               "refersTo": "A String", # Reference to which the message applies.
               "description": { # Represents a message with parameters. # Status message text.
                 "parameters": [ # Optional parameters to be embedded into the message.
                   "A String",
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                    # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                    # character.
+                    #
+                    # Examples:
+                    #
+                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    #     is loaded.  Again, $0 is very important.`
+                    # *   `Please pay $$10 to use $0 instead of $1.`
               },
             },
             "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
             "value": "A String", # Simple value of the variable.
             "members": [ # Members contained or pointed to by the variable.
               # Object with schema name: Variable
             ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                # `var_table_index`, `type` goes next to `value`. The interpretation of
+                # a type is agent specific. It is recommended to include the dynamic type
+                # rather than a static type of an object.
           },
         ],
+        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+            # resolution.
         "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-        "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+        "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+            # displayed to the user.
           "a_key": "A String",
         },
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+            # the breakpoint hits. The message may include parameter placeholders `$0`,
+            # `$1`, etc. These placeholders are replaced with the evaluated value
+            # of the appropriate expression. Expressions not referenced in
+            # `log_message_format` are not logged.
+            #
+            # Example: `Message received, id = $0, count = $1` with
+            # `expressions` = `[ message.id, message.count ]`.
+        "userEmail": "A String", # E-mail address of the user that created this breakpoint
         "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "stackFrames": [ # The stack at breakpoint time.
           { # Represents a stack frame context.
@@ -146,48 +359,334 @@
               "path": "A String", # Path to the source file within the source context of the target binary.
               "line": 42, # Line inside the file. The first line in the file has the value `1`.
             },
-            "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                  # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+            "locals": [ # Set of local variables at the stack frame location.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                   "isError": True or False, # Distinguishes errors from informational messages.
                   "refersTo": "A String", # Reference to which the message applies.
                   "description": { # Represents a message with parameters. # Status message text.
                     "parameters": [ # Optional parameters to be embedded into the message.
                       "A String",
                     ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
                   },
                 },
                 "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
                 "value": "A String", # Simple value of the variable.
                 "members": [ # Members contained or pointed to by the variable.
                   # Object with schema name: Variable
                 ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
               },
             ],
-            "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                  # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+            "arguments": [ # Set of arguments passed to this function.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                   "isError": True or False, # Distinguishes errors from informational messages.
                   "refersTo": "A String", # Reference to which the message applies.
                   "description": { # Represents a message with parameters. # Status message text.
                     "parameters": [ # Optional parameters to be embedded into the message.
                       "A String",
                     ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
                   },
                 },
                 "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
                 "value": "A String", # Simple value of the variable.
                 "members": [ # Members contained or pointed to by the variable.
                   # Object with schema name: Variable
                 ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
               },
             ],
           },
@@ -196,35 +695,190 @@
           "path": "A String", # Path to the source file within the source context of the target binary.
           "line": 42, # Line inside the file. The first line in the file has the value `1`.
         },
-        "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-        "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+        "action": "A String", # Action that the agent should perform when the code at the
+            # breakpoint location is hit.
+        "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+            # The expressions are composed using expressions in the programming language
+            # at the source location. If the breakpoint action is `LOG`, the evaluated
+            # expressions are included in log statements.
           "A String",
         ],
-        "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-        "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-          { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-              # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+        "isFinalState": True or False, # When true, indicates that this is a final result and the
+            # breakpoint state will not change from here on.
+        "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+            # The evaluated expressions appear in exactly the same order they
+            # are listed in the `expressions` field.
+            # The `name` field holds the original expression text, the `value` or
+            # `members` field holds the result of the evaluated expression.
+            # If the expression cannot be evaluated, the `status` inside the `Variable`
+            # will indicate an error and contain the error text.
+          { # Represents a variable or an argument possibly of a compound object type.
+              # Note how the following variables are represented:
+              #
+              # 1) A simple variable:
+              #
+              #     int x = 5
+              #
+              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #
+              # 2) A compound object:
+              #
+              #     struct T {
+              #         int m1;
+              #         int m2;
+              #     };
+              #     T x = { 3, 7 };
+              #
+              #     {  // Captured variable
+              #         name: "x",
+              #         type: "T",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 3) A pointer where the pointee was captured:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00500500",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 4) A pointer where the pointee was not captured:
+              #
+              #     T* p = new T;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00400400"
+              #         status { is_error: true, description { format: "unavailable" } }
+              #     }
+              #
+              # The status should describe the reason for the missing value,
+              # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+              #
+              # Note that a null pointer should not have members.
+              #
+              # 5) An unnamed value:
+              #
+              #     int* p = new int(7);
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         value: "0x00500500",
+              #         type: "int*",
+              #         members { value: "7", type: "int" } }
+              #
+              # 6) An unnamed pointer where the pointee was not captured:
+              #
+              #     int* p = new int(7);
+              #     int** pp = &p;
+              #
+              #     {  // Captured variable
+              #         name: "pp",
+              #         value: "0x00500500",
+              #         type: "int**",
+              #         members {
+              #             value: "0x00400400",
+              #             type: "int*"
+              #             status {
+              #                 is_error: true,
+              #                 description: { format: "unavailable" } }
+              #             }
+              #         }
+              #     }
+              #
+              # To optimize computation, memory and network traffic, variables that
+              # repeat in the output multiple times can be stored once in a shared
+              # variable table and be referenced using the `var_table_index` field.  The
+              # variables stored in the shared table are nameless and are essentially
+              # a partition of the complete variable. To reconstruct the complete
+              # variable, merge the referencing variable with the referenced variable.
+              #
+              # When using the shared variable table, the following variables:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #     T& r = x;
+              #
+              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+              #     { name: "r", type="T&", var_table_index: 3 }
+              #
+              #     {  // Shared variable table entry #3:
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # Note that the pointer address is stored with the referencing variable
+              # and not with the referenced variable. This allows the referenced variable
+              # to be shared between pointers and references.
+              #
+              # The type field is optional. The debugger agent may or may not support it.
+            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                # unset. A status of a single variable only applies to that variable or
+                # expression. The rest of breakpoint data still remains valid. Variables
+                # might be reported in error state even when breakpoint is not in final
+                # state.
+                #
+                # The message may refer to variable name with `refers_to` set to
+                # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                # In either case variable value and members will be unset.
+                #
+                # Example of error message applied to name: `Invalid expression syntax`.
+                #
+                # Example of information message applied to value: `Not captured`.
+                #
+                # Examples of error message applied to value:
+                #
+                # *   `Malformed string`,
+                # *   `Field f not found in class C`
+                # *   `Null pointer dereference`
+                # The message can indicate an error or informational status, and refer to
+                # specific parts of the containing object.
+                # For example, the `Breakpoint.status` field can indicate an error referring
+                # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
               "isError": True or False, # Distinguishes errors from informational messages.
               "refersTo": "A String", # Reference to which the message applies.
               "description": { # Represents a message with parameters. # Status message text.
                 "parameters": [ # Optional parameters to be embedded into the message.
                   "A String",
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                    # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                    # character.
+                    #
+                    # Examples:
+                    #
+                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    #     is loaded.  Again, $0 is very important.`
+                    # *   `Please pay $$10 to use $0 instead of $1.`
               },
             },
             "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
             "value": "A String", # Simple value of the variable.
             "members": [ # Members contained or pointed to by the variable.
               # Object with schema name: Variable
             ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                # `var_table_index`, `type` goes next to `value`. The interpretation of
+                # a type is agent specific. It is recommended to include the dynamic type
+                # rather than a static type of an object.
           },
         ],
         "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-        "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+        "condition": "A String", # Condition that triggers the breakpoint.
+            # The condition is a compound boolean expression composed using expressions
+            # in a programming language at the source location.
       },
     ],
   }</pre>
@@ -232,7 +886,15 @@
 
 <div class="method">
     <code class="details" id="update">update(debuggeeId, id, body, x__xgafv=None)</code>
-  <pre>Updates the breakpoint state or mutable fields. The entire Breakpoint message must be sent back to the controller service. Updates to active breakpoint fields are only allowed if the new value does not change the breakpoint specification. Updates to the `location`, `condition` and `expression` fields should not alter the breakpoint semantics. These may only make changes such as canonicalizing a value or snapping the location to the correct line of code.
+  <pre>Updates the breakpoint state or mutable fields.
+The entire Breakpoint message must be sent back to the controller
+service.
+
+Updates to active breakpoint fields are only allowed if the new value
+does not change the breakpoint specification. Updates to the `location`,
+`condition` and `expression` fields should not alter the breakpoint
+semantics. These may only make changes such as canonicalizing a value
+or snapping the location to the correct line of code.
 
 Args:
   debuggeeId: string, Identifies the debuggee being debugged. (required)
@@ -241,46 +903,235 @@
     The object takes the form of:
 
 { # Request to update an active breakpoint.
-    "breakpoint": { # Represents the breakpoint specification, status and results. # Updated breakpoint information. The field 'id' must be set.
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+    "breakpoint": { # Represents the breakpoint specification, status and results. # Updated breakpoint information.
+        # The field 'id' must be set.
+      "status": { # Represents a contextual status message. # Breakpoint status.
+          #
+          # The status includes an error flag and a human readable message.
+          # This field is usually unset. The message can be either
+          # informational or an error message. Regardless, clients should always
+          # display the text message back to the user.
+          #
+          # Error status indicates complete failure of the breakpoint.
+          #
+          # Example (non-final state): `Still loading symbols...`
+          #
+          # Examples (final state):
+          #
+          # *   `Invalid line number` referring to location
+          # *   `Field f not found in class C` referring to condition
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+          # traffic optimization.  It enables storing a variable once and reference
+          # it from multiple variables, including variables stored in the
+          # `variable_table` itself.
+          # For example, the same `this` object, which may appear at many levels of
+          # the stack, can have all of its data stored once in this table.  The
+          # stack frame variables then would hold only a reference to it.
+          #
+          # The variable `var_table_index` field is an index into this repeated field.
+          # The stored objects are nameless and get their name from the referencing
+          # variable. The effective variable is a merge of the referencing variable
+          # and the referenced variable.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-      "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+          # displayed to the user.
         "a_key": "A String",
       },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
@@ -289,48 +1140,334 @@
             "path": "A String", # Path to the source file within the source context of the target binary.
             "line": 42, # Line inside the file. The first line in the file has the value `1`.
           },
-          "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
-          "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "arguments": [ # Set of arguments passed to this function.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
         },
@@ -339,44 +1476,203 @@
         "path": "A String", # Path to the source file within the source context of the target binary.
         "line": 42, # Line inside the file. The first line in the file has the value `1`.
       },
-      "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+          # The expressions are composed using expressions in the programming language
+          # at the source location. If the breakpoint action is `LOG`, the evaluated
+          # expressions are included in log statements.
         "A String",
       ],
-      "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "isFinalState": True or False, # When true, indicates that this is a final result and the
+          # breakpoint state will not change from here on.
+      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+          # The evaluated expressions appear in exactly the same order they
+          # are listed in the `expressions` field.
+          # The `name` field holds the original expression text, the `value` or
+          # `members` field holds the result of the evaluated expression.
+          # If the expression cannot be evaluated, the `status` inside the `Variable`
+          # will indicate an error and contain the error text.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
       "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-      "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+      "condition": "A String", # Condition that triggers the breakpoint.
+          # The condition is a compound boolean expression composed using expressions
+          # in a programming language at the source location.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response for updating an active breakpoint. The message is defined to allow future extensions.
+    { # Response for updating an active breakpoint.
+      # The message is defined to allow future extensions.
   }</pre>
 </div>
 
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.html b/docs/dyn/clouddebugger_v2.controller.debuggees.html
index 2f58115..9c11afe 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.html
@@ -81,51 +81,99 @@
 
 <p class="toc_element">
   <code><a href="#register">register(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Registers the debuggee with the controller service. All agents attached to the same application should call this method with the same request content to get back the same stable `debuggee_id`. Agents should call this method again whenever `google.rpc.Code.NOT_FOUND` is returned from any controller method. This allows the controller service to disable the agent or recover from any data loss. If the debuggee is disabled by the server, the response will have `is_disabled` set to `true`.</p>
+<p class="firstline">Registers the debuggee with the controller service.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="register">register(body, x__xgafv=None)</code>
-  <pre>Registers the debuggee with the controller service. All agents attached to the same application should call this method with the same request content to get back the same stable `debuggee_id`. Agents should call this method again whenever `google.rpc.Code.NOT_FOUND` is returned from any controller method. This allows the controller service to disable the agent or recover from any data loss. If the debuggee is disabled by the server, the response will have `is_disabled` set to `true`.
+  <pre>Registers the debuggee with the controller service.
+
+All agents attached to the same application should call this method with
+the same request content to get back the same stable `debuggee_id`. Agents
+should call this method again whenever `google.rpc.Code.NOT_FOUND` is
+returned from any controller method.
+
+This allows the controller service to disable the agent or recover from any
+data loss. If the debuggee is disabled by the server, the response will
+have `is_disabled` set to `true`.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request to register a debuggee.
-    "debuggee": { # Represents the application to debug. The application may include one or more replicated processes executing the same code. Each of these processes is attached with a debugger agent, carrying out the debugging commands. The agents attached to the same debuggee are identified by using exactly the same field values when registering. # Debuggee information to register. The fields `project`, `uniquifier`, `description` and `agent_version` of the debuggee must be set.
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Human readable message to be displayed to the user about this debuggee. Absence of this field indicates no status. The message can be either informational or an error status.
+    "debuggee": { # Represents the application to debug. The application may include one or more # Debuggee information to register.
+        # The fields `project`, `uniquifier`, `description` and `agent_version`
+        # of the debuggee must be set.
+        # replicated processes executing the same code. Each of these processes is
+        # attached with a debugger agent, carrying out the debugging commands.
+        # The agents attached to the same debuggee are identified by using exactly the
+        # same field values when registering.
+      "status": { # Represents a contextual status message. # Human readable message to be displayed to the user about this debuggee.
+          # Absence of this field indicates no status. The message can be either
+          # informational or an error status.
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
-      "description": "A String", # Human readable description of the debuggee. Including a human-readable project name, environment name and version information is recommended.
-      "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and detach from the debuggee.
-      "labels": { # A set of custom debuggee properties, populated by the agent, to be displayed to the user.
+      "description": "A String", # Human readable description of the debuggee.
+          # Including a human-readable project name, environment name and version
+          # information is recommended.
+      "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and
+          # detach from the debuggee.
+      "labels": { # A set of custom debuggee properties, populated by the agent, to be
+          # displayed to the user.
         "a_key": "A String",
       },
-      "uniquifier": "A String", # Debuggee uniquifier within the project. Any string that identifies the application within the project can be used. Including environment and version or build IDs is recommended.
-      "project": "A String", # Project the debuggee is associated with. Use the project number when registering a Google Cloud Platform project.
-      "sourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. NOTE: This field is deprecated. Consumers should use `ext_source_contexts` if it is not empty. Debug agents should populate both this field and `ext_source_contexts`.
-        { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
+      "uniquifier": "A String", # Debuggee uniquifier within the project.
+          # Any string that identifies the application within the project can be used.
+          # Including environment and version or build IDs is recommended.
+      "project": "A String", # Project the debuggee is associated with.
+          # Use the project number when registering a Google Cloud Platform project.
+      "sourceContexts": [ # References to the locations and revisions of the source code used in the
+          # deployed application.
+          #
+          # NOTE: This field is deprecated. Consumers should use
+          # `ext_source_contexts` if it is not empty. Debug agents should populate
+          # both this field and `ext_source_contexts`.
+        { # A SourceContext is a reference to a tree of files. A SourceContext together
+            # with a path point to a unique revision of a single file or directory.
           "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-            "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-            "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+            "snapshotId": "A String", # The ID of the snapshot.
+                # An empty snapshot_id refers to the most recent snapshot.
+            "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                # A cloud workspace is a place associated with a repo where modified files
+                # can be stored before they are committed.
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                "uid": "A String", # A server-assigned, globally unique identifier.
+                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                    # (e.g. winged-cargo-31) and a repo name within that project.
                   "projectId": "A String", # The ID of the project.
                   "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                 },
-                "uid": "A String", # A server-assigned, globally unique identifier.
               },
-              "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+              "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                  # chosen by the client in the Source API's CreateWorkspace method.
             },
           },
-          "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+          "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+              # repo (a repo hosted by the Google Cloud Platform).
             "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
@@ -133,16 +181,19 @@
             "revisionId": "A String", # A revision ID.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
             "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-              "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+              "uid": "A String", # A server-assigned, globally unique identifier.
+              "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                  # (e.g. winged-cargo-31) and a repo name within that project.
                 "projectId": "A String", # The ID of the project.
                 "repoName": "A String", # The name of the repo. Leave empty for the default repo.
               },
-              "uid": "A String", # A server-assigned, globally unique identifier.
             },
           },
-          "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+          "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+              # repository (e.g. GitHub).
             "url": "A String", # Git repository URL.
-            "revisionId": "A String", # Git commit hash. required.
+            "revisionId": "A String", # Git commit hash.
+                # required.
           },
           "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
             "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -152,30 +203,45 @@
             "revisionId": "A String", # A revision (commit) ID.
             "hostUri": "A String", # The URI of a running Gerrit instance.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-            "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+            "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                # "project/subproject" is a valid project name.
+                # The "repo name" is hostURI/project.
           },
         },
       ],
-      "extSourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. Contexts describing a remote repo related to the source code have a `category` label of `remote_repo`. Source snapshot source contexts have a `category` of `snapshot`.
-        { # An ExtendedSourceContext is a SourceContext combined with additional details describing the context.
+      "extSourceContexts": [ # References to the locations and revisions of the source code used in the
+          # deployed application.
+          #
+          # Contexts describing a remote repo related to the source code
+          # have a `category` label of `remote_repo`. Source snapshot source
+          # contexts have a `category` of `snapshot`.
+        { # An ExtendedSourceContext is a SourceContext combined with additional
+            # details describing the context.
           "labels": { # Labels with user defined metadata.
             "a_key": "A String",
           },
-          "context": { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. # Any source context.
+          "context": { # A SourceContext is a reference to a tree of files. A SourceContext together # Any source context.
+              # with a path point to a unique revision of a single file or directory.
             "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-              "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+              "snapshotId": "A String", # The ID of the snapshot.
+                  # An empty snapshot_id refers to the most recent snapshot.
+              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                  # A cloud workspace is a place associated with a repo where modified files
+                  # can be stored before they are committed.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                  "uid": "A String", # A server-assigned, globally unique identifier.
+                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                      # (e.g. winged-cargo-31) and a repo name within that project.
                     "projectId": "A String", # The ID of the project.
                     "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                   },
-                  "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
-            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+                # repo (a repo hosted by the Google Cloud Platform).
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
@@ -183,16 +249,19 @@
               "revisionId": "A String", # A revision ID.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                "uid": "A String", # A server-assigned, globally unique identifier.
+                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                    # (e.g. winged-cargo-31) and a repo name within that project.
                   "projectId": "A String", # The ID of the project.
                   "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                 },
-                "uid": "A String", # A server-assigned, globally unique identifier.
               },
             },
-            "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+            "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+                # repository (e.g. GitHub).
               "url": "A String", # Git repository URL.
-              "revisionId": "A String", # Git commit hash. required.
+              "revisionId": "A String", # Git commit hash.
+                  # required.
             },
             "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -202,57 +271,103 @@
               "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                  # "project/subproject" is a valid project name.
+                  # The "repo name" is hostURI/project.
             },
           },
         },
       ],
-      "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as following: `domain/type/vmajor.minor` (for example `google.com/gcp-java/v1.1`).
-      "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by the Controller service.
+      "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as
+          # following: `domain/type/vmajor.minor` (for example
+          # `google.com/gcp-java/v1.1`).
+      "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by
+          # the Controller service.
       "id": "A String", # Unique identifier for the debuggee generated by the controller service.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for registering a debuggee.
-    "debuggee": { # Represents the application to debug. The application may include one or more replicated processes executing the same code. Each of these processes is attached with a debugger agent, carrying out the debugging commands. The agents attached to the same debuggee are identified by using exactly the same field values when registering. # Debuggee resource. The field `id` is guranteed to be set (in addition to the echoed fields).
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Human readable message to be displayed to the user about this debuggee. Absence of this field indicates no status. The message can be either informational or an error status.
+    "debuggee": { # Represents the application to debug. The application may include one or more # Debuggee resource.
+        # The field `id` is guranteed to be set (in addition to the echoed fields).
+        # replicated processes executing the same code. Each of these processes is
+        # attached with a debugger agent, carrying out the debugging commands.
+        # The agents attached to the same debuggee are identified by using exactly the
+        # same field values when registering.
+      "status": { # Represents a contextual status message. # Human readable message to be displayed to the user about this debuggee.
+          # Absence of this field indicates no status. The message can be either
+          # informational or an error status.
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
-      "description": "A String", # Human readable description of the debuggee. Including a human-readable project name, environment name and version information is recommended.
-      "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and detach from the debuggee.
-      "labels": { # A set of custom debuggee properties, populated by the agent, to be displayed to the user.
+      "description": "A String", # Human readable description of the debuggee.
+          # Including a human-readable project name, environment name and version
+          # information is recommended.
+      "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and
+          # detach from the debuggee.
+      "labels": { # A set of custom debuggee properties, populated by the agent, to be
+          # displayed to the user.
         "a_key": "A String",
       },
-      "uniquifier": "A String", # Debuggee uniquifier within the project. Any string that identifies the application within the project can be used. Including environment and version or build IDs is recommended.
-      "project": "A String", # Project the debuggee is associated with. Use the project number when registering a Google Cloud Platform project.
-      "sourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. NOTE: This field is deprecated. Consumers should use `ext_source_contexts` if it is not empty. Debug agents should populate both this field and `ext_source_contexts`.
-        { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
+      "uniquifier": "A String", # Debuggee uniquifier within the project.
+          # Any string that identifies the application within the project can be used.
+          # Including environment and version or build IDs is recommended.
+      "project": "A String", # Project the debuggee is associated with.
+          # Use the project number when registering a Google Cloud Platform project.
+      "sourceContexts": [ # References to the locations and revisions of the source code used in the
+          # deployed application.
+          #
+          # NOTE: This field is deprecated. Consumers should use
+          # `ext_source_contexts` if it is not empty. Debug agents should populate
+          # both this field and `ext_source_contexts`.
+        { # A SourceContext is a reference to a tree of files. A SourceContext together
+            # with a path point to a unique revision of a single file or directory.
           "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-            "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-            "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+            "snapshotId": "A String", # The ID of the snapshot.
+                # An empty snapshot_id refers to the most recent snapshot.
+            "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                # A cloud workspace is a place associated with a repo where modified files
+                # can be stored before they are committed.
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                "uid": "A String", # A server-assigned, globally unique identifier.
+                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                    # (e.g. winged-cargo-31) and a repo name within that project.
                   "projectId": "A String", # The ID of the project.
                   "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                 },
-                "uid": "A String", # A server-assigned, globally unique identifier.
               },
-              "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+              "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                  # chosen by the client in the Source API's CreateWorkspace method.
             },
           },
-          "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+          "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+              # repo (a repo hosted by the Google Cloud Platform).
             "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
@@ -260,16 +375,19 @@
             "revisionId": "A String", # A revision ID.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
             "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-              "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+              "uid": "A String", # A server-assigned, globally unique identifier.
+              "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                  # (e.g. winged-cargo-31) and a repo name within that project.
                 "projectId": "A String", # The ID of the project.
                 "repoName": "A String", # The name of the repo. Leave empty for the default repo.
               },
-              "uid": "A String", # A server-assigned, globally unique identifier.
             },
           },
-          "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+          "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+              # repository (e.g. GitHub).
             "url": "A String", # Git repository URL.
-            "revisionId": "A String", # Git commit hash. required.
+            "revisionId": "A String", # Git commit hash.
+                # required.
           },
           "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
             "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -279,30 +397,45 @@
             "revisionId": "A String", # A revision (commit) ID.
             "hostUri": "A String", # The URI of a running Gerrit instance.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-            "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+            "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                # "project/subproject" is a valid project name.
+                # The "repo name" is hostURI/project.
           },
         },
       ],
-      "extSourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. Contexts describing a remote repo related to the source code have a `category` label of `remote_repo`. Source snapshot source contexts have a `category` of `snapshot`.
-        { # An ExtendedSourceContext is a SourceContext combined with additional details describing the context.
+      "extSourceContexts": [ # References to the locations and revisions of the source code used in the
+          # deployed application.
+          #
+          # Contexts describing a remote repo related to the source code
+          # have a `category` label of `remote_repo`. Source snapshot source
+          # contexts have a `category` of `snapshot`.
+        { # An ExtendedSourceContext is a SourceContext combined with additional
+            # details describing the context.
           "labels": { # Labels with user defined metadata.
             "a_key": "A String",
           },
-          "context": { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. # Any source context.
+          "context": { # A SourceContext is a reference to a tree of files. A SourceContext together # Any source context.
+              # with a path point to a unique revision of a single file or directory.
             "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-              "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+              "snapshotId": "A String", # The ID of the snapshot.
+                  # An empty snapshot_id refers to the most recent snapshot.
+              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                  # A cloud workspace is a place associated with a repo where modified files
+                  # can be stored before they are committed.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                  "uid": "A String", # A server-assigned, globally unique identifier.
+                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                      # (e.g. winged-cargo-31) and a repo name within that project.
                     "projectId": "A String", # The ID of the project.
                     "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                   },
-                  "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
-            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+                # repo (a repo hosted by the Google Cloud Platform).
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
@@ -310,16 +443,19 @@
               "revisionId": "A String", # A revision ID.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                "uid": "A String", # A server-assigned, globally unique identifier.
+                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                    # (e.g. winged-cargo-31) and a repo name within that project.
                   "projectId": "A String", # The ID of the project.
                   "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                 },
-                "uid": "A String", # A server-assigned, globally unique identifier.
               },
             },
-            "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+            "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+                # repository (e.g. GitHub).
               "url": "A String", # Git repository URL.
-              "revisionId": "A String", # Git commit hash. required.
+              "revisionId": "A String", # Git commit hash.
+                  # required.
             },
             "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -329,13 +465,18 @@
               "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                  # "project/subproject" is a valid project name.
+                  # The "repo name" is hostURI/project.
             },
           },
         },
       ],
-      "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as following: `domain/type/vmajor.minor` (for example `google.com/gcp-java/v1.1`).
-      "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by the Controller service.
+      "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as
+          # following: `domain/type/vmajor.minor` (for example
+          # `google.com/gcp-java/v1.1`).
+      "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by
+          # the Controller service.
       "id": "A String", # Unique identifier for the debuggee generated by the controller service.
     },
   }</pre>
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
index 67d6f9c..d84c5dd 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
@@ -94,13 +94,25 @@
 Args:
   debuggeeId: string, ID of the debuggee whose breakpoint to delete. (required)
   breakpointId: string, ID of the breakpoint to delete. (required)
-  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  clientVersion: string, The client version making the call.
+Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
@@ -111,53 +123,246 @@
 Args:
   debuggeeId: string, ID of the debuggee whose breakpoint to get. (required)
   breakpointId: string, ID of the breakpoint to get. (required)
-  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  clientVersion: string, The client version making the call.
+Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for getting breakpoint information.
-    "breakpoint": { # Represents the breakpoint specification, status and results. # Complete breakpoint state. The fields `id` and `location` are guaranteed to be set.
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+    "breakpoint": { # Represents the breakpoint specification, status and results. # Complete breakpoint state.
+        # The fields `id` and `location` are guaranteed to be set.
+      "status": { # Represents a contextual status message. # Breakpoint status.
+          #
+          # The status includes an error flag and a human readable message.
+          # This field is usually unset. The message can be either
+          # informational or an error message. Regardless, clients should always
+          # display the text message back to the user.
+          #
+          # Error status indicates complete failure of the breakpoint.
+          #
+          # Example (non-final state): `Still loading symbols...`
+          #
+          # Examples (final state):
+          #
+          # *   `Invalid line number` referring to location
+          # *   `Field f not found in class C` referring to condition
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+          # traffic optimization.  It enables storing a variable once and reference
+          # it from multiple variables, including variables stored in the
+          # `variable_table` itself.
+          # For example, the same `this` object, which may appear at many levels of
+          # the stack, can have all of its data stored once in this table.  The
+          # stack frame variables then would hold only a reference to it.
+          #
+          # The variable `var_table_index` field is an index into this repeated field.
+          # The stored objects are nameless and get their name from the referencing
+          # variable. The effective variable is a merge of the referencing variable
+          # and the referenced variable.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-      "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+          # displayed to the user.
         "a_key": "A String",
       },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
@@ -166,48 +371,334 @@
             "path": "A String", # Path to the source file within the source context of the target binary.
             "line": 42, # Line inside the file. The first line in the file has the value `1`.
           },
-          "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
-          "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "arguments": [ # Set of arguments passed to this function.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
         },
@@ -216,35 +707,190 @@
         "path": "A String", # Path to the source file within the source context of the target binary.
         "line": 42, # Line inside the file. The first line in the file has the value `1`.
       },
-      "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+          # The expressions are composed using expressions in the programming language
+          # at the source location. If the breakpoint action is `LOG`, the evaluated
+          # expressions are included in log statements.
         "A String",
       ],
-      "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "isFinalState": True or False, # When true, indicates that this is a final result and the
+          # breakpoint state will not change from here on.
+      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+          # The evaluated expressions appear in exactly the same order they
+          # are listed in the `expressions` field.
+          # The `name` field holds the original expression text, the `value` or
+          # `members` field holds the result of the evaluated expression.
+          # If the expression cannot be evaluated, the `status` inside the `Variable`
+          # will indicate an error and contain the error text.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
       "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-      "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+      "condition": "A String", # Condition that triggers the breakpoint.
+          # The condition is a compound boolean expression composed using expressions
+          # in a programming language at the source location.
     },
   }</pre>
 </div>
@@ -255,60 +901,263 @@
 
 Args:
   debuggeeId: string, ID of the debuggee whose breakpoints to list. (required)
-  includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by any user. Otherwise, it includes only breakpoints set by the caller.
-  includeInactive: boolean, When set to `true`, the response includes active and inactive breakpoints. Otherwise, it includes only active breakpoints.
+  includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
+any user. Otherwise, it includes only breakpoints set by the caller.
+  includeInactive: boolean, When set to `true`, the response includes active and inactive
+breakpoints. Otherwise, it includes only active breakpoints.
   x__xgafv: string, V1 error format.
-  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
-  stripResults: boolean, When set to `true`, the response breakpoints are stripped of the results fields: `stack_frames`, `evaluated_expressions` and `variable_table`.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  clientVersion: string, The client version making the call.
+Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  stripResults: boolean, This field is deprecated. The following fields are always stripped out of
+the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
   action_value: string, Only breakpoints with the specified action will pass the filter.
-  waitToken: string, A wait token that, if specified, blocks the call until the breakpoints list has changed, or a server selected timeout has expired. The value should be set from the last response. The error code `google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which should be called again with the same `wait_token`.
+  waitToken: string, A wait token that, if specified, blocks the call until the breakpoints
+list has changed, or a server selected timeout has expired.  The value
+should be set from the last response. The error code
+`google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
+should be called again with the same `wait_token`.
 
 Returns:
   An object of the form:
 
     { # Response for listing breakpoints.
-    "nextWaitToken": "A String", # A wait token that can be used in the next call to `list` (REST) or `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
-    "breakpoints": [ # List of all breakpoints with complete state. The fields `id` and `location` are guaranteed to be set on each breakpoint.
+    "nextWaitToken": "A String", # A wait token that can be used in the next call to `list` (REST) or
+        # `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
+    "breakpoints": [ # List of breakpoints matching the request.
+        # The fields `id` and `location` are guaranteed to be set on each breakpoint.
+        # The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
+        # are cleared on each breakpoint regardless of it's status.
       { # Represents the breakpoint specification, status and results.
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
-        "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+        "status": { # Represents a contextual status message. # Breakpoint status.
+            #
+            # The status includes an error flag and a human readable message.
+            # This field is usually unset. The message can be either
+            # informational or an error message. Regardless, clients should always
+            # display the text message back to the user.
+            #
+            # Error status indicates complete failure of the breakpoint.
+            #
+            # Example (non-final state): `Still loading symbols...`
+            #
+            # Examples (final state):
+            #
+            # *   `Invalid line number` referring to location
+            # *   `Field f not found in class C` referring to condition
+            # The message can indicate an error or informational status, and refer to
+            # specific parts of the containing object.
+            # For example, the `Breakpoint.status` field can indicate an error referring
+            # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
           "isError": True or False, # Distinguishes errors from informational messages.
           "refersTo": "A String", # Reference to which the message applies.
           "description": { # Represents a message with parameters. # Status message text.
             "parameters": [ # Optional parameters to be embedded into the message.
               "A String",
             ],
-            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                # character.
+                #
+                # Examples:
+                #
+                # *   `Failed to load '$0' which helps debug $1 the first time it
+                #     is loaded.  Again, $0 is very important.`
+                # *   `Please pay $$10 to use $0 instead of $1.`
           },
         },
-        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-        "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-          { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-              # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+        "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+            # traffic optimization.  It enables storing a variable once and reference
+            # it from multiple variables, including variables stored in the
+            # `variable_table` itself.
+            # For example, the same `this` object, which may appear at many levels of
+            # the stack, can have all of its data stored once in this table.  The
+            # stack frame variables then would hold only a reference to it.
+            #
+            # The variable `var_table_index` field is an index into this repeated field.
+            # The stored objects are nameless and get their name from the referencing
+            # variable. The effective variable is a merge of the referencing variable
+            # and the referenced variable.
+          { # Represents a variable or an argument possibly of a compound object type.
+              # Note how the following variables are represented:
+              #
+              # 1) A simple variable:
+              #
+              #     int x = 5
+              #
+              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #
+              # 2) A compound object:
+              #
+              #     struct T {
+              #         int m1;
+              #         int m2;
+              #     };
+              #     T x = { 3, 7 };
+              #
+              #     {  // Captured variable
+              #         name: "x",
+              #         type: "T",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 3) A pointer where the pointee was captured:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00500500",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 4) A pointer where the pointee was not captured:
+              #
+              #     T* p = new T;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00400400"
+              #         status { is_error: true, description { format: "unavailable" } }
+              #     }
+              #
+              # The status should describe the reason for the missing value,
+              # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+              #
+              # Note that a null pointer should not have members.
+              #
+              # 5) An unnamed value:
+              #
+              #     int* p = new int(7);
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         value: "0x00500500",
+              #         type: "int*",
+              #         members { value: "7", type: "int" } }
+              #
+              # 6) An unnamed pointer where the pointee was not captured:
+              #
+              #     int* p = new int(7);
+              #     int** pp = &p;
+              #
+              #     {  // Captured variable
+              #         name: "pp",
+              #         value: "0x00500500",
+              #         type: "int**",
+              #         members {
+              #             value: "0x00400400",
+              #             type: "int*"
+              #             status {
+              #                 is_error: true,
+              #                 description: { format: "unavailable" } }
+              #             }
+              #         }
+              #     }
+              #
+              # To optimize computation, memory and network traffic, variables that
+              # repeat in the output multiple times can be stored once in a shared
+              # variable table and be referenced using the `var_table_index` field.  The
+              # variables stored in the shared table are nameless and are essentially
+              # a partition of the complete variable. To reconstruct the complete
+              # variable, merge the referencing variable with the referenced variable.
+              #
+              # When using the shared variable table, the following variables:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #     T& r = x;
+              #
+              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+              #     { name: "r", type="T&", var_table_index: 3 }
+              #
+              #     {  // Shared variable table entry #3:
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # Note that the pointer address is stored with the referencing variable
+              # and not with the referenced variable. This allows the referenced variable
+              # to be shared between pointers and references.
+              #
+              # The type field is optional. The debugger agent may or may not support it.
+            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                # unset. A status of a single variable only applies to that variable or
+                # expression. The rest of breakpoint data still remains valid. Variables
+                # might be reported in error state even when breakpoint is not in final
+                # state.
+                #
+                # The message may refer to variable name with `refers_to` set to
+                # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                # In either case variable value and members will be unset.
+                #
+                # Example of error message applied to name: `Invalid expression syntax`.
+                #
+                # Example of information message applied to value: `Not captured`.
+                #
+                # Examples of error message applied to value:
+                #
+                # *   `Malformed string`,
+                # *   `Field f not found in class C`
+                # *   `Null pointer dereference`
+                # The message can indicate an error or informational status, and refer to
+                # specific parts of the containing object.
+                # For example, the `Breakpoint.status` field can indicate an error referring
+                # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
               "isError": True or False, # Distinguishes errors from informational messages.
               "refersTo": "A String", # Reference to which the message applies.
               "description": { # Represents a message with parameters. # Status message text.
                 "parameters": [ # Optional parameters to be embedded into the message.
                   "A String",
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                    # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                    # character.
+                    #
+                    # Examples:
+                    #
+                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    #     is loaded.  Again, $0 is very important.`
+                    # *   `Please pay $$10 to use $0 instead of $1.`
               },
             },
             "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
             "value": "A String", # Simple value of the variable.
             "members": [ # Members contained or pointed to by the variable.
               # Object with schema name: Variable
             ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                # `var_table_index`, `type` goes next to `value`. The interpretation of
+                # a type is agent specific. It is recommended to include the dynamic type
+                # rather than a static type of an object.
           },
         ],
+        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+            # resolution.
         "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-        "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+        "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+            # displayed to the user.
           "a_key": "A String",
         },
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+            # the breakpoint hits. The message may include parameter placeholders `$0`,
+            # `$1`, etc. These placeholders are replaced with the evaluated value
+            # of the appropriate expression. Expressions not referenced in
+            # `log_message_format` are not logged.
+            #
+            # Example: `Message received, id = $0, count = $1` with
+            # `expressions` = `[ message.id, message.count ]`.
+        "userEmail": "A String", # E-mail address of the user that created this breakpoint
         "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "stackFrames": [ # The stack at breakpoint time.
           { # Represents a stack frame context.
@@ -317,48 +1166,334 @@
               "path": "A String", # Path to the source file within the source context of the target binary.
               "line": 42, # Line inside the file. The first line in the file has the value `1`.
             },
-            "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                  # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+            "locals": [ # Set of local variables at the stack frame location.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                   "isError": True or False, # Distinguishes errors from informational messages.
                   "refersTo": "A String", # Reference to which the message applies.
                   "description": { # Represents a message with parameters. # Status message text.
                     "parameters": [ # Optional parameters to be embedded into the message.
                       "A String",
                     ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
                   },
                 },
                 "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
                 "value": "A String", # Simple value of the variable.
                 "members": [ # Members contained or pointed to by the variable.
                   # Object with schema name: Variable
                 ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
               },
             ],
-            "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                  # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+            "arguments": [ # Set of arguments passed to this function.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                   "isError": True or False, # Distinguishes errors from informational messages.
                   "refersTo": "A String", # Reference to which the message applies.
                   "description": { # Represents a message with parameters. # Status message text.
                     "parameters": [ # Optional parameters to be embedded into the message.
                       "A String",
                     ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
                   },
                 },
                 "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
                 "value": "A String", # Simple value of the variable.
                 "members": [ # Members contained or pointed to by the variable.
                   # Object with schema name: Variable
                 ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
               },
             ],
           },
@@ -367,35 +1502,190 @@
           "path": "A String", # Path to the source file within the source context of the target binary.
           "line": 42, # Line inside the file. The first line in the file has the value `1`.
         },
-        "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-        "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+        "action": "A String", # Action that the agent should perform when the code at the
+            # breakpoint location is hit.
+        "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+            # The expressions are composed using expressions in the programming language
+            # at the source location. If the breakpoint action is `LOG`, the evaluated
+            # expressions are included in log statements.
           "A String",
         ],
-        "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-        "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-          { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-              # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-            "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+        "isFinalState": True or False, # When true, indicates that this is a final result and the
+            # breakpoint state will not change from here on.
+        "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+            # The evaluated expressions appear in exactly the same order they
+            # are listed in the `expressions` field.
+            # The `name` field holds the original expression text, the `value` or
+            # `members` field holds the result of the evaluated expression.
+            # If the expression cannot be evaluated, the `status` inside the `Variable`
+            # will indicate an error and contain the error text.
+          { # Represents a variable or an argument possibly of a compound object type.
+              # Note how the following variables are represented:
+              #
+              # 1) A simple variable:
+              #
+              #     int x = 5
+              #
+              #     { name: "x", value: "5", type: "int" }  // Captured variable
+              #
+              # 2) A compound object:
+              #
+              #     struct T {
+              #         int m1;
+              #         int m2;
+              #     };
+              #     T x = { 3, 7 };
+              #
+              #     {  // Captured variable
+              #         name: "x",
+              #         type: "T",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 3) A pointer where the pointee was captured:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00500500",
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # 4) A pointer where the pointee was not captured:
+              #
+              #     T* p = new T;
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         type: "T*",
+              #         value: "0x00400400"
+              #         status { is_error: true, description { format: "unavailable" } }
+              #     }
+              #
+              # The status should describe the reason for the missing value,
+              # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+              #
+              # Note that a null pointer should not have members.
+              #
+              # 5) An unnamed value:
+              #
+              #     int* p = new int(7);
+              #
+              #     {   // Captured variable
+              #         name: "p",
+              #         value: "0x00500500",
+              #         type: "int*",
+              #         members { value: "7", type: "int" } }
+              #
+              # 6) An unnamed pointer where the pointee was not captured:
+              #
+              #     int* p = new int(7);
+              #     int** pp = &p;
+              #
+              #     {  // Captured variable
+              #         name: "pp",
+              #         value: "0x00500500",
+              #         type: "int**",
+              #         members {
+              #             value: "0x00400400",
+              #             type: "int*"
+              #             status {
+              #                 is_error: true,
+              #                 description: { format: "unavailable" } }
+              #             }
+              #         }
+              #     }
+              #
+              # To optimize computation, memory and network traffic, variables that
+              # repeat in the output multiple times can be stored once in a shared
+              # variable table and be referenced using the `var_table_index` field.  The
+              # variables stored in the shared table are nameless and are essentially
+              # a partition of the complete variable. To reconstruct the complete
+              # variable, merge the referencing variable with the referenced variable.
+              #
+              # When using the shared variable table, the following variables:
+              #
+              #     T x = { 3, 7 };
+              #     T* p = &x;
+              #     T& r = x;
+              #
+              #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+              #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+              #     { name: "r", type="T&", var_table_index: 3 }
+              #
+              #     {  // Shared variable table entry #3:
+              #         members { name: "m1", value: "3", type: "int" },
+              #         members { name: "m2", value: "7", type: "int" }
+              #     }
+              #
+              # Note that the pointer address is stored with the referencing variable
+              # and not with the referenced variable. This allows the referenced variable
+              # to be shared between pointers and references.
+              #
+              # The type field is optional. The debugger agent may or may not support it.
+            "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                # unset. A status of a single variable only applies to that variable or
+                # expression. The rest of breakpoint data still remains valid. Variables
+                # might be reported in error state even when breakpoint is not in final
+                # state.
+                #
+                # The message may refer to variable name with `refers_to` set to
+                # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                # In either case variable value and members will be unset.
+                #
+                # Example of error message applied to name: `Invalid expression syntax`.
+                #
+                # Example of information message applied to value: `Not captured`.
+                #
+                # Examples of error message applied to value:
+                #
+                # *   `Malformed string`,
+                # *   `Field f not found in class C`
+                # *   `Null pointer dereference`
+                # The message can indicate an error or informational status, and refer to
+                # specific parts of the containing object.
+                # For example, the `Breakpoint.status` field can indicate an error referring
+                # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
               "isError": True or False, # Distinguishes errors from informational messages.
               "refersTo": "A String", # Reference to which the message applies.
               "description": { # Represents a message with parameters. # Status message text.
                 "parameters": [ # Optional parameters to be embedded into the message.
                   "A String",
                 ],
-                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                    # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                    # character.
+                    #
+                    # Examples:
+                    #
+                    # *   `Failed to load '$0' which helps debug $1 the first time it
+                    #     is loaded.  Again, $0 is very important.`
+                    # *   `Please pay $$10 to use $0 instead of $1.`
               },
             },
             "name": "A String", # Name of the variable, if any.
-            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+            "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                # one variable can reference the same variable in the table. The
+                # `var_table_index` field is an index into `variable_table` in Breakpoint.
             "value": "A String", # Simple value of the variable.
             "members": [ # Members contained or pointed to by the variable.
               # Object with schema name: Variable
             ],
-            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+            "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                # `var_table_index`, `type` goes next to `value`. The interpretation of
+                # a type is agent specific. It is recommended to include the dynamic type
+                # rather than a static type of an object.
           },
         ],
         "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-        "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+        "condition": "A String", # Condition that triggers the breakpoint.
+            # The condition is a compound boolean expression composed using expressions
+            # in a programming language at the source location.
       },
     ],
   }</pre>
@@ -411,45 +1701,233 @@
     The object takes the form of:
 
 { # Represents the breakpoint specification, status and results.
-  "userEmail": "A String", # E-mail address of the user that created this breakpoint
-  "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+  "status": { # Represents a contextual status message. # Breakpoint status.
+      # 
+      # The status includes an error flag and a human readable message.
+      # This field is usually unset. The message can be either
+      # informational or an error message. Regardless, clients should always
+      # display the text message back to the user.
+      # 
+      # Error status indicates complete failure of the breakpoint.
+      # 
+      # Example (non-final state): `Still loading symbols...`
+      # 
+      # Examples (final state):
+      # 
+      # *   `Invalid line number` referring to location
+      # *   `Field f not found in class C` referring to condition
+      # The message can indicate an error or informational status, and refer to
+      # specific parts of the containing object.
+      # For example, the `Breakpoint.status` field can indicate an error referring
+      # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
     "isError": True or False, # Distinguishes errors from informational messages.
     "refersTo": "A String", # Reference to which the message applies.
     "description": { # Represents a message with parameters. # Status message text.
       "parameters": [ # Optional parameters to be embedded into the message.
         "A String",
       ],
-      "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+      "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+          # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+          # character.
+          #
+          # Examples:
+          #
+          # *   `Failed to load '$0' which helps debug $1 the first time it
+          #     is loaded.  Again, $0 is very important.`
+          # *   `Please pay $$10 to use $0 instead of $1.`
     },
   },
-  "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-  "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-    { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-        # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+  "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+      # traffic optimization.  It enables storing a variable once and reference
+      # it from multiple variables, including variables stored in the
+      # `variable_table` itself.
+      # For example, the same `this` object, which may appear at many levels of
+      # the stack, can have all of its data stored once in this table.  The
+      # stack frame variables then would hold only a reference to it.
+      # 
+      # The variable `var_table_index` field is an index into this repeated field.
+      # The stored objects are nameless and get their name from the referencing
+      # variable. The effective variable is a merge of the referencing variable
+      # and the referenced variable.
+    { # Represents a variable or an argument possibly of a compound object type.
+        # Note how the following variables are represented:
+        #
+        # 1) A simple variable:
+        #
+        #     int x = 5
+        #
+        #     { name: "x", value: "5", type: "int" }  // Captured variable
+        #
+        # 2) A compound object:
+        #
+        #     struct T {
+        #         int m1;
+        #         int m2;
+        #     };
+        #     T x = { 3, 7 };
+        #
+        #     {  // Captured variable
+        #         name: "x",
+        #         type: "T",
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # 3) A pointer where the pointee was captured:
+        #
+        #     T x = { 3, 7 };
+        #     T* p = &x;
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         type: "T*",
+        #         value: "0x00500500",
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # 4) A pointer where the pointee was not captured:
+        #
+        #     T* p = new T;
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         type: "T*",
+        #         value: "0x00400400"
+        #         status { is_error: true, description { format: "unavailable" } }
+        #     }
+        #
+        # The status should describe the reason for the missing value,
+        # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+        #
+        # Note that a null pointer should not have members.
+        #
+        # 5) An unnamed value:
+        #
+        #     int* p = new int(7);
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         value: "0x00500500",
+        #         type: "int*",
+        #         members { value: "7", type: "int" } }
+        #
+        # 6) An unnamed pointer where the pointee was not captured:
+        #
+        #     int* p = new int(7);
+        #     int** pp = &p;
+        #
+        #     {  // Captured variable
+        #         name: "pp",
+        #         value: "0x00500500",
+        #         type: "int**",
+        #         members {
+        #             value: "0x00400400",
+        #             type: "int*"
+        #             status {
+        #                 is_error: true,
+        #                 description: { format: "unavailable" } }
+        #             }
+        #         }
+        #     }
+        #
+        # To optimize computation, memory and network traffic, variables that
+        # repeat in the output multiple times can be stored once in a shared
+        # variable table and be referenced using the `var_table_index` field.  The
+        # variables stored in the shared table are nameless and are essentially
+        # a partition of the complete variable. To reconstruct the complete
+        # variable, merge the referencing variable with the referenced variable.
+        #
+        # When using the shared variable table, the following variables:
+        #
+        #     T x = { 3, 7 };
+        #     T* p = &x;
+        #     T& r = x;
+        #
+        #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+        #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+        #     { name: "r", type="T&", var_table_index: 3 }
+        #
+        #     {  // Shared variable table entry #3:
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # Note that the pointer address is stored with the referencing variable
+        # and not with the referenced variable. This allows the referenced variable
+        # to be shared between pointers and references.
+        #
+        # The type field is optional. The debugger agent may or may not support it.
+      "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          # unset. A status of a single variable only applies to that variable or
+          # expression. The rest of breakpoint data still remains valid. Variables
+          # might be reported in error state even when breakpoint is not in final
+          # state.
+          #
+          # The message may refer to variable name with `refers_to` set to
+          # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+          # In either case variable value and members will be unset.
+          #
+          # Example of error message applied to name: `Invalid expression syntax`.
+          #
+          # Example of information message applied to value: `Not captured`.
+          #
+          # Examples of error message applied to value:
+          #
+          # *   `Malformed string`,
+          # *   `Field f not found in class C`
+          # *   `Null pointer dereference`
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
       "name": "A String", # Name of the variable, if any.
-      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+          # one variable can reference the same variable in the table. The
+          # `var_table_index` field is an index into `variable_table` in Breakpoint.
       "value": "A String", # Simple value of the variable.
       "members": [ # Members contained or pointed to by the variable.
         # Object with schema name: Variable
       ],
-      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          # `var_table_index`, `type` goes next to `value`. The interpretation of
+          # a type is agent specific. It is recommended to include the dynamic type
+          # rather than a static type of an object.
     },
   ],
+  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+      # resolution.
   "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-  "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+  "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+      # displayed to the user.
     "a_key": "A String",
   },
-  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+  "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+      # the breakpoint hits. The message may include parameter placeholders `$0`,
+      # `$1`, etc. These placeholders are replaced with the evaluated value
+      # of the appropriate expression. Expressions not referenced in
+      # `log_message_format` are not logged.
+      # 
+      # Example: `Message received, id = $0, count = $1` with
+      # `expressions` = `[ message.id, message.count ]`.
+  "userEmail": "A String", # E-mail address of the user that created this breakpoint
   "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
   "stackFrames": [ # The stack at breakpoint time.
     { # Represents a stack frame context.
@@ -458,48 +1936,334 @@
         "path": "A String", # Path to the source file within the source context of the target binary.
         "line": 42, # Line inside the file. The first line in the file has the value `1`.
       },
-      "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "locals": [ # Set of local variables at the stack frame location.
+          # Note that this might not be populated for all stack frames.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
-      "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "arguments": [ # Set of arguments passed to this function.
+          # Note that this might not be populated for all stack frames.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
     },
@@ -508,84 +2272,432 @@
     "path": "A String", # Path to the source file within the source context of the target binary.
     "line": 42, # Line inside the file. The first line in the file has the value `1`.
   },
-  "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-  "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+  "action": "A String", # Action that the agent should perform when the code at the
+      # breakpoint location is hit.
+  "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+      # The expressions are composed using expressions in the programming language
+      # at the source location. If the breakpoint action is `LOG`, the evaluated
+      # expressions are included in log statements.
     "A String",
   ],
-  "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-  "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-    { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-        # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+  "isFinalState": True or False, # When true, indicates that this is a final result and the
+      # breakpoint state will not change from here on.
+  "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+      # The evaluated expressions appear in exactly the same order they
+      # are listed in the `expressions` field.
+      # The `name` field holds the original expression text, the `value` or
+      # `members` field holds the result of the evaluated expression.
+      # If the expression cannot be evaluated, the `status` inside the `Variable`
+      # will indicate an error and contain the error text.
+    { # Represents a variable or an argument possibly of a compound object type.
+        # Note how the following variables are represented:
+        #
+        # 1) A simple variable:
+        #
+        #     int x = 5
+        #
+        #     { name: "x", value: "5", type: "int" }  // Captured variable
+        #
+        # 2) A compound object:
+        #
+        #     struct T {
+        #         int m1;
+        #         int m2;
+        #     };
+        #     T x = { 3, 7 };
+        #
+        #     {  // Captured variable
+        #         name: "x",
+        #         type: "T",
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # 3) A pointer where the pointee was captured:
+        #
+        #     T x = { 3, 7 };
+        #     T* p = &x;
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         type: "T*",
+        #         value: "0x00500500",
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # 4) A pointer where the pointee was not captured:
+        #
+        #     T* p = new T;
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         type: "T*",
+        #         value: "0x00400400"
+        #         status { is_error: true, description { format: "unavailable" } }
+        #     }
+        #
+        # The status should describe the reason for the missing value,
+        # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+        #
+        # Note that a null pointer should not have members.
+        #
+        # 5) An unnamed value:
+        #
+        #     int* p = new int(7);
+        #
+        #     {   // Captured variable
+        #         name: "p",
+        #         value: "0x00500500",
+        #         type: "int*",
+        #         members { value: "7", type: "int" } }
+        #
+        # 6) An unnamed pointer where the pointee was not captured:
+        #
+        #     int* p = new int(7);
+        #     int** pp = &p;
+        #
+        #     {  // Captured variable
+        #         name: "pp",
+        #         value: "0x00500500",
+        #         type: "int**",
+        #         members {
+        #             value: "0x00400400",
+        #             type: "int*"
+        #             status {
+        #                 is_error: true,
+        #                 description: { format: "unavailable" } }
+        #             }
+        #         }
+        #     }
+        #
+        # To optimize computation, memory and network traffic, variables that
+        # repeat in the output multiple times can be stored once in a shared
+        # variable table and be referenced using the `var_table_index` field.  The
+        # variables stored in the shared table are nameless and are essentially
+        # a partition of the complete variable. To reconstruct the complete
+        # variable, merge the referencing variable with the referenced variable.
+        #
+        # When using the shared variable table, the following variables:
+        #
+        #     T x = { 3, 7 };
+        #     T* p = &x;
+        #     T& r = x;
+        #
+        #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+        #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+        #     { name: "r", type="T&", var_table_index: 3 }
+        #
+        #     {  // Shared variable table entry #3:
+        #         members { name: "m1", value: "3", type: "int" },
+        #         members { name: "m2", value: "7", type: "int" }
+        #     }
+        #
+        # Note that the pointer address is stored with the referencing variable
+        # and not with the referenced variable. This allows the referenced variable
+        # to be shared between pointers and references.
+        #
+        # The type field is optional. The debugger agent may or may not support it.
+      "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+          # unset. A status of a single variable only applies to that variable or
+          # expression. The rest of breakpoint data still remains valid. Variables
+          # might be reported in error state even when breakpoint is not in final
+          # state.
+          #
+          # The message may refer to variable name with `refers_to` set to
+          # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+          # In either case variable value and members will be unset.
+          #
+          # Example of error message applied to name: `Invalid expression syntax`.
+          #
+          # Example of information message applied to value: `Not captured`.
+          #
+          # Examples of error message applied to value:
+          #
+          # *   `Malformed string`,
+          # *   `Field f not found in class C`
+          # *   `Null pointer dereference`
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
       "name": "A String", # Name of the variable, if any.
-      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+      "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+          # one variable can reference the same variable in the table. The
+          # `var_table_index` field is an index into `variable_table` in Breakpoint.
       "value": "A String", # Simple value of the variable.
       "members": [ # Members contained or pointed to by the variable.
         # Object with schema name: Variable
       ],
-      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+      "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+          # `var_table_index`, `type` goes next to `value`. The interpretation of
+          # a type is agent specific. It is recommended to include the dynamic type
+          # rather than a static type of an object.
     },
   ],
   "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-  "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+  "condition": "A String", # Condition that triggers the breakpoint.
+      # The condition is a compound boolean expression composed using expressions
+      # in a programming language at the source location.
 }
 
-  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  clientVersion: string, The client version making the call.
+Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for setting a breakpoint.
-    "breakpoint": { # Represents the breakpoint specification, status and results. # Breakpoint resource. The field `id` is guaranteed to be set (in addition to the echoed fileds).
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Breakpoint status. The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user. Error status indicates complete failure of the breakpoint. Example (non-final state): `Still loading symbols...` Examples (final state): * `Invalid line number` referring to location * `Field f not found in class C` referring to condition
+    "breakpoint": { # Represents the breakpoint specification, status and results. # Breakpoint resource.
+        # The field `id` is guaranteed to be set (in addition to the echoed fileds).
+      "status": { # Represents a contextual status message. # Breakpoint status.
+          #
+          # The status includes an error flag and a human readable message.
+          # This field is usually unset. The message can be either
+          # informational or an error message. Regardless, clients should always
+          # display the text message back to the user.
+          #
+          # Error status indicates complete failure of the breakpoint.
+          #
+          # Example (non-final state): `Still loading symbols...`
+          #
+          # Examples (final state):
+          #
+          # *   `Invalid line number` referring to location
+          # *   `Field f not found in class C` referring to condition
+          # The message can indicate an error or informational status, and refer to
+          # specific parts of the containing object.
+          # For example, the `Breakpoint.status` field can indicate an error referring
+          # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
         "isError": True or False, # Distinguishes errors from informational messages.
         "refersTo": "A String", # Reference to which the message applies.
         "description": { # Represents a message with parameters. # Status message text.
           "parameters": [ # Optional parameters to be embedded into the message.
             "A String",
           ],
-          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+          "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+              # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+              # character.
+              #
+              # Examples:
+              #
+              # *   `Failed to load '$0' which helps debug $1 the first time it
+              #     is loaded.  Again, $0 is very important.`
+              # *   `Please pay $$10 to use $0 instead of $1.`
         },
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when the breakpoint hits. The message may include parameter placeholders `$0`, `$1`, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in `log_message_format` are not logged. Example: `Message received, id = $0, count = $1` with `expressions` = `[ message.id, message.count ]`.
-      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the `variable_table` itself. For example, the same `this` object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it. The variable `var_table_index` field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
+          # traffic optimization.  It enables storing a variable once and reference
+          # it from multiple variables, including variables stored in the
+          # `variable_table` itself.
+          # For example, the same `this` object, which may appear at many levels of
+          # the stack, can have all of its data stored once in this table.  The
+          # stack frame variables then would hold only a reference to it.
+          #
+          # The variable `var_table_index` field is an index into this repeated field.
+          # The stored objects are nameless and get their name from the referencing
+          # variable. The effective variable is a merge of the referencing variable
+          # and the referenced variable.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
-      "labels": { # A set of custom breakpoint properties, populated by the agent, to be displayed to the user.
+      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
+          # displayed to the user.
         "a_key": "A String",
       },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds resolution.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
@@ -594,48 +2706,334 @@
             "path": "A String", # Path to the source file within the source context of the target binary.
             "line": 42, # Line inside the file. The first line in the file has the value `1`.
           },
-          "locals": [ # Set of local variables at the stack frame location. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
-          "arguments": [ # Set of arguments passed to this function. Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-                # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+          "arguments": [ # Set of arguments passed to this function.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
                 "isError": True or False, # Distinguishes errors from informational messages.
                 "refersTo": "A String", # Reference to which the message applies.
                 "description": { # Represents a message with parameters. # Status message text.
                   "parameters": [ # Optional parameters to be embedded into the message.
                     "A String",
                   ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
                 },
               },
               "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
               "value": "A String", # Simple value of the variable.
               "members": [ # Members contained or pointed to by the variable.
                 # Object with schema name: Variable
               ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
             },
           ],
         },
@@ -644,35 +3042,190 @@
         "path": "A String", # Path to the source file within the source context of the target binary.
         "line": 42, # Line inside the file. The first line in the file has the value `1`.
       },
-      "action": "A String", # Action that the agent should perform when the code at the breakpoint location is hit.
-      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is `LOG`, the evaluated expressions are included in log statements.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
+          # The expressions are composed using expressions in the programming language
+          # at the source location. If the breakpoint action is `LOG`, the evaluated
+          # expressions are included in log statements.
         "A String",
       ],
-      "isFinalState": True or False, # When true, indicates that this is a final result and the breakpoint state will not change from here on.
-      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the `expressions` field. The `name` field holds the original expression text, the `value` or `members` field holds the result of the evaluated expression. If the expression cannot be evaluated, the `status` inside the `Variable` will indicate an error and contain the error text.
-        { # Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: "x", value: "5", type: "int" } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: "x", type: "T", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: "p", type: "T*", value: "0x00500500", members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: "p", type: "T*", value: "0x00400400" status { is_error: true, description { format: "unavailable" } } } The status should describe the reason for the missing value, such as ``, ``, `
-            # `. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: "p", value: "0x00500500", type: "int*", members { value: "7", type: "int" } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: "pp", value: "0x00500500", type: "int**", members { value: "0x00400400", type: "int*" status { is_error: true, description: { format: "unavailable" } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the `var_table_index` field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: "x", var_table_index: 3, type: "T" } // Captured variables { name: "p", value "0x00500500", type="T*", var_table_index: 3 } { name: "r", type="T&", var_table_index: 3 } { // Shared variable table entry #3: members { name: "m1", value: "3", type: "int" }, members { name: "m2", value: "7", type: "int" } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Status associated with the variable. This field will usually stay unset. A status of a single variable only applies to that variable or expression. The rest of breakpoint data still remains valid. Variables might be reported in error state even when breakpoint is not in final state. The message may refer to variable name with `refers_to` set to `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`. In either case variable value and members will be unset. Example of error message applied to name: `Invalid expression syntax`. Example of information message applied to value: `Not captured`. Examples of error message applied to value: * `Malformed string`, * `Field f not found in class C` * `Null pointer dereference`
+      "isFinalState": True or False, # When true, indicates that this is a final result and the
+          # breakpoint state will not change from here on.
+      "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
+          # The evaluated expressions appear in exactly the same order they
+          # are listed in the `expressions` field.
+          # The `name` field holds the original expression text, the `value` or
+          # `members` field holds the result of the evaluated expression.
+          # If the expression cannot be evaluated, the `status` inside the `Variable`
+          # will indicate an error and contain the error text.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
             "isError": True or False, # Distinguishes errors from informational messages.
             "refersTo": "A String", # Reference to which the message applies.
             "description": { # Represents a message with parameters. # Status message text.
               "parameters": [ # Optional parameters to be embedded into the message.
                 "A String",
               ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
             },
           },
           "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than one variable can reference the same variable in the table. The `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
           "value": "A String", # Simple value of the variable.
           "members": [ # Members contained or pointed to by the variable.
             # Object with schema name: Variable
           ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with `var_table_index`, `type` goes next to `value`. The interpretation of a type is agent specific. It is recommended to include the dynamic type rather than a static type of an object.
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
         },
       ],
       "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
-      "condition": "A String", # Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
+      "condition": "A String", # Condition that triggers the breakpoint.
+          # The condition is a compound boolean expression composed using expressions
+          # in a programming language at the source location.
     },
   }</pre>
 </div>
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
index 693808d..589aed2 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
@@ -88,50 +88,96 @@
   <pre>Lists all the debuggees that the user can set breakpoints to.
 
 Args:
-  clientVersion: string, The client version making the call. Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
-  includeInactive: boolean, When set to `true`, the result includes all debuggees. Otherwise, the result includes only debuggees that are active.
+  clientVersion: string, The client version making the call.
+Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
+  includeInactive: boolean, When set to `true`, the result includes all debuggees. Otherwise, the
+result includes only debuggees that are active.
   project: string, Project number of a Google Cloud project whose debuggees to list.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response for listing debuggees.
-    "debuggees": [ # List of debuggees accessible to the calling user. Note that the `description` field is the only human readable field that should be displayed to the user. The fields `debuggee.id` and `description` fields are guaranteed to be set on each debuggee.
-      { # Represents the application to debug. The application may include one or more replicated processes executing the same code. Each of these processes is attached with a debugger agent, carrying out the debugging commands. The agents attached to the same debuggee are identified by using exactly the same field values when registering.
-        "status": { # Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the `Breakpoint.status` field can indicate an error referring to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`. # Human readable message to be displayed to the user about this debuggee. Absence of this field indicates no status. The message can be either informational or an error status.
+    "debuggees": [ # List of debuggees accessible to the calling user.
+        # Note that the `description` field is the only human readable field
+        # that should be displayed to the user.
+        # The fields `debuggee.id` and  `description` fields are guaranteed to be
+        # set on each debuggee.
+      { # Represents the application to debug. The application may include one or more
+          # replicated processes executing the same code. Each of these processes is
+          # attached with a debugger agent, carrying out the debugging commands.
+          # The agents attached to the same debuggee are identified by using exactly the
+          # same field values when registering.
+        "status": { # Represents a contextual status message. # Human readable message to be displayed to the user about this debuggee.
+            # Absence of this field indicates no status. The message can be either
+            # informational or an error status.
+            # The message can indicate an error or informational status, and refer to
+            # specific parts of the containing object.
+            # For example, the `Breakpoint.status` field can indicate an error referring
+            # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
           "isError": True or False, # Distinguishes errors from informational messages.
           "refersTo": "A String", # Reference to which the message applies.
           "description": { # Represents a message with parameters. # Status message text.
             "parameters": [ # Optional parameters to be embedded into the message.
               "A String",
             ],
-            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`, `$1`, etc. to reference parameters. `$$` can be used to denote the `$` character. Examples: * `Failed to load '$0' which helps debug $1 the first time it is loaded. Again, $0 is very important.` * `Please pay $$10 to use $0 instead of $1.`
+            "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                # character.
+                #
+                # Examples:
+                #
+                # *   `Failed to load '$0' which helps debug $1 the first time it
+                #     is loaded.  Again, $0 is very important.`
+                # *   `Please pay $$10 to use $0 instead of $1.`
           },
         },
-        "description": "A String", # Human readable description of the debuggee. Including a human-readable project name, environment name and version information is recommended.
-        "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and detach from the debuggee.
-        "labels": { # A set of custom debuggee properties, populated by the agent, to be displayed to the user.
+        "description": "A String", # Human readable description of the debuggee.
+            # Including a human-readable project name, environment name and version
+            # information is recommended.
+        "isDisabled": True or False, # If set to `true`, indicates that the agent should disable itself and
+            # detach from the debuggee.
+        "labels": { # A set of custom debuggee properties, populated by the agent, to be
+            # displayed to the user.
           "a_key": "A String",
         },
-        "uniquifier": "A String", # Debuggee uniquifier within the project. Any string that identifies the application within the project can be used. Including environment and version or build IDs is recommended.
-        "project": "A String", # Project the debuggee is associated with. Use the project number when registering a Google Cloud Platform project.
-        "sourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. NOTE: This field is deprecated. Consumers should use `ext_source_contexts` if it is not empty. Debug agents should populate both this field and `ext_source_contexts`.
-          { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
+        "uniquifier": "A String", # Debuggee uniquifier within the project.
+            # Any string that identifies the application within the project can be used.
+            # Including environment and version or build IDs is recommended.
+        "project": "A String", # Project the debuggee is associated with.
+            # Use the project number when registering a Google Cloud Platform project.
+        "sourceContexts": [ # References to the locations and revisions of the source code used in the
+            # deployed application.
+            #
+            # NOTE: This field is deprecated. Consumers should use
+            # `ext_source_contexts` if it is not empty. Debug agents should populate
+            # both this field and `ext_source_contexts`.
+          { # A SourceContext is a reference to a tree of files. A SourceContext together
+              # with a path point to a unique revision of a single file or directory.
             "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-              "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+              "snapshotId": "A String", # The ID of the snapshot.
+                  # An empty snapshot_id refers to the most recent snapshot.
+              "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                  # A cloud workspace is a place associated with a repo where modified files
+                  # can be stored before they are committed.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                  "uid": "A String", # A server-assigned, globally unique identifier.
+                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                      # (e.g. winged-cargo-31) and a repo name within that project.
                     "projectId": "A String", # The ID of the project.
                     "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                   },
-                  "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
-            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+            "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+                # repo (a repo hosted by the Google Cloud Platform).
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
@@ -139,16 +185,19 @@
               "revisionId": "A String", # A revision ID.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                "uid": "A String", # A server-assigned, globally unique identifier.
+                "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                    # (e.g. winged-cargo-31) and a repo name within that project.
                   "projectId": "A String", # The ID of the project.
                   "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                 },
-                "uid": "A String", # A server-assigned, globally unique identifier.
               },
             },
-            "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+            "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+                # repository (e.g. GitHub).
               "url": "A String", # Git repository URL.
-              "revisionId": "A String", # Git commit hash. required.
+              "revisionId": "A String", # Git commit hash.
+                  # required.
             },
             "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
               "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -158,30 +207,45 @@
               "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+              "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                  # "project/subproject" is a valid project name.
+                  # The "repo name" is hostURI/project.
             },
           },
         ],
-        "extSourceContexts": [ # References to the locations and revisions of the source code used in the deployed application. Contexts describing a remote repo related to the source code have a `category` label of `remote_repo`. Source snapshot source contexts have a `category` of `snapshot`.
-          { # An ExtendedSourceContext is a SourceContext combined with additional details describing the context.
+        "extSourceContexts": [ # References to the locations and revisions of the source code used in the
+            # deployed application.
+            #
+            # Contexts describing a remote repo related to the source code
+            # have a `category` label of `remote_repo`. Source snapshot source
+            # contexts have a `category` of `snapshot`.
+          { # An ExtendedSourceContext is a SourceContext combined with additional
+              # details describing the context.
             "labels": { # Labels with user defined metadata.
               "a_key": "A String",
             },
-            "context": { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. # Any source context.
+            "context": { # A SourceContext is a reference to a tree of files. A SourceContext together # Any source context.
+                # with a path point to a unique revision of a single file or directory.
               "cloudWorkspace": { # A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot. # A SourceContext referring to a snapshot in a cloud workspace.
-                "snapshotId": "A String", # The ID of the snapshot. An empty snapshot_id refers to the most recent snapshot.
-                "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed. # The ID of the workspace.
+                "snapshotId": "A String", # The ID of the snapshot.
+                    # An empty snapshot_id refers to the most recent snapshot.
+                "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
+                    # A cloud workspace is a place associated with a repo where modified files
+                    # can be stored before they are committed.
                   "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
-                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                    "uid": "A String", # A server-assigned, globally unique identifier.
+                    "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                        # (e.g. winged-cargo-31) and a repo name within that project.
                       "projectId": "A String", # The ID of the project.
                       "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                     },
-                    "uid": "A String", # A server-assigned, globally unique identifier.
                   },
-                  "name": "A String", # The unique name of the workspace within the repo. This is the name chosen by the client in the Source API's CreateWorkspace method.
+                  "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                      # chosen by the client in the Source API's CreateWorkspace method.
                 },
               },
-              "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform). # A SourceContext referring to a revision in a cloud repo.
+              "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
+                  # repo (a repo hosted by the Google Cloud Platform).
                 "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
                   "kind": "A String", # The alias kind.
                   "name": "A String", # The alias name.
@@ -189,16 +253,19 @@
                 "revisionId": "A String", # A revision ID.
                 "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo.
-                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                  "uid": "A String", # A server-assigned, globally unique identifier.
+                  "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
+                      # (e.g. winged-cargo-31) and a repo name within that project.
                     "projectId": "A String", # The ID of the project.
                     "repoName": "A String", # The name of the repo. Leave empty for the default repo.
                   },
-                  "uid": "A String", # A server-assigned, globally unique identifier.
                 },
               },
-              "git": { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub). # A SourceContext referring to any third party Git repo (e.g. GitHub).
+              "git": { # A GitSourceContext denotes a particular revision in a third party Git # A SourceContext referring to any third party Git repo (e.g. GitHub).
+                  # repository (e.g. GitHub).
                 "url": "A String", # Git repository URL.
-                "revisionId": "A String", # Git commit hash. required.
+                "revisionId": "A String", # Git commit hash.
+                    # required.
               },
               "gerrit": { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
                 "aliasContext": { # An alias to a repo revision. # An alias, which may be a branch or tag.
@@ -208,13 +275,18 @@
                 "revisionId": "A String", # A revision (commit) ID.
                 "hostUri": "A String", # The URI of a running Gerrit instance.
                 "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-                "gerritProject": "A String", # The full project name within the host. Projects may be nested, so "project/subproject" is a valid project name. The "repo name" is hostURI/project.
+                "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
+                    # "project/subproject" is a valid project name.
+                    # The "repo name" is hostURI/project.
               },
             },
           },
         ],
-        "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as following: `domain/type/vmajor.minor` (for example `google.com/gcp-java/v1.1`).
-        "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by the Controller service.
+        "agentVersion": "A String", # Version ID of the agent release. The version ID is structured as
+            # following: `domain/type/vmajor.minor` (for example
+            # `google.com/gcp-java/v1.1`).
+        "isInactive": True or False, # If set to `true`, indicates that the debuggee is considered as inactive by
+            # the Controller service.
         "id": "A String", # Unique identifier for the debuggee generated by the controller service.
       },
     ],
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
index 36e1f85..2aa6fa4 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
@@ -158,6 +158,14 @@
             "userAgent": "A String", # The user agent information that is provided with the request.
             "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
           },
+          "user": "A String", # The user who caused or was affected by the crash.
+              # This can be a user ID, an email address, or an arbitrary token that
+              # uniquely identifies the user.
+              # When sending an error report, leave this field empty if the user was not
+              # logged in. In this case the
+              # Error Reporting system will use other data, such as remote IP address, to
+              # distinguish affected users. See `affected_users_count` in
+              # `ErrorGroupStats`.
           "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
               # report the error, usually the place where it was logged.
               # For a logged exception this would be the source line where the
@@ -175,14 +183,6 @@
             "filePath": "A String", # The source code filename, which can include a truncated relative
                 # path, or a full path from a production machine.
           },
-          "user": "A String", # The user who caused or was affected by the crash.
-              # This can be a user ID, an email address, or an arbitrary token that
-              # uniquely identifies the user.
-              # When sending an error report, leave this field empty if the user was not
-              # logged in. In this case the
-              # Error Reporting system will use other data, such as remote IP address, to
-              # distinguish affected users. See `affected_users_count` in
-              # `ErrorGroupStats`.
         },
       },
     ],
@@ -244,10 +244,23 @@
     "eventTime": "A String", # [Optional] Time when the event occurred.
         # If not provided, the time when the event was received by the
         # Error Reporting system will be used.
-    "message": "A String", # [Required] A message describing the error. The message can contain an
-        # exception stack in one of the supported programming languages and formats.
-        # In that case, the message is parsed and detailed exception information
-        # is returned when retrieving the error event again.
+    "message": "A String", # [Required] The error message.
+        # If no `context.reportLocation` is provided, the message must contain a
+        # header (typically consisting of the exception type name and an error
+        # message) and an exception stack trace in one of the supported programming
+        # languages and formats.
+        # Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
+        # Supported stack trace formats are:
+        # 
+        # * **Java**: Must be the return value of [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29).
+        # * **Python**: Must be the return value of [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc).
+        # * **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API)
+        # as returned by V8.
+        # * **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
+        # * **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx).
+        # * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
+        # and contain the result of [`(string)$exception`](http://php.net/manual/en/exception.tostring.php).
+        # * **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).
     "context": { # A description of the context in which an error occurred. # [Optional] A description of the context in which the error occurred.
         # This data should be provided by the application when reporting an error,
         # unless the
@@ -267,6 +280,14 @@
         "userAgent": "A String", # The user agent information that is provided with the request.
         "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
       },
+      "user": "A String", # The user who caused or was affected by the crash.
+          # This can be a user ID, an email address, or an arbitrary token that
+          # uniquely identifies the user.
+          # When sending an error report, leave this field empty if the user was not
+          # logged in. In this case the
+          # Error Reporting system will use other data, such as remote IP address, to
+          # distinguish affected users. See `affected_users_count` in
+          # `ErrorGroupStats`.
       "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
           # report the error, usually the place where it was logged.
           # For a logged exception this would be the source line where the
@@ -284,14 +305,6 @@
         "filePath": "A String", # The source code filename, which can include a truncated relative
             # path, or a full path from a production machine.
       },
-      "user": "A String", # The user who caused or was affected by the crash.
-          # This can be a user ID, an email address, or an arbitrary token that
-          # uniquely identifies the user.
-          # When sending an error report, leave this field empty if the user was not
-          # logged in. In this case the
-          # Error Reporting system will use other data, such as remote IP address, to
-          # distinguish affected users. See `affected_users_count` in
-          # `ErrorGroupStats`.
     },
   }
 
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
index 65cc885..7b8f72d 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
@@ -145,18 +145,27 @@
             # context that was provided in the error report. If more users are
             # implicitly affected, such as due to a crash of the whole service,
             # this is not reflected here.
-        "group": { # Description of a group of similar error events. # Group data that is independent of the filter criteria.
-          "trackingIssues": [ # Associated tracking issues.
-            { # Information related to tracking the progress on resolving the error.
-              "url": "A String", # A URL pointing to a related entry in an issue tracking system.
-                  # Example: https://github.com/user/project/issues/4
-            },
-          ],
-          "groupId": "A String", # Group IDs are unique for a given project. If the same kind of error
-              # occurs in different service contexts, it will receive the same group ID.
-          "name": "A String", # The group resource name.
-              # Example: <code>projects/my-project-123/groups/my-groupid</code>
-        },
+        "affectedServices": [ # Service contexts with a non-zero error count for the given filter
+            # criteria. This list can be truncated if multiple services are affected.
+            # Refer to `num_affected_services` for the total count.
+          { # Describes a running service that sends errors.
+              # Its version changes over time and multiple versions can run in parallel.
+            "resourceType": "A String", # Type of the MonitoredResource. List of possible values:
+                # https://cloud.google.com/monitoring/api/resources
+                #
+                # Value is set automatically for incoming errors and must not be set when
+                # reporting errors.
+            "version": "A String", # Represents the source code version that the developer provided,
+                # which could represent a version label or a Git SHA-1 hash, for example.
+            "service": "A String", # An identifier of the service, such as the name of the
+                # executable, job, or Google App Engine service name. This field is expected
+                # to have a low number of values that are relatively stable over time, as
+                # opposed to `version`, which can be changed whenever new code is deployed.
+                #
+                # Contains the service name for error reports extracted from Google
+                # App Engine logs or `default` if the App Engine default service is used.
+          },
+        ],
         "timedCounts": [ # Approximate number of occurrences over time.
             # Timed counts returned by ListGroups are guaranteed to be:
             #
@@ -219,6 +228,14 @@
               "userAgent": "A String", # The user agent information that is provided with the request.
               "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
             },
+            "user": "A String", # The user who caused or was affected by the crash.
+                # This can be a user ID, an email address, or an arbitrary token that
+                # uniquely identifies the user.
+                # When sending an error report, leave this field empty if the user was not
+                # logged in. In this case the
+                # Error Reporting system will use other data, such as remote IP address, to
+                # distinguish affected users. See `affected_users_count` in
+                # `ErrorGroupStats`.
             "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
                 # report the error, usually the place where it was logged.
                 # For a logged exception this would be the source line where the
@@ -236,39 +253,22 @@
               "filePath": "A String", # The source code filename, which can include a truncated relative
                   # path, or a full path from a production machine.
             },
-            "user": "A String", # The user who caused or was affected by the crash.
-                # This can be a user ID, an email address, or an arbitrary token that
-                # uniquely identifies the user.
-                # When sending an error report, leave this field empty if the user was not
-                # logged in. In this case the
-                # Error Reporting system will use other data, such as remote IP address, to
-                # distinguish affected users. See `affected_users_count` in
-                # `ErrorGroupStats`.
           },
         },
         "numAffectedServices": 42, # The total number of services with a non-zero error count for the given
             # filter criteria.
-        "affectedServices": [ # Service contexts with a non-zero error count for the given filter
-            # criteria. This list can be truncated if multiple services are affected.
-            # Refer to `num_affected_services` for the total count.
-          { # Describes a running service that sends errors.
-              # Its version changes over time and multiple versions can run in parallel.
-            "resourceType": "A String", # Type of the MonitoredResource. List of possible values:
-                # https://cloud.google.com/monitoring/api/resources
-                #
-                # Value is set automatically for incoming errors and must not be set when
-                # reporting errors.
-            "version": "A String", # Represents the source code version that the developer provided,
-                # which could represent a version label or a Git SHA-1 hash, for example.
-            "service": "A String", # An identifier of the service, such as the name of the
-                # executable, job, or Google App Engine service name. This field is expected
-                # to have a low number of values that are relatively stable over time, as
-                # opposed to `version`, which can be changed whenever new code is deployed.
-                #
-                # Contains the service name for error reports extracted from Google
-                # App Engine logs or `default` if the App Engine default service is used.
-          },
-        ],
+        "group": { # Description of a group of similar error events. # Group data that is independent of the filter criteria.
+          "trackingIssues": [ # Associated tracking issues.
+            { # Information related to tracking the progress on resolving the error.
+              "url": "A String", # A URL pointing to a related entry in an issue tracking system.
+                  # Example: https://github.com/user/project/issues/4
+            },
+          ],
+          "groupId": "A String", # Group IDs are unique for a given project. If the same kind of error
+              # occurs in different service contexts, it will receive the same group ID.
+          "name": "A String", # The group resource name.
+              # Example: <code>projects/my-project-123/groups/my-groupid</code>
+        },
       },
     ],
     "timeRangeBegin": "A String", # The timestamp specifies the start time to which the request was restricted.
diff --git a/docs/dyn/cloudfunctions_v1beta2.html b/docs/dyn/cloudfunctions_v1beta2.html
new file mode 100644
index 0000000..0bb5321
--- /dev/null
+++ b/docs/dyn/cloudfunctions_v1beta2.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="cloudfunctions_v1beta2.html">Google Cloud Functions API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudfunctions_v1beta2.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudfunctions_v1beta2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudfunctions_v1beta2.operations.html b/docs/dyn/cloudfunctions_v1beta2.operations.html
new file mode 100644
index 0000000..8625e39
--- /dev/null
+++ b/docs/dyn/cloudfunctions_v1beta2.operations.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="cloudfunctions_v1beta2.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1beta2.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding below allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`.
+
+Args:
+  name: string, The name of the operation collection.
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+      },
+    ],
+  }</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/cloudfunctions_v1beta2.projects.html b/docs/dyn/cloudfunctions_v1beta2.projects.html
new file mode 100644
index 0000000..ee66233
--- /dev/null
+++ b/docs/dyn/cloudfunctions_v1beta2.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudfunctions_v1beta2.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1beta2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudfunctions_v1beta2.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
new file mode 100644
index 0000000..16ee7c4
--- /dev/null
+++ b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
@@ -0,0 +1,773 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudfunctions_v1beta2.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1beta2.projects.html">projects</a> . <a href="cloudfunctions_v1beta2.projects.locations.html">locations</a> . <a href="cloudfunctions_v1beta2.projects.locations.functions.html">functions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#call">call(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Invokes synchronously deployed function. To be used for testing, very</p>
+<p class="toc_element">
+  <code><a href="#create">create(location=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new function. If a function with the given name already exists in</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a function with the given name from the specified project. If the</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a function with the given name from the requested project.</p>
+<p class="toc_element">
+  <code><a href="#list">list(location=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a list of functions that belong to the requested 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="#update">update(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates existing function.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="call">call(name, body, x__xgafv=None)</code>
+  <pre>Invokes synchronously deployed function. To be used for testing, very
+limited traffic allowed.
+
+Args:
+  name: string, The name of the function to be called. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for the `CallFunction` method.
+    "data": "A String", # Input to be passed to the function.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response of `CallFunction` method.
+    "executionId": "A String", # Execution id of function invocation.
+    "result": "A String", # Result populated for successful execution of synchronous function. Will
+        # not be populated if function does not return a result through context.
+    "error": "A String", # Either system or user-function generated error. Set if execution
+        # was not successful.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(location=None, body, x__xgafv=None)</code>
+  <pre>Creates a new function. If a function with the given name already exists in
+the specified project, the long running operation will return
+`ALREADY_EXISTS` error.
+
+Args:
+  location: string, The project and location in which the function should be created, specified
+in the format `projects/*/locations/*` (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Describes a Cloud Function that contains user computation executed in
+    # response to an event. It encapsulate function and triggers configurations.
+  "eventTrigger": { # Describes EventTrigger, used to request events be sent from another # A source that fires events in response to a condition in another service.
+      # service.
+    "eventType": "A String", # `event_type` names contain the service that is sending an event and the
+        # kind of event that was fired. Must be of the form
+        # `providers/*/eventTypes/*` e.g. Directly handle a Message published to
+        # Google Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`
+        #
+        #      Handle an object changing in Google Cloud Storage
+        #      `providers/cloud.storage/eventTypes/object.change`
+        #
+        #      Handle a write to the Firebase Realtime Database
+        #      `providers/firebase.database/eventTypes/data.write`
+    "resource": "A String", # Which instance of the source's service should send events. E.g. for Pub/Sub
+        # this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
+        # Storage this would be a bucket at `projects/*/buckets/*`. For any source
+        # that only supports one instance per-project, this should be the name of the
+        # project (`projects/*`)
+  },
+  "status": "A String", # Output only. Status of the function deployment.
+  "updateTime": "A String", # Output only. The last update timestamp of a Cloud Function.
+  "name": "A String", # A user-defined name of the function. Function names must be unique
+      # globally and match pattern `projects/*/locations/*/functions/*`
+  "sourceRepository": { # Describes the location of the function source in a remote repository. # The hosted repository where the function is defined.
+    "repositoryUrl": "A String", # URL to the hosted repository where the function is defined. Only paths in
+        # https://source.developers.google.com domain are supported. The path should
+        # contain the name of the repository.
+    "sourcePath": "A String", # The path within the repository where the function is defined. The path
+        # should point to the directory where Cloud Functions files are located. Use
+        # "/" if the function is defined directly in the root directory of a
+        # repository.
+    "deployedRevision": "A String", # Output only. The id of the revision that was resolved at the moment of
+        # function creation or update. For example when a user deployed from a
+        # branch, it will be the revision id of the latest change on this branch at
+        # that time. If user deployed from revision then this value will be always
+        # equal to the revision specified by the user.
+    "tag": "A String", # The name of the tag that captures the state of the repository from
+        # which the function should be fetched.
+    "branch": "A String", # The name of the branch from which the function should be fetched.
+    "revision": "A String", # The id of the revision that captures the state of the repository from
+        # which the function should be fetched.
+  },
+  "availableMemoryMb": 42, # The amount of memory in MB available for a function.
+      # Defaults to 256MB.
+  "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
+    "url": "A String", # Output only. The deployed url for the function.
+  },
+  "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
+      # the function.
+  "serviceAccount": "A String", # Output only. The service account of the function.
+  "entryPoint": "A String", # The name of the function (as defined in source code) that will be
+      # executed. Defaults to the resource name suffix, if not specified. For
+      # backward compatibility, if function with given name is not found, then the
+      # system will try to use function named "function".
+      # For Node.js this is name of a function exported by the module specified
+      # in `source_location`.
+  "timeout": "A String", # The function execution timeout. Execution is considered failed and
+      # can be terminated if the function is not completed at the end of the
+      # timeout period. Defaults to 60 seconds.
+  "latestOperation": "A String", # Output only. Name of the most recent operation modifying the function. If
+      # the function status is `DEPLOYING` or `DELETING`, then it points to the
+      # active operation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a function with the given name from the specified project. If the
+given function is used by some trigger, the trigger will be updated to
+remove this function.
+
+Args:
+  name: string, The name of the function which should be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns a function with the given name from the requested project.
+
+Args:
+  name: string, The name of the function which details should be obtained. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Describes a Cloud Function that contains user computation executed in
+      # response to an event. It encapsulate function and triggers configurations.
+    "eventTrigger": { # Describes EventTrigger, used to request events be sent from another # A source that fires events in response to a condition in another service.
+        # service.
+      "eventType": "A String", # `event_type` names contain the service that is sending an event and the
+          # kind of event that was fired. Must be of the form
+          # `providers/*/eventTypes/*` e.g. Directly handle a Message published to
+          # Google Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`
+          #
+          #      Handle an object changing in Google Cloud Storage
+          #      `providers/cloud.storage/eventTypes/object.change`
+          #
+          #      Handle a write to the Firebase Realtime Database
+          #      `providers/firebase.database/eventTypes/data.write`
+      "resource": "A String", # Which instance of the source's service should send events. E.g. for Pub/Sub
+          # this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
+          # Storage this would be a bucket at `projects/*/buckets/*`. For any source
+          # that only supports one instance per-project, this should be the name of the
+          # project (`projects/*`)
+    },
+    "status": "A String", # Output only. Status of the function deployment.
+    "updateTime": "A String", # Output only. The last update timestamp of a Cloud Function.
+    "name": "A String", # A user-defined name of the function. Function names must be unique
+        # globally and match pattern `projects/*/locations/*/functions/*`
+    "sourceRepository": { # Describes the location of the function source in a remote repository. # The hosted repository where the function is defined.
+      "repositoryUrl": "A String", # URL to the hosted repository where the function is defined. Only paths in
+          # https://source.developers.google.com domain are supported. The path should
+          # contain the name of the repository.
+      "sourcePath": "A String", # The path within the repository where the function is defined. The path
+          # should point to the directory where Cloud Functions files are located. Use
+          # "/" if the function is defined directly in the root directory of a
+          # repository.
+      "deployedRevision": "A String", # Output only. The id of the revision that was resolved at the moment of
+          # function creation or update. For example when a user deployed from a
+          # branch, it will be the revision id of the latest change on this branch at
+          # that time. If user deployed from revision then this value will be always
+          # equal to the revision specified by the user.
+      "tag": "A String", # The name of the tag that captures the state of the repository from
+          # which the function should be fetched.
+      "branch": "A String", # The name of the branch from which the function should be fetched.
+      "revision": "A String", # The id of the revision that captures the state of the repository from
+          # which the function should be fetched.
+    },
+    "availableMemoryMb": 42, # The amount of memory in MB available for a function.
+        # Defaults to 256MB.
+    "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
+      "url": "A String", # Output only. The deployed url for the function.
+    },
+    "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
+        # the function.
+    "serviceAccount": "A String", # Output only. The service account of the function.
+    "entryPoint": "A String", # The name of the function (as defined in source code) that will be
+        # executed. Defaults to the resource name suffix, if not specified. For
+        # backward compatibility, if function with given name is not found, then the
+        # system will try to use function named "function".
+        # For Node.js this is name of a function exported by the module specified
+        # in `source_location`.
+    "timeout": "A String", # The function execution timeout. Execution is considered failed and
+        # can be terminated if the function is not completed at the end of the
+        # timeout period. Defaults to 60 seconds.
+    "latestOperation": "A String", # Output only. Name of the most recent operation modifying the function. If
+        # the function status is `DEPLOYING` or `DELETING`, then it points to the
+        # active operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(location=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns a list of functions that belong to the requested project.
+
+Args:
+  location: string, The project and location from which the function should be listed,
+specified in the format `projects/*/locations/*`
+If you want to list functions in all locations, use "-" in place of a
+location. (required)
+  pageSize: integer, Maximum number of functions to return per call.
+  pageToken: string, The value returned by the last
+`ListFunctionsResponse`; indicates that
+this is a continuation of a prior `ListFunctions` call, and that the
+system should return the next page of data.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for the `ListFunctions` method.
+    "nextPageToken": "A String", # If not empty, indicates that there may be more functions that match
+        # the request; this value should be passed in a new
+        # google.cloud.functions.v1beta2.ListFunctionsRequest
+        # to get more functions.
+    "functions": [ # The functions that match the request.
+      { # Describes a Cloud Function that contains user computation executed in
+          # response to an event. It encapsulate function and triggers configurations.
+        "eventTrigger": { # Describes EventTrigger, used to request events be sent from another # A source that fires events in response to a condition in another service.
+            # service.
+          "eventType": "A String", # `event_type` names contain the service that is sending an event and the
+              # kind of event that was fired. Must be of the form
+              # `providers/*/eventTypes/*` e.g. Directly handle a Message published to
+              # Google Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`
+              #
+              #      Handle an object changing in Google Cloud Storage
+              #      `providers/cloud.storage/eventTypes/object.change`
+              #
+              #      Handle a write to the Firebase Realtime Database
+              #      `providers/firebase.database/eventTypes/data.write`
+          "resource": "A String", # Which instance of the source's service should send events. E.g. for Pub/Sub
+              # this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
+              # Storage this would be a bucket at `projects/*/buckets/*`. For any source
+              # that only supports one instance per-project, this should be the name of the
+              # project (`projects/*`)
+        },
+        "status": "A String", # Output only. Status of the function deployment.
+        "updateTime": "A String", # Output only. The last update timestamp of a Cloud Function.
+        "name": "A String", # A user-defined name of the function. Function names must be unique
+            # globally and match pattern `projects/*/locations/*/functions/*`
+        "sourceRepository": { # Describes the location of the function source in a remote repository. # The hosted repository where the function is defined.
+          "repositoryUrl": "A String", # URL to the hosted repository where the function is defined. Only paths in
+              # https://source.developers.google.com domain are supported. The path should
+              # contain the name of the repository.
+          "sourcePath": "A String", # The path within the repository where the function is defined. The path
+              # should point to the directory where Cloud Functions files are located. Use
+              # "/" if the function is defined directly in the root directory of a
+              # repository.
+          "deployedRevision": "A String", # Output only. The id of the revision that was resolved at the moment of
+              # function creation or update. For example when a user deployed from a
+              # branch, it will be the revision id of the latest change on this branch at
+              # that time. If user deployed from revision then this value will be always
+              # equal to the revision specified by the user.
+          "tag": "A String", # The name of the tag that captures the state of the repository from
+              # which the function should be fetched.
+          "branch": "A String", # The name of the branch from which the function should be fetched.
+          "revision": "A String", # The id of the revision that captures the state of the repository from
+              # which the function should be fetched.
+        },
+        "availableMemoryMb": 42, # The amount of memory in MB available for a function.
+            # Defaults to 256MB.
+        "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
+          "url": "A String", # Output only. The deployed url for the function.
+        },
+        "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
+            # the function.
+        "serviceAccount": "A String", # Output only. The service account of the function.
+        "entryPoint": "A String", # The name of the function (as defined in source code) that will be
+            # executed. Defaults to the resource name suffix, if not specified. For
+            # backward compatibility, if function with given name is not found, then the
+            # system will try to use function named "function".
+            # For Node.js this is name of a function exported by the module specified
+            # in `source_location`.
+        "timeout": "A String", # The function execution timeout. Execution is considered failed and
+            # can be terminated if the function is not completed at the end of the
+            # timeout period. Defaults to 60 seconds.
+        "latestOperation": "A String", # Output only. Name of the most recent operation modifying the function. If
+            # the function status is `DEPLOYING` or `DELETING`, then it points to the
+            # active operation.
+      },
+    ],
+  }</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(name, body, x__xgafv=None)</code>
+  <pre>Updates existing function.
+
+Args:
+  name: string, The name of the function to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Describes a Cloud Function that contains user computation executed in
+    # response to an event. It encapsulate function and triggers configurations.
+  "eventTrigger": { # Describes EventTrigger, used to request events be sent from another # A source that fires events in response to a condition in another service.
+      # service.
+    "eventType": "A String", # `event_type` names contain the service that is sending an event and the
+        # kind of event that was fired. Must be of the form
+        # `providers/*/eventTypes/*` e.g. Directly handle a Message published to
+        # Google Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`
+        #
+        #      Handle an object changing in Google Cloud Storage
+        #      `providers/cloud.storage/eventTypes/object.change`
+        #
+        #      Handle a write to the Firebase Realtime Database
+        #      `providers/firebase.database/eventTypes/data.write`
+    "resource": "A String", # Which instance of the source's service should send events. E.g. for Pub/Sub
+        # this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
+        # Storage this would be a bucket at `projects/*/buckets/*`. For any source
+        # that only supports one instance per-project, this should be the name of the
+        # project (`projects/*`)
+  },
+  "status": "A String", # Output only. Status of the function deployment.
+  "updateTime": "A String", # Output only. The last update timestamp of a Cloud Function.
+  "name": "A String", # A user-defined name of the function. Function names must be unique
+      # globally and match pattern `projects/*/locations/*/functions/*`
+  "sourceRepository": { # Describes the location of the function source in a remote repository. # The hosted repository where the function is defined.
+    "repositoryUrl": "A String", # URL to the hosted repository where the function is defined. Only paths in
+        # https://source.developers.google.com domain are supported. The path should
+        # contain the name of the repository.
+    "sourcePath": "A String", # The path within the repository where the function is defined. The path
+        # should point to the directory where Cloud Functions files are located. Use
+        # "/" if the function is defined directly in the root directory of a
+        # repository.
+    "deployedRevision": "A String", # Output only. The id of the revision that was resolved at the moment of
+        # function creation or update. For example when a user deployed from a
+        # branch, it will be the revision id of the latest change on this branch at
+        # that time. If user deployed from revision then this value will be always
+        # equal to the revision specified by the user.
+    "tag": "A String", # The name of the tag that captures the state of the repository from
+        # which the function should be fetched.
+    "branch": "A String", # The name of the branch from which the function should be fetched.
+    "revision": "A String", # The id of the revision that captures the state of the repository from
+        # which the function should be fetched.
+  },
+  "availableMemoryMb": 42, # The amount of memory in MB available for a function.
+      # Defaults to 256MB.
+  "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
+    "url": "A String", # Output only. The deployed url for the function.
+  },
+  "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
+      # the function.
+  "serviceAccount": "A String", # Output only. The service account of the function.
+  "entryPoint": "A String", # The name of the function (as defined in source code) that will be
+      # executed. Defaults to the resource name suffix, if not specified. For
+      # backward compatibility, if function with given name is not found, then the
+      # system will try to use function named "function".
+      # For Node.js this is name of a function exported by the module specified
+      # in `source_location`.
+  "timeout": "A String", # The function execution timeout. Execution is considered failed and
+      # can be terminated if the function is not completed at the end of the
+      # timeout period. Defaults to 60 seconds.
+  "latestOperation": "A String", # Output only. Name of the most recent operation modifying the function. If
+      # the function status is `DEPLOYING` or `DELETING`, then it points to the
+      # active operation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudfunctions_v1beta2.projects.locations.html b/docs/dyn/cloudfunctions_v1beta2.projects.locations.html
new file mode 100644
index 0000000..e6c6cdc
--- /dev/null
+++ b/docs/dyn/cloudfunctions_v1beta2.projects.locations.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="cloudfunctions_v1beta2.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1beta2.projects.html">projects</a> . <a href="cloudfunctions_v1beta2.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudfunctions_v1beta2.projects.locations.functions.html">functions()</a></code>
+</p>
+<p class="firstline">Returns the functions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</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(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "locations": [ # A list of locations that matches the specified filter in the request.
+      { # A resource that represents Google Cloud Platform location.
+        "labels": { # Cross-service attributes for the location. For example
+            #
+            #     {"cloud.googleapis.com/region": "us-east1"}
+          "a_key": "A String",
+        },
+        "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
+        "name": "A String", # Resource name for the location, which may vary between implementations.
+            # For example: `"projects/example-project/locations/us-east1"`
+        "metadata": { # Service-specific metadata. For example the available capacity at the given
+            # location.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+  }</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/cloudkms_v1.html b/docs/dyn/cloudkms_v1.html
new file mode 100644
index 0000000..88cde6c
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.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="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1.projects.html b/docs/dyn/cloudkms_v1.projects.html
new file mode 100644
index 0000000..2f3d1e9
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1.projects.locations.html b/docs/dyn/cloudkms_v1.projects.locations.html
new file mode 100644
index 0000000..dda23ce
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.projects.locations.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="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1.projects.html">projects</a> . <a href="cloudkms_v1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1.projects.locations.keyRings.html">keyRings()</a></code>
+</p>
+<p class="firstline">Returns the keyRings Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Get information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</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(name, x__xgafv=None)</code>
+  <pre>Get information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+    "labels": { # Cross-service attributes for the location. For example
+        #
+        #     {"cloud.googleapis.com/region": "us-east1"}
+      "a_key": "A String",
+    },
+    "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
+    "name": "A String", # Resource name for the location, which may vary between implementations.
+        # For example: `"projects/example-project/locations/us-east1"`
+    "metadata": { # Service-specific metadata. For example the available capacity at the given
+        # location.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "locations": [ # A list of locations that matches the specified filter in the request.
+      { # A resource that represents Google Cloud Platform location.
+        "labels": { # Cross-service attributes for the location. For example
+            #
+            #     {"cloud.googleapis.com/region": "us-east1"}
+          "a_key": "A String",
+        },
+        "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
+        "name": "A String", # Resource name for the location, which may vary between implementations.
+            # For example: `"projects/example-project/locations/us-east1"`
+        "metadata": { # Service-specific metadata. For example the available capacity at the given
+            # location.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+  }</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/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
new file mode 100644
index 0000000..660dacb
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.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="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1.projects.html">projects</a> . <a href="cloudkms_v1.projects.locations.html">locations</a> . <a href="cloudkms_v1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a> . <a href="cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new CryptoKeyVersion in a CryptoKey.</p>
+<p class="toc_element">
+  <code><a href="#destroy">destroy(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Schedule a CryptoKeyVersion for destruction.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given CryptoKeyVersion.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists CryptoKeyVersions.</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(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update a CryptoKeyVersion's metadata.</p>
+<p class="toc_element">
+  <code><a href="#restore">restore(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Restore a CryptoKeyVersion in the</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Create a new CryptoKeyVersion in a CryptoKey.
+
+The server will assign the next sequential id. If unset,
+state will be set to
+ENABLED.
+
+Args:
+  parent: string, Required. The name of the CryptoKey associated with
+the CryptoKeyVersions. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKeyVersion represents an individual cryptographic key, and the
+    # associated key material.
+    # 
+    # It can be used for cryptographic operations either directly, or via its
+    # parent CryptoKey, in which case the server will choose the appropriate
+    # version for the operation.
+  "state": "A String", # The current state of the CryptoKeyVersion.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+      # for destruction. Only present if state is
+      # DESTROY_SCHEDULED.
+  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+      # destroyed. Only present if state is
+      # DESTROYED.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="destroy">destroy(name, body, x__xgafv=None)</code>
+  <pre>Schedule a CryptoKeyVersion for destruction.
+
+Upon calling this method, CryptoKeyVersion.state will be set to
+DESTROY_SCHEDULED
+and destroy_time will be set to a time 24
+hours in the future, at which point the state
+will be changed to
+DESTROYED, and the key
+material will be irrevocably destroyed.
+
+Before the destroy_time is reached,
+RestoreCryptoKeyVersion may be called to reverse the process.
+
+Args:
+  name: string, The resource name of the CryptoKeyVersion to destroy. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.DestroyCryptoKeyVersion.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given CryptoKeyVersion.
+
+Args:
+  name: string, The name of the CryptoKeyVersion to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists CryptoKeyVersions.
+
+Args:
+  parent: string, Required. The resource name of the CryptoKey to list, in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
+  pageToken: string, Optional pagination token, returned earlier via
+ListCryptoKeyVersionsResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional limit on the number of CryptoKeyVersions to
+include in the response. Further CryptoKeyVersions can
+subsequently be obtained by including the
+ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
+If unspecified, the server will pick an appropriate default.
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListCryptoKeyVersions.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
+        # results.
+    "totalSize": 42, # The total number of CryptoKeyVersions that matched the
+        # query.
+    "cryptoKeyVersions": [ # The list of CryptoKeyVersions.
+      { # A CryptoKeyVersion represents an individual cryptographic key, and the
+          # associated key material.
+          #
+          # It can be used for cryptographic operations either directly, or via its
+          # parent CryptoKey, in which case the server will choose the appropriate
+          # version for the operation.
+        "state": "A String", # The current state of the CryptoKeyVersion.
+        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+            # for destruction. Only present if state is
+            # DESTROY_SCHEDULED.
+        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+            # destroyed. Only present if state is
+            # DESTROYED.
+      },
+    ],
+  }</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(name=None, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Update a CryptoKeyVersion's metadata.
+
+state may be changed between
+ENABLED and
+DISABLED using this
+method. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to
+move between other states.
+
+Args:
+  name: string, Output only. The resource name for this CryptoKeyVersion in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKeyVersion represents an individual cryptographic key, and the
+    # associated key material.
+    # 
+    # It can be used for cryptographic operations either directly, or via its
+    # parent CryptoKey, in which case the server will choose the appropriate
+    # version for the operation.
+  "state": "A String", # The current state of the CryptoKeyVersion.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+      # for destruction. Only present if state is
+      # DESTROY_SCHEDULED.
+  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+      # destroyed. Only present if state is
+      # DESTROYED.
+}
+
+  updateMask: string, Required list of fields to be updated in this request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restore">restore(name, body, x__xgafv=None)</code>
+  <pre>Restore a CryptoKeyVersion in the
+DESTROY_SCHEDULED,
+state.
+
+Upon restoration of the CryptoKeyVersion, state
+will be set to DISABLED,
+and destroy_time will be cleared.
+
+Args:
+  name: string, The resource name of the CryptoKeyVersion to restore. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.RestoreCryptoKeyVersion.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
new file mode 100644
index 0000000..7f85952
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
@@ -0,0 +1,1445 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1.projects.html">projects</a> . <a href="cloudkms_v1.projects.locations.html">locations</a> . <a href="cloudkms_v1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions()</a></code>
+</p>
+<p class="firstline">Returns the cryptoKeyVersions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new CryptoKey within a KeyRing.</p>
+<p class="toc_element">
+  <code><a href="#decrypt">decrypt(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Decrypt data that was protected by Encrypt.</p>
+<p class="toc_element">
+  <code><a href="#encrypt">encrypt(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Encrypt data, so that it can only be recovered by a call to Decrypt.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given CryptoKey, as well as its</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists CryptoKeys.</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(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update a CryptoKey.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Update the version of a CryptoKey that will be used in Encrypt</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</code>
+  <pre>Create a new CryptoKey within a KeyRing.
+
+CryptoKey.purpose is required.
+
+Args:
+  parent: string, Required. The name of the KeyRing associated with the
+CryptoKeys. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKey represents a logical key that can be used for cryptographic
+    # operations.
+    # 
+    # A CryptoKey is made up of one or more versions, which
+    # represent the actual key material used in cryptographic operations.
+  "name": "A String", # Output only. The resource name for this CryptoKey in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+      # automatically rotates a key. Must be at least one day.
+      # 
+      # If rotation_period is set, next_rotation_time must also be set.
+  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+      # by Encrypt when this CryptoKey is given
+      # in EncryptRequest.name.
+      # 
+      # The CryptoKey's primary version can be updated via
+      # UpdateCryptoKeyPrimaryVersion.
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  },
+  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+      # purpose is ENCRYPT_DECRYPT.
+  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+      # 
+      # 1. Create a new version of this CryptoKey.
+      # 2. Mark the new version as primary.
+      # 
+      # Key rotations performed manually via
+      # CreateCryptoKeyVersion and
+      # UpdateCryptoKeyPrimaryVersion
+      # do not affect next_rotation_time.
+}
+
+  cryptoKeyId: string, Required. It must be unique within a KeyRing and match the regular
+expression `[a-zA-Z0-9_-]{1,63}`
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="decrypt">decrypt(name=None, body, x__xgafv=None)</code>
+  <pre>Decrypt data that was protected by Encrypt.
+
+Args:
+  name: string, Required. The resource name of the CryptoKey to use for decryption.
+The server will choose the appropriate version. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.Decrypt.
+    "ciphertext": "A String", # Required. The encrypted data originally returned in
+        # EncryptResponse.ciphertext.
+    "additionalAuthenticatedData": "A String", # Optional data that must match the data originally supplied in
+        # EncryptRequest.additional_authenticated_data.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.Decrypt.
+    "plaintext": "A String", # The decrypted data originally supplied in EncryptRequest.plaintext.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="encrypt">encrypt(name=None, body, x__xgafv=None)</code>
+  <pre>Encrypt data, so that it can only be recovered by a call to Decrypt.
+
+Args:
+  name: string, Required. The resource name of the CryptoKey or CryptoKeyVersion
+to use for encryption.
+
+If a CryptoKey is specified, the server will use its
+primary version. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.Encrypt.
+    "plaintext": "A String", # Required. The data to encrypt. Must be no larger than 64KiB.
+    "additionalAuthenticatedData": "A String", # Optional data that, if specified, must also be provided during decryption
+        # through DecryptRequest.additional_authenticated_data.  Must be no
+        # larger than 64KiB.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.Encrypt.
+    "ciphertext": "A String", # The encrypted data.
+    "name": "A String", # The resource name of the CryptoKeyVersion used in encryption.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given CryptoKey, as well as its
+primary CryptoKeyVersion.
+
+Args:
+  name: string, The name of the CryptoKey to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource.
+Returns an empty policy if the resource exists and does not have a policy
+set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists CryptoKeys.
+
+Args:
+  parent: string, Required. The resource name of the KeyRing to list, in the format
+`projects/*/locations/*/keyRings/*`. (required)
+  pageToken: string, Optional pagination token, returned earlier via
+ListCryptoKeysResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional limit on the number of CryptoKeys to include in the
+response.  Further CryptoKeys can subsequently be obtained by
+including the ListCryptoKeysResponse.next_page_token in a subsequent
+request.  If unspecified, the server will pick an appropriate default.
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListCryptoKeys.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListCryptoKeysRequest.page_token to retrieve the next page of results.
+    "cryptoKeys": [ # The list of CryptoKeys.
+      { # A CryptoKey represents a logical key that can be used for cryptographic
+          # operations.
+          #
+          # A CryptoKey is made up of one or more versions, which
+          # represent the actual key material used in cryptographic operations.
+        "name": "A String", # Output only. The resource name for this CryptoKey in the format
+            # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+        "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+            # automatically rotates a key. Must be at least one day.
+            #
+            # If rotation_period is set, next_rotation_time must also be set.
+        "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+            # by Encrypt when this CryptoKey is given
+            # in EncryptRequest.name.
+            #
+            # The CryptoKey's primary version can be updated via
+            # UpdateCryptoKeyPrimaryVersion.
+            # associated key material.
+            #
+            # It can be used for cryptographic operations either directly, or via its
+            # parent CryptoKey, in which case the server will choose the appropriate
+            # version for the operation.
+          "state": "A String", # The current state of the CryptoKeyVersion.
+          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+          "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+              # for destruction. Only present if state is
+              # DESTROY_SCHEDULED.
+          "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+              # destroyed. Only present if state is
+              # DESTROYED.
+        },
+        "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+            # purpose is ENCRYPT_DECRYPT.
+        "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+        "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+            #
+            # 1. Create a new version of this CryptoKey.
+            # 2. Mark the new version as primary.
+            #
+            # Key rotations performed manually via
+            # CreateCryptoKeyVersion and
+            # UpdateCryptoKeyPrimaryVersion
+            # do not affect next_rotation_time.
+      },
+    ],
+    "totalSize": 42, # The total number of CryptoKeys that matched the query.
+  }</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(name=None, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Update a CryptoKey.
+
+Args:
+  name: string, Output only. The resource name for this CryptoKey in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKey represents a logical key that can be used for cryptographic
+    # operations.
+    # 
+    # A CryptoKey is made up of one or more versions, which
+    # represent the actual key material used in cryptographic operations.
+  "name": "A String", # Output only. The resource name for this CryptoKey in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+      # automatically rotates a key. Must be at least one day.
+      # 
+      # If rotation_period is set, next_rotation_time must also be set.
+  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+      # by Encrypt when this CryptoKey is given
+      # in EncryptRequest.name.
+      # 
+      # The CryptoKey's primary version can be updated via
+      # UpdateCryptoKeyPrimaryVersion.
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  },
+  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+      # purpose is ENCRYPT_DECRYPT.
+  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+      # 
+      # 1. Create a new version of this CryptoKey.
+      # 2. Mark the new version as primary.
+      # 
+      # Key rotations performed manually via
+      # CreateCryptoKeyVersion and
+      # UpdateCryptoKeyPrimaryVersion
+      # do not affect next_rotation_time.
+}
+
+  updateMask: string, Required list of fields to be updated in this request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any
+existing policy.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
+
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</code>
+  <pre>Update the version of a CryptoKey that will be used in Encrypt
+
+Args:
+  name: string, The resource name of the CryptoKey to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
+    "cryptoKeyVersionId": "A String", # The id of the child CryptoKeyVersion to use as primary.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
new file mode 100644
index 0000000..ff8e157
--- /dev/null
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
@@ -0,0 +1,1019 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1.projects.html">projects</a> . <a href="cloudkms_v1.projects.locations.html">locations</a> . <a href="cloudkms_v1.projects.locations.keyRings.html">keyRings</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys()</a></code>
+</p>
+<p class="firstline">Returns the cryptoKeys Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, keyRingId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new KeyRing in a given Project and Location.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given KeyRing.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists KeyRings.</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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, keyRingId=None, x__xgafv=None)</code>
+  <pre>Create a new KeyRing in a given Project and Location.
+
+Args:
+  parent: string, Required. The resource name of the location associated with the
+KeyRings, in the format `projects/*/locations/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A KeyRing is a toplevel logical grouping of CryptoKeys.
+  "createTime": "A String", # Output only. The time at which this KeyRing was created.
+  "name": "A String", # Output only. The resource name for the KeyRing in the format
+      # `projects/*/locations/*/keyRings/*`.
+}
+
+  keyRingId: string, Required. It must be unique within a location and match the regular
+expression `[a-zA-Z0-9_-]{1,63}`
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+    "createTime": "A String", # Output only. The time at which this KeyRing was created.
+    "name": "A String", # Output only. The resource name for the KeyRing in the format
+        # `projects/*/locations/*/keyRings/*`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given KeyRing.
+
+Args:
+  name: string, The name of the KeyRing to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+    "createTime": "A String", # Output only. The time at which this KeyRing was created.
+    "name": "A String", # Output only. The resource name for the KeyRing in the format
+        # `projects/*/locations/*/keyRings/*`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource.
+Returns an empty policy if the resource exists and does not have a policy
+set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists KeyRings.
+
+Args:
+  parent: string, Required. The resource name of the location associated with the
+KeyRings, in the format `projects/*/locations/*`. (required)
+  pageToken: string, Optional pagination token, returned earlier via
+ListKeyRingsResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional limit on the number of KeyRings to include in the
+response.  Further KeyRings can subsequently be obtained by
+including the ListKeyRingsResponse.next_page_token in a subsequent
+request.  If unspecified, the server will pick an appropriate default.
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListKeyRings.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListKeyRingsRequest.page_token to retrieve the next page of results.
+    "totalSize": 42, # The total number of KeyRings that matched the query.
+    "keyRings": [ # The list of KeyRings.
+      { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+        "createTime": "A String", # Output only. The time at which this KeyRing was created.
+        "name": "A String", # Output only. The resource name for the KeyRing in the format
+            # `projects/*/locations/*/keyRings/*`.
+      },
+    ],
+  }</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="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any
+existing policy.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
+
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.html b/docs/dyn/cloudkms_v1beta1.html
new file mode 100644
index 0000000..25ecb30
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.html b/docs/dyn/cloudkms_v1beta1.projects.html
new file mode 100644
index 0000000..9e34140
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1beta1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.html b/docs/dyn/cloudkms_v1beta1.projects.locations.html
new file mode 100644
index 0000000..f8aff14
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.projects.locations.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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings()</a></code>
+</p>
+<p class="firstline">Returns the keyRings Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Get information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</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(name, x__xgafv=None)</code>
+  <pre>Get information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+    "labels": { # Cross-service attributes for the location. For example
+        #
+        #     {"cloud.googleapis.com/region": "us-east1"}
+      "a_key": "A String",
+    },
+    "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
+    "name": "A String", # Resource name for the location, which may vary between implementations.
+        # For example: `"projects/example-project/locations/us-east1"`
+    "metadata": { # Service-specific metadata. For example the available capacity at the given
+        # location.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "locations": [ # A list of locations that matches the specified filter in the request.
+      { # A resource that represents Google Cloud Platform location.
+        "labels": { # Cross-service attributes for the location. For example
+            #
+            #     {"cloud.googleapis.com/region": "us-east1"}
+          "a_key": "A String",
+        },
+        "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
+        "name": "A String", # Resource name for the location, which may vary between implementations.
+            # For example: `"projects/example-project/locations/us-east1"`
+        "metadata": { # Service-specific metadata. For example the available capacity at the given
+            # location.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      },
+    ],
+  }</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/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
new file mode 100644
index 0000000..30ab30a
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new CryptoKeyVersion in a CryptoKey.</p>
+<p class="toc_element">
+  <code><a href="#destroy">destroy(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Schedule a CryptoKeyVersion for destruction.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given CryptoKeyVersion.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists CryptoKeyVersions.</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(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update a CryptoKeyVersion's metadata.</p>
+<p class="toc_element">
+  <code><a href="#restore">restore(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Restore a CryptoKeyVersion in the</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Create a new CryptoKeyVersion in a CryptoKey.
+
+The server will assign the next sequential id. If unset,
+state will be set to
+ENABLED.
+
+Args:
+  parent: string, Required. The name of the CryptoKey associated with
+the CryptoKeyVersions. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKeyVersion represents an individual cryptographic key, and the
+    # associated key material.
+    # 
+    # It can be used for cryptographic operations either directly, or via its
+    # parent CryptoKey, in which case the server will choose the appropriate
+    # version for the operation.
+  "state": "A String", # The current state of the CryptoKeyVersion.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+      # for destruction. Only present if state is
+      # DESTROY_SCHEDULED.
+  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+      # destroyed. Only present if state is
+      # DESTROYED.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="destroy">destroy(name, body, x__xgafv=None)</code>
+  <pre>Schedule a CryptoKeyVersion for destruction.
+
+Upon calling this method, CryptoKeyVersion.state will be set to
+DESTROY_SCHEDULED
+and destroy_time will be set to a time 24
+hours in the future, at which point the state
+will be changed to
+DESTROYED, and the key
+material will be irrevocably destroyed.
+
+Before the destroy_time is reached,
+RestoreCryptoKeyVersion may be called to reverse the process.
+
+Args:
+  name: string, The resource name of the CryptoKeyVersion to destroy. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.DestroyCryptoKeyVersion.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given CryptoKeyVersion.
+
+Args:
+  name: string, The name of the CryptoKeyVersion to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists CryptoKeyVersions.
+
+Args:
+  parent: string, Required. The resource name of the CryptoKey to list, in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
+  pageSize: integer, Optional limit on the number of CryptoKeyVersions to
+include in the response. Further CryptoKeyVersions can
+subsequently be obtained by including the
+ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
+If unspecified, the server will pick an appropriate default.
+  pageToken: string, Optional pagination token, returned earlier via
+ListCryptoKeyVersionsResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListCryptoKeyVersions.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
+        # results.
+    "totalSize": 42, # The total number of CryptoKeyVersions that matched the
+        # query.
+    "cryptoKeyVersions": [ # The list of CryptoKeyVersions.
+      { # A CryptoKeyVersion represents an individual cryptographic key, and the
+          # associated key material.
+          #
+          # It can be used for cryptographic operations either directly, or via its
+          # parent CryptoKey, in which case the server will choose the appropriate
+          # version for the operation.
+        "state": "A String", # The current state of the CryptoKeyVersion.
+        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+            # for destruction. Only present if state is
+            # DESTROY_SCHEDULED.
+        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+            # destroyed. Only present if state is
+            # DESTROYED.
+      },
+    ],
+  }</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(name=None, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Update a CryptoKeyVersion's metadata.
+
+state may be changed between
+ENABLED and
+DISABLED using this
+method. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to
+move between other states.
+
+Args:
+  name: string, Output only. The resource name for this CryptoKeyVersion in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKeyVersion represents an individual cryptographic key, and the
+    # associated key material.
+    # 
+    # It can be used for cryptographic operations either directly, or via its
+    # parent CryptoKey, in which case the server will choose the appropriate
+    # version for the operation.
+  "state": "A String", # The current state of the CryptoKeyVersion.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+      # for destruction. Only present if state is
+      # DESTROY_SCHEDULED.
+  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+      # destroyed. Only present if state is
+      # DESTROYED.
+}
+
+  updateMask: string, Required list of fields to be updated in this request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restore">restore(name, body, x__xgafv=None)</code>
+  <pre>Restore a CryptoKeyVersion in the
+DESTROY_SCHEDULED,
+state.
+
+Upon restoration of the CryptoKeyVersion, state
+will be set to DISABLED,
+and destroy_time will be cleared.
+
+Args:
+  name: string, The resource name of the CryptoKeyVersion to restore. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.RestoreCryptoKeyVersion.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKeyVersion represents an individual cryptographic key, and the
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html
new file mode 100644
index 0000000..0e4f179
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html
@@ -0,0 +1,1445 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions()</a></code>
+</p>
+<p class="firstline">Returns the cryptoKeyVersions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new CryptoKey within a KeyRing.</p>
+<p class="toc_element">
+  <code><a href="#decrypt">decrypt(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Decrypt data that was protected by Encrypt.</p>
+<p class="toc_element">
+  <code><a href="#encrypt">encrypt(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Encrypt data, so that it can only be recovered by a call to Decrypt.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given CryptoKey, as well as its</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists CryptoKeys.</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(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update a CryptoKey.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Update the version of a CryptoKey that will be used in Encrypt</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</code>
+  <pre>Create a new CryptoKey within a KeyRing.
+
+CryptoKey.purpose is required.
+
+Args:
+  parent: string, Required. The name of the KeyRing associated with the
+CryptoKeys. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKey represents a logical key that can be used for cryptographic
+    # operations.
+    # 
+    # A CryptoKey is made up of one or more versions, which
+    # represent the actual key material used in cryptographic operations.
+  "name": "A String", # Output only. The resource name for this CryptoKey in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+      # automatically rotates a key. Must be at least one day.
+      # 
+      # If rotation_period is set, next_rotation_time must also be set.
+  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+      # by Encrypt when this CryptoKey is given
+      # in EncryptRequest.name.
+      # 
+      # The CryptoKey's primary version can be updated via
+      # UpdateCryptoKeyPrimaryVersion.
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  },
+  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+      # purpose is ENCRYPT_DECRYPT.
+  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+      # 
+      # 1. Create a new version of this CryptoKey.
+      # 2. Mark the new version as primary.
+      # 
+      # Key rotations performed manually via
+      # CreateCryptoKeyVersion and
+      # UpdateCryptoKeyPrimaryVersion
+      # do not affect next_rotation_time.
+}
+
+  cryptoKeyId: string, Required. It must be unique within a KeyRing and match the regular
+expression `[a-zA-Z0-9_-]{1,63}`
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="decrypt">decrypt(name=None, body, x__xgafv=None)</code>
+  <pre>Decrypt data that was protected by Encrypt.
+
+Args:
+  name: string, Required. The resource name of the CryptoKey to use for decryption.
+The server will choose the appropriate version. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.Decrypt.
+    "ciphertext": "A String", # Required. The encrypted data originally returned in
+        # EncryptResponse.ciphertext.
+    "additionalAuthenticatedData": "A String", # Optional data that must match the data originally supplied in
+        # EncryptRequest.additional_authenticated_data.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.Decrypt.
+    "plaintext": "A String", # The decrypted data originally supplied in EncryptRequest.plaintext.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="encrypt">encrypt(name=None, body, x__xgafv=None)</code>
+  <pre>Encrypt data, so that it can only be recovered by a call to Decrypt.
+
+Args:
+  name: string, Required. The resource name of the CryptoKey or CryptoKeyVersion
+to use for encryption.
+
+If a CryptoKey is specified, the server will use its
+primary version. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.Encrypt.
+    "plaintext": "A String", # Required. The data to encrypt. Must be no larger than 64KiB.
+    "additionalAuthenticatedData": "A String", # Optional data that, if specified, must also be provided during decryption
+        # through DecryptRequest.additional_authenticated_data.  Must be no
+        # larger than 64KiB.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.Encrypt.
+    "ciphertext": "A String", # The encrypted data.
+    "name": "A String", # The resource name of the CryptoKeyVersion used in encryption.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given CryptoKey, as well as its
+primary CryptoKeyVersion.
+
+Args:
+  name: string, The name of the CryptoKey to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource.
+Returns an empty policy if the resource exists and does not have a policy
+set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists CryptoKeys.
+
+Args:
+  parent: string, Required. The resource name of the KeyRing to list, in the format
+`projects/*/locations/*/keyRings/*`. (required)
+  pageSize: integer, Optional limit on the number of CryptoKeys to include in the
+response.  Further CryptoKeys can subsequently be obtained by
+including the ListCryptoKeysResponse.next_page_token in a subsequent
+request.  If unspecified, the server will pick an appropriate default.
+  pageToken: string, Optional pagination token, returned earlier via
+ListCryptoKeysResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListCryptoKeys.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListCryptoKeysRequest.page_token to retrieve the next page of results.
+    "cryptoKeys": [ # The list of CryptoKeys.
+      { # A CryptoKey represents a logical key that can be used for cryptographic
+          # operations.
+          #
+          # A CryptoKey is made up of one or more versions, which
+          # represent the actual key material used in cryptographic operations.
+        "name": "A String", # Output only. The resource name for this CryptoKey in the format
+            # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+        "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+            # automatically rotates a key. Must be at least one day.
+            #
+            # If rotation_period is set, next_rotation_time must also be set.
+        "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+            # by Encrypt when this CryptoKey is given
+            # in EncryptRequest.name.
+            #
+            # The CryptoKey's primary version can be updated via
+            # UpdateCryptoKeyPrimaryVersion.
+            # associated key material.
+            #
+            # It can be used for cryptographic operations either directly, or via its
+            # parent CryptoKey, in which case the server will choose the appropriate
+            # version for the operation.
+          "state": "A String", # The current state of the CryptoKeyVersion.
+          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+          "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+              # for destruction. Only present if state is
+              # DESTROY_SCHEDULED.
+          "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+              # destroyed. Only present if state is
+              # DESTROYED.
+        },
+        "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+            # purpose is ENCRYPT_DECRYPT.
+        "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+        "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+            #
+            # 1. Create a new version of this CryptoKey.
+            # 2. Mark the new version as primary.
+            #
+            # Key rotations performed manually via
+            # CreateCryptoKeyVersion and
+            # UpdateCryptoKeyPrimaryVersion
+            # do not affect next_rotation_time.
+      },
+    ],
+    "totalSize": 42, # The total number of CryptoKeys that matched the query.
+  }</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(name=None, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Update a CryptoKey.
+
+Args:
+  name: string, Output only. The resource name for this CryptoKey in the format
+`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CryptoKey represents a logical key that can be used for cryptographic
+    # operations.
+    # 
+    # A CryptoKey is made up of one or more versions, which
+    # represent the actual key material used in cryptographic operations.
+  "name": "A String", # Output only. The resource name for this CryptoKey in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+      # automatically rotates a key. Must be at least one day.
+      # 
+      # If rotation_period is set, next_rotation_time must also be set.
+  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+      # by Encrypt when this CryptoKey is given
+      # in EncryptRequest.name.
+      # 
+      # The CryptoKey's primary version can be updated via
+      # UpdateCryptoKeyPrimaryVersion.
+      # associated key material.
+      #
+      # It can be used for cryptographic operations either directly, or via its
+      # parent CryptoKey, in which case the server will choose the appropriate
+      # version for the operation.
+    "state": "A String", # The current state of the CryptoKeyVersion.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+        # for destruction. Only present if state is
+        # DESTROY_SCHEDULED.
+    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+        # destroyed. Only present if state is
+        # DESTROYED.
+  },
+  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+      # purpose is ENCRYPT_DECRYPT.
+  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+      # 
+      # 1. Create a new version of this CryptoKey.
+      # 2. Mark the new version as primary.
+      # 
+      # Key rotations performed manually via
+      # CreateCryptoKeyVersion and
+      # UpdateCryptoKeyPrimaryVersion
+      # do not affect next_rotation_time.
+}
+
+  updateMask: string, Required list of fields to be updated in this request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any
+existing policy.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
+
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</code>
+  <pre>Update the version of a CryptoKey that will be used in Encrypt
+
+Args:
+  name: string, The resource name of the CryptoKey to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
+    "cryptoKeyVersionId": "A String", # The id of the child CryptoKeyVersion to use as primary.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A CryptoKey represents a logical key that can be used for cryptographic
+      # operations.
+      #
+      # A CryptoKey is made up of one or more versions, which
+      # represent the actual key material used in cryptographic operations.
+    "name": "A String", # Output only. The resource name for this CryptoKey in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
+    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
+        # automatically rotates a key. Must be at least one day.
+        #
+        # If rotation_period is set, next_rotation_time must also be set.
+    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
+        # by Encrypt when this CryptoKey is given
+        # in EncryptRequest.name.
+        #
+        # The CryptoKey's primary version can be updated via
+        # UpdateCryptoKeyPrimaryVersion.
+        # associated key material.
+        #
+        # It can be used for cryptographic operations either directly, or via its
+        # parent CryptoKey, in which case the server will choose the appropriate
+        # version for the operation.
+      "state": "A String", # The current state of the CryptoKeyVersion.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
+      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
+          # for destruction. Only present if state is
+          # DESTROY_SCHEDULED.
+      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
+          # destroyed. Only present if state is
+          # DESTROYED.
+    },
+    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
+        # purpose is ENCRYPT_DECRYPT.
+    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
+    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
+        #
+        # 1. Create a new version of this CryptoKey.
+        # 2. Mark the new version as primary.
+        #
+        # Key rotations performed manually via
+        # CreateCryptoKeyVersion and
+        # UpdateCryptoKeyPrimaryVersion
+        # do not affect next_rotation_time.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html
new file mode 100644
index 0000000..3059083
--- /dev/null
+++ b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html
@@ -0,0 +1,1019 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys()</a></code>
+</p>
+<p class="firstline">Returns the cryptoKeys Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, keyRingId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new KeyRing in a given Project and Location.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for a given KeyRing.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists KeyRings.</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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, keyRingId=None, x__xgafv=None)</code>
+  <pre>Create a new KeyRing in a given Project and Location.
+
+Args:
+  parent: string, Required. The resource name of the location associated with the
+KeyRings, in the format `projects/*/locations/*`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A KeyRing is a toplevel logical grouping of CryptoKeys.
+  "name": "A String", # Output only. The resource name for the KeyRing in the format
+      # `projects/*/locations/*/keyRings/*`.
+  "createTime": "A String", # Output only. The time at which this KeyRing was created.
+}
+
+  keyRingId: string, Required. It must be unique within a location and match the regular
+expression `[a-zA-Z0-9_-]{1,63}`
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+    "name": "A String", # Output only. The resource name for the KeyRing in the format
+        # `projects/*/locations/*/keyRings/*`.
+    "createTime": "A String", # Output only. The time at which this KeyRing was created.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns metadata for a given KeyRing.
+
+Args:
+  name: string, The name of the KeyRing to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+    "name": "A String", # Output only. The resource name for the KeyRing in the format
+        # `projects/*/locations/*/keyRings/*`.
+    "createTime": "A String", # Output only. The time at which this KeyRing was created.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource.
+Returns an empty policy if the resource exists and does not have a policy
+set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists KeyRings.
+
+Args:
+  parent: string, Required. The resource name of the location associated with the
+KeyRings, in the format `projects/*/locations/*`. (required)
+  pageToken: string, Optional pagination token, returned earlier via
+ListKeyRingsResponse.next_page_token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional limit on the number of KeyRings to include in the
+response.  Further KeyRings can subsequently be obtained by
+including the ListKeyRingsResponse.next_page_token in a subsequent
+request.  If unspecified, the server will pick an appropriate default.
+
+Returns:
+  An object of the form:
+
+    { # Response message for KeyManagementService.ListKeyRings.
+    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
+        # ListKeyRingsRequest.page_token to retrieve the next page of results.
+    "totalSize": 42, # The total number of KeyRings that matched the query.
+    "keyRings": [ # The list of KeyRings.
+      { # A KeyRing is a toplevel logical grouping of CryptoKeys.
+        "name": "A String", # Output only. The resource name for the KeyRing in the format
+            # `projects/*/locations/*/keyRings/*`.
+        "createTime": "A String", # Output only. The time at which this KeyRing was created.
+      },
+    ],
+  }</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="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any
+existing policy.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
+
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudresourcemanager_v1.html b/docs/dyn/cloudresourcemanager_v1.html
index efcac49..7bd7d05 100644
--- a/docs/dyn/cloudresourcemanager_v1.html
+++ b/docs/dyn/cloudresourcemanager_v1.html
@@ -75,6 +75,11 @@
 <h1><a href="cloudresourcemanager_v1.html">Google Cloud Resource Manager API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="cloudresourcemanager_v1.liens.html">liens()</a></code>
+</p>
+<p class="firstline">Returns the liens Resource.</p>
+
+<p class="toc_element">
   <code><a href="cloudresourcemanager_v1.operations.html">operations()</a></code>
 </p>
 <p class="firstline">Returns the operations Resource.</p>
diff --git a/docs/dyn/cloudresourcemanager_v1.liens.html b/docs/dyn/cloudresourcemanager_v1.liens.html
new file mode 100644
index 0000000..854e26c
--- /dev/null
+++ b/docs/dyn/cloudresourcemanager_v1.liens.html
@@ -0,0 +1,275 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudresourcemanager_v1.html">Google Cloud Resource Manager API</a> . <a href="cloudresourcemanager_v1.liens.html">liens</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a Lien which applies to the resource denoted by the `parent` field.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Delete a Lien by `name`.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">List all Liens applied to the `parent` 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="create">create(body, x__xgafv=None)</code>
+  <pre>Create a Lien which applies to the resource denoted by the `parent` field.
+
+Callers of this method will require permission on the `parent` resource.
+For example, applying to `projects/1234` requires permission
+`resourcemanager.projects.updateLiens`.
+
+NOTE: Some resources may limit the number of Liens which may be applied.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Lien represents an encumbrance on the actions that can be performed on a
+      # resource.
+    "origin": "A String", # A stable, user-visible/meaningful string identifying the origin of the
+        # Lien, intended to be inspected programmatically. Maximum length of 200
+        # characters.
+        # 
+        # Example: 'compute.googleapis.com'
+    "restrictions": [ # The types of operations which should be blocked as a result of this Lien.
+        # Each value should correspond to an IAM permission. The server will
+        # validate the permissions against those for which Liens are supported.
+        # 
+        # An empty list is meaningless and will be rejected.
+        # 
+        # Example: ['resourcemanager.projects.delete']
+      "A String",
+    ],
+    "name": "A String", # A system-generated unique identifier for this Lien.
+        # 
+        # Example: `liens/1234abcd`
+    "parent": "A String", # A reference to the resource this Lien is attached to. The server will
+        # validate the parent against those for which Liens are supported.
+        # 
+        # Example: `projects/1234`
+    "reason": "A String", # Concise user-visible strings indicating why an action cannot be performed
+        # on a resource. Maximum lenth of 200 characters.
+        # 
+        # Example: 'Holds production API key'
+    "createTime": "A String", # The creation time of this Lien.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Lien represents an encumbrance on the actions that can be performed on a
+        # resource.
+      "origin": "A String", # A stable, user-visible/meaningful string identifying the origin of the
+          # Lien, intended to be inspected programmatically. Maximum length of 200
+          # characters.
+          #
+          # Example: 'compute.googleapis.com'
+      "restrictions": [ # The types of operations which should be blocked as a result of this Lien.
+          # Each value should correspond to an IAM permission. The server will
+          # validate the permissions against those for which Liens are supported.
+          #
+          # An empty list is meaningless and will be rejected.
+          #
+          # Example: ['resourcemanager.projects.delete']
+        "A String",
+      ],
+      "name": "A String", # A system-generated unique identifier for this Lien.
+          #
+          # Example: `liens/1234abcd`
+      "parent": "A String", # A reference to the resource this Lien is attached to. The server will
+          # validate the parent against those for which Liens are supported.
+          #
+          # Example: `projects/1234`
+      "reason": "A String", # Concise user-visible strings indicating why an action cannot be performed
+          # on a resource. Maximum lenth of 200 characters.
+          #
+          # Example: 'Holds production API key'
+      "createTime": "A String", # The creation time of this Lien.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Delete a Lien by `name`.
+
+Callers of this method will require permission on the `parent` resource.
+For example, a Lien with a `parent` of `projects/1234` requires permission
+`resourcemanager.projects.updateLiens`.
+
+Args:
+  name: string, The name/identifier of the Lien to delete. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>List all Liens applied to the `parent` resource.
+
+Callers of this method will require permission on the `parent` resource.
+For example, a Lien with a `parent` of `projects/1234` requires permission
+`resourcemanager.projects.get`.
+
+Args:
+  parent: string, The name of the resource to list all attached Liens.
+For example, `projects/1234`.
+  pageToken: string, The `next_page_token` value returned from a previous List request, if any.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, The maximum number of items to return. This is a suggestion for the server.
+
+Returns:
+  An object of the form:
+
+    { # The response message for Liens.ListLiens.
+    "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no more
+        # results in the list.
+    "liens": [ # A list of Liens.
+      { # A Lien represents an encumbrance on the actions that can be performed on a
+            # resource.
+          "origin": "A String", # A stable, user-visible/meaningful string identifying the origin of the
+              # Lien, intended to be inspected programmatically. Maximum length of 200
+              # characters.
+              #
+              # Example: 'compute.googleapis.com'
+          "restrictions": [ # The types of operations which should be blocked as a result of this Lien.
+              # Each value should correspond to an IAM permission. The server will
+              # validate the permissions against those for which Liens are supported.
+              #
+              # An empty list is meaningless and will be rejected.
+              #
+              # Example: ['resourcemanager.projects.delete']
+            "A String",
+          ],
+          "name": "A String", # A system-generated unique identifier for this Lien.
+              #
+              # Example: `liens/1234abcd`
+          "parent": "A String", # A reference to the resource this Lien is attached to. The server will
+              # validate the parent against those for which Liens are supported.
+              #
+              # Example: `projects/1234`
+          "reason": "A String", # Concise user-visible strings indicating why an action cannot be performed
+              # on a resource. Maximum lenth of 200 characters.
+              #
+              # Example: 'Holds production API key'
+          "createTime": "A String", # The creation time of this Lien.
+        },
+    ],
+  }</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/cloudresourcemanager_v1.operations.html b/docs/dyn/cloudresourcemanager_v1.operations.html
index c936baa..dd1970c 100644
--- a/docs/dyn/cloudresourcemanager_v1.operations.html
+++ b/docs/dyn/cloudresourcemanager_v1.operations.html
@@ -102,22 +102,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -181,6 +165,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudresourcemanager_v1.organizations.html b/docs/dyn/cloudresourcemanager_v1.organizations.html
index 4cbe33a..365ffba 100644
--- a/docs/dyn/cloudresourcemanager_v1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1.organizations.html
@@ -84,6 +84,9 @@
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Searches Organization resources that are visible to the user and satisfy</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>
+<p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on an Organization resource. Replaces any</p>
 <p class="toc_element">
@@ -114,11 +117,11 @@
         # be deleted.
       "directoryCustomerId": "A String", # The Google for Work customer id used in the Directory API.
     },
-    "creationTime": "A String", # Timestamp when the Organization was created. Assigned by the server.
-        # @OutputOnly
     "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-        # Assigned by the server, set to the firm name of the Google For Work
-        # customer that owns this organization.
+        # Assigned by the server, set to the primary domain of the G Suite
+        # customer that owns the organization.
+        # @OutputOnly
+    "creationTime": "A String", # Timestamp when the Organization was created. Assigned by the server.
         # @OutputOnly
     "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
         # @OutputOnly
@@ -136,8 +139,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -183,6 +185,99 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
         # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
@@ -216,16 +311,6 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -289,11 +374,11 @@
             # be deleted.
           "directoryCustomerId": "A String", # The Google for Work customer id used in the Directory API.
         },
-        "creationTime": "A String", # Timestamp when the Organization was created. Assigned by the server.
-            # @OutputOnly
         "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-            # Assigned by the server, set to the firm name of the Google For Work
-            # customer that owns this organization.
+            # Assigned by the server, set to the primary domain of the G Suite
+            # customer that owns the organization.
+            # @OutputOnly
+        "creationTime": "A String", # Timestamp when the Organization was created. Assigned by the server.
             # @OutputOnly
         "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
             # @OutputOnly
@@ -306,6 +391,20 @@
 </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>
+
+<div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on an Organization resource. Replaces any
 existing policy. The `resource` field should be the organization's resource
@@ -313,8 +412,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -353,6 +451,99 @@
         #
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
       "bindings": [ # Associates a list of `members` to a `role`.
           # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
@@ -386,18 +577,13 @@
           ],
         },
       ],
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
   }
 
   x__xgafv: string, V1 error format.
@@ -439,6 +625,99 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
         # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
@@ -472,16 +751,6 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -494,8 +763,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/cloudresourcemanager_v1.projects.html b/docs/dyn/cloudresourcemanager_v1.projects.html
index be4714c..a01bda5 100644
--- a/docs/dyn/cloudresourcemanager_v1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1.projects.html
@@ -124,7 +124,7 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # container for ACLs, APIs, AppEngine Apps, VMs, and other
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
     # Google Cloud Platform resources.
   "name": "A String", # The user-assigned display name of the Project.
       # It must be 4 to 30 characters.
@@ -132,7 +132,6 @@
       # hyphen, single-quote, double-quote, space, and exclamation point.
       # 
       # Example: <code>My Project</code>
-      # 
       # Read-write.
   "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
       # 
@@ -143,10 +142,10 @@
       # 
       # Read-write.
       # Cloud Platform is a generic term for something you (a developer) may want to
-      # interact with through one of our API's. Some examples are an AppEngine app,
+      # interact with through one of our API's. Some examples are an App Engine app,
       # a Compute Engine instance, a Cloud SQL database, and so on.
     "type": "A String", # Required field representing the resource type this id is for.
-        # At present, the only valid type is "organization".
+        # At present, the valid types are: "organization"
     "id": "A String", # Required field for the type-specific id. This should correspond to the id
         # used in the type-specific API's.
   },
@@ -156,7 +155,6 @@
       # Trailing hyphens are prohibited.
       # 
       # Example: <code>tokyo-rain-123</code>
-      # 
       # Read-only after creation.
   "labels": { # The labels associated with this Project.
       # 
@@ -172,19 +170,17 @@
       # depend on specific characters being disallowed.
       # 
       # Example: <code>"environment" : "dev"</code>
-      # 
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
+  "createTime": "A String", # Creation time.
       # 
       # Read-only.
 }
@@ -205,22 +201,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -284,6 +264,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -358,7 +354,7 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, AppEngine Apps, VMs, and other
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
@@ -366,7 +362,6 @@
         # hyphen, single-quote, double-quote, space, and exclamation point.
         #
         # Example: <code>My Project</code>
-        #
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
         #
@@ -377,10 +372,10 @@
         #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an AppEngine app,
+        # interact with through one of our API's. Some examples are an App Engine app,
         # a Compute Engine instance, a Cloud SQL database, and so on.
       "type": "A String", # Required field representing the resource type this id is for.
-          # At present, the only valid type is "organization".
+          # At present, the valid types are: "organization"
       "id": "A String", # Required field for the type-specific id. This should correspond to the id
           # used in the type-specific API's.
     },
@@ -390,7 +385,6 @@
         # Trailing hyphens are prohibited.
         #
         # Example: <code>tokyo-rain-123</code>
-        #
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
         #
@@ -406,19 +400,17 @@
         # depend on specific characters being disallowed.
         #
         # Example: <code>"environment" : "dev"</code>
-        #
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
         #
         # Read-only.
   }</pre>
@@ -458,10 +450,10 @@
       { # Identifying information for a single ancestor of a project.
         "resourceId": { # A container to reference an id for any resource type. A `resource` in Google # Resource id of the ancestor.
             # Cloud Platform is a generic term for something you (a developer) may want to
-            # interact with through one of our API's. Some examples are an AppEngine app,
+            # interact with through one of our API's. Some examples are an App Engine app,
             # a Compute Engine instance, a Cloud SQL database, and so on.
           "type": "A String", # Required field representing the resource type this id is for.
-              # At present, the only valid type is "organization".
+              # At present, the valid types are: "organization"
           "id": "A String", # Required field for the type-specific id. This should correspond to the id
               # used in the type-specific API's.
         },
@@ -477,8 +469,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -524,6 +515,99 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
         # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
@@ -557,16 +641,6 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -637,7 +711,7 @@
     "projects": [ # The list of Projects that matched the list filter. This list can
         # be paginated.
       { # A Project is a high-level Google Cloud Platform entity.  It is a
-          # container for ACLs, APIs, AppEngine Apps, VMs, and other
+          # container for ACLs, APIs, App Engine Apps, VMs, and other
           # Google Cloud Platform resources.
         "name": "A String", # The user-assigned display name of the Project.
             # It must be 4 to 30 characters.
@@ -645,7 +719,6 @@
             # hyphen, single-quote, double-quote, space, and exclamation point.
             #
             # Example: <code>My Project</code>
-            #
             # Read-write.
         "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
             #
@@ -656,10 +729,10 @@
             #
             # Read-write.
             # Cloud Platform is a generic term for something you (a developer) may want to
-            # interact with through one of our API's. Some examples are an AppEngine app,
+            # interact with through one of our API's. Some examples are an App Engine app,
             # a Compute Engine instance, a Cloud SQL database, and so on.
           "type": "A String", # Required field representing the resource type this id is for.
-              # At present, the only valid type is "organization".
+              # At present, the valid types are: "organization"
           "id": "A String", # Required field for the type-specific id. This should correspond to the id
               # used in the type-specific API's.
         },
@@ -669,7 +742,6 @@
             # Trailing hyphens are prohibited.
             #
             # Example: <code>tokyo-rain-123</code>
-            #
             # Read-only after creation.
         "labels": { # The labels associated with this Project.
             #
@@ -685,19 +757,17 @@
             # depend on specific characters being disallowed.
             #
             # Example: <code>"environment" : "dev"</code>
-            #
             # Read-write.
           "a_key": "A String",
         },
-        "createTime": "A String", # Creation time.
+        "projectNumber": "A String", # The number uniquely identifying the project.
             #
+            # Example: <code>415104041262</code>
             # Read-only.
         "lifecycleState": "A String", # The Project lifecycle state.
             #
             # Read-only.
-        "projectNumber": "A String", # The number uniquely identifying the project.
-            #
-            # Example: <code>415104041262</code>
+        "createTime": "A String", # Creation time.
             #
             # Read-only.
       },
@@ -762,8 +832,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -802,6 +871,99 @@
         #
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
       "bindings": [ # Associates a list of `members` to a `role`.
           # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
@@ -835,18 +997,13 @@
           ],
         },
       ],
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
   }
 
   x__xgafv: string, V1 error format.
@@ -888,6 +1045,99 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
         # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
@@ -921,16 +1171,6 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -941,8 +1181,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -1027,7 +1266,7 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # container for ACLs, APIs, AppEngine Apps, VMs, and other
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
     # Google Cloud Platform resources.
   "name": "A String", # The user-assigned display name of the Project.
       # It must be 4 to 30 characters.
@@ -1035,7 +1274,6 @@
       # hyphen, single-quote, double-quote, space, and exclamation point.
       # 
       # Example: <code>My Project</code>
-      # 
       # Read-write.
   "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
       # 
@@ -1046,10 +1284,10 @@
       # 
       # Read-write.
       # Cloud Platform is a generic term for something you (a developer) may want to
-      # interact with through one of our API's. Some examples are an AppEngine app,
+      # interact with through one of our API's. Some examples are an App Engine app,
       # a Compute Engine instance, a Cloud SQL database, and so on.
     "type": "A String", # Required field representing the resource type this id is for.
-        # At present, the only valid type is "organization".
+        # At present, the valid types are: "organization"
     "id": "A String", # Required field for the type-specific id. This should correspond to the id
         # used in the type-specific API's.
   },
@@ -1059,7 +1297,6 @@
       # Trailing hyphens are prohibited.
       # 
       # Example: <code>tokyo-rain-123</code>
-      # 
       # Read-only after creation.
   "labels": { # The labels associated with this Project.
       # 
@@ -1075,19 +1312,17 @@
       # depend on specific characters being disallowed.
       # 
       # Example: <code>"environment" : "dev"</code>
-      # 
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
+  "createTime": "A String", # Creation time.
       # 
       # Read-only.
 }
@@ -1101,7 +1336,7 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, AppEngine Apps, VMs, and other
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
@@ -1109,7 +1344,6 @@
         # hyphen, single-quote, double-quote, space, and exclamation point.
         #
         # Example: <code>My Project</code>
-        #
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
         #
@@ -1120,10 +1354,10 @@
         #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an AppEngine app,
+        # interact with through one of our API's. Some examples are an App Engine app,
         # a Compute Engine instance, a Cloud SQL database, and so on.
       "type": "A String", # Required field representing the resource type this id is for.
-          # At present, the only valid type is "organization".
+          # At present, the valid types are: "organization"
       "id": "A String", # Required field for the type-specific id. This should correspond to the id
           # used in the type-specific API's.
     },
@@ -1133,7 +1367,6 @@
         # Trailing hyphens are prohibited.
         #
         # Example: <code>tokyo-rain-123</code>
-        #
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
         #
@@ -1149,19 +1382,17 @@
         # depend on specific characters being disallowed.
         #
         # Example: <code>"environment" : "dev"</code>
-        #
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
         #
         # Read-only.
   }</pre>
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
index ed08cef..6e1267b 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
@@ -115,8 +115,8 @@
     { # The root node in the resource hierarchy to which a particular entity's
       # (e.g., company) resources belong.
     "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-        # Assigned by the server, set to the firm name of the Google For Work
-        # customer that owns this organization.
+        # Assigned by the server, set to the primary domain of the G Suite
+        # customer that owns the organization.
         # @OutputOnly
     "name": "A String", # Output Only. The resource name of the organization. This is the
         # organization's relative path in the API. Its format is
@@ -148,8 +148,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -228,6 +227,89 @@
         ],
       },
     ],
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -285,8 +367,8 @@
       { # The root node in the resource hierarchy to which a particular entity's
           # (e.g., company) resources belong.
         "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-            # Assigned by the server, set to the firm name of the Google For Work
-            # customer that owns this organization.
+            # Assigned by the server, set to the primary domain of the G Suite
+            # customer that owns the organization.
             # @OutputOnly
         "name": "A String", # Output Only. The resource name of the organization. This is the
             # organization's relative path in the API. Its format is
@@ -334,8 +416,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -407,6 +488,89 @@
           ],
         },
       ],
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -419,6 +583,11 @@
           # policy is overwritten blindly.
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
   }
 
   x__xgafv: string, V1 error format.
@@ -493,6 +662,89 @@
         ],
       },
     ],
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -515,8 +767,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -559,8 +810,8 @@
 { # The root node in the resource hierarchy to which a particular entity's
     # (e.g., company) resources belong.
   "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-      # Assigned by the server, set to the firm name of the Google For Work
-      # customer that owns this organization.
+      # Assigned by the server, set to the primary domain of the G Suite
+      # customer that owns the organization.
       # @OutputOnly
   "name": "A String", # Output Only. The resource name of the organization. This is the
       # organization's relative path in the API. Its format is
@@ -594,8 +845,8 @@
     { # The root node in the resource hierarchy to which a particular entity's
       # (e.g., company) resources belong.
     "displayName": "A String", # A friendly string to be used to refer to the Organization in the UI.
-        # Assigned by the server, set to the firm name of the Google For Work
-        # customer that owns this organization.
+        # Assigned by the server, set to the primary domain of the G Suite
+        # customer that owns the organization.
         # @OutputOnly
     "name": "A String", # Output Only. The resource name of the organization. This is the
         # organization's relative path in the API. Its format is
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.projects.html b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
index 36afd11..96b2efc 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
@@ -124,7 +124,7 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # container for ACLs, APIs, AppEngine Apps, VMs, and other
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
     # Google Cloud Platform resources.
   "name": "A String", # The user-assigned display name of the Project.
       # It must be 4 to 30 characters.
@@ -132,7 +132,6 @@
       # hyphen, single-quote, double-quote, space, and exclamation point.
       # 
       # Example: <code>My Project</code>
-      # 
       # Read-write.
   "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
       # 
@@ -143,7 +142,7 @@
       # 
       # Read-write.
       # Cloud Platform is a generic term for something you (a developer) may want to
-      # interact with through one of our API's. Some examples are an AppEngine app,
+      # interact with through one of our API's. Some examples are an App Engine app,
       # a Compute Engine instance, a Cloud SQL database, and so on.
     "type": "A String", # Required field representing the resource type this id is for.
         # At present, the valid types are "project" and "organization".
@@ -156,7 +155,6 @@
       # Trailing hyphens are prohibited.
       # 
       # Example: <code>tokyo-rain-123</code>
-      # 
       # Read-only after creation.
   "labels": { # The labels associated with this Project.
       # 
@@ -172,19 +170,17 @@
       # depend on specific characters being disallowed.
       # 
       # Example: <code>"environment" : "dev"</code>
-      # 
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
+  "createTime": "A String", # Creation time.
       # 
       # Read-only.
 }
@@ -199,7 +195,7 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, AppEngine Apps, VMs, and other
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
@@ -207,7 +203,6 @@
         # hyphen, single-quote, double-quote, space, and exclamation point.
         #
         # Example: <code>My Project</code>
-        #
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
         #
@@ -218,7 +213,7 @@
         #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an AppEngine app,
+        # interact with through one of our API's. Some examples are an App Engine app,
         # a Compute Engine instance, a Cloud SQL database, and so on.
       "type": "A String", # Required field representing the resource type this id is for.
           # At present, the valid types are "project" and "organization".
@@ -231,7 +226,6 @@
         # Trailing hyphens are prohibited.
         #
         # Example: <code>tokyo-rain-123</code>
-        #
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
         #
@@ -247,19 +241,17 @@
         # depend on specific characters being disallowed.
         #
         # Example: <code>"environment" : "dev"</code>
-        #
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
         #
         # Read-only.
   }</pre>
@@ -336,7 +328,7 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, AppEngine Apps, VMs, and other
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
@@ -344,7 +336,6 @@
         # hyphen, single-quote, double-quote, space, and exclamation point.
         #
         # Example: <code>My Project</code>
-        #
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
         #
@@ -355,7 +346,7 @@
         #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an AppEngine app,
+        # interact with through one of our API's. Some examples are an App Engine app,
         # a Compute Engine instance, a Cloud SQL database, and so on.
       "type": "A String", # Required field representing the resource type this id is for.
           # At present, the valid types are "project" and "organization".
@@ -368,7 +359,6 @@
         # Trailing hyphens are prohibited.
         #
         # Example: <code>tokyo-rain-123</code>
-        #
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
         #
@@ -384,19 +374,17 @@
         # depend on specific characters being disallowed.
         #
         # Example: <code>"environment" : "dev"</code>
-        #
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
         #
         # Read-only.
   }</pre>
@@ -436,7 +424,7 @@
       { # Identifying information for a single ancestor of a project.
         "resourceId": { # A container to reference an id for any resource type. A `resource` in Google # Resource id of the ancestor.
             # Cloud Platform is a generic term for something you (a developer) may want to
-            # interact with through one of our API's. Some examples are an AppEngine app,
+            # interact with through one of our API's. Some examples are an App Engine app,
             # a Compute Engine instance, a Cloud SQL database, and so on.
           "type": "A String", # Required field representing the resource type this id is for.
               # At present, the valid types are "project" and "organization".
@@ -455,8 +443,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -535,6 +522,89 @@
         ],
       },
     ],
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -614,7 +684,7 @@
     "projects": [ # The list of Projects that matched the list filter. This list can
         # be paginated.
       { # A Project is a high-level Google Cloud Platform entity.  It is a
-          # container for ACLs, APIs, AppEngine Apps, VMs, and other
+          # container for ACLs, APIs, App Engine Apps, VMs, and other
           # Google Cloud Platform resources.
         "name": "A String", # The user-assigned display name of the Project.
             # It must be 4 to 30 characters.
@@ -622,7 +692,6 @@
             # hyphen, single-quote, double-quote, space, and exclamation point.
             #
             # Example: <code>My Project</code>
-            #
             # Read-write.
         "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
             #
@@ -633,7 +702,7 @@
             #
             # Read-write.
             # Cloud Platform is a generic term for something you (a developer) may want to
-            # interact with through one of our API's. Some examples are an AppEngine app,
+            # interact with through one of our API's. Some examples are an App Engine app,
             # a Compute Engine instance, a Cloud SQL database, and so on.
           "type": "A String", # Required field representing the resource type this id is for.
               # At present, the valid types are "project" and "organization".
@@ -646,7 +715,6 @@
             # Trailing hyphens are prohibited.
             #
             # Example: <code>tokyo-rain-123</code>
-            #
             # Read-only after creation.
         "labels": { # The labels associated with this Project.
             #
@@ -662,19 +730,17 @@
             # depend on specific characters being disallowed.
             #
             # Example: <code>"environment" : "dev"</code>
-            #
             # Read-write.
           "a_key": "A String",
         },
-        "createTime": "A String", # Creation time.
+        "projectNumber": "A String", # The number uniquely identifying the project.
             #
+            # Example: <code>415104041262</code>
             # Read-only.
         "lifecycleState": "A String", # The Project lifecycle state.
             #
             # Read-only.
-        "projectNumber": "A String", # The number uniquely identifying the project.
-            #
-            # Example: <code>415104041262</code>
+        "createTime": "A String", # Creation time.
             #
             # Read-only.
       },
@@ -737,8 +803,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -810,6 +875,89 @@
           ],
         },
       ],
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -822,6 +970,11 @@
           # policy is overwritten blindly.
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
   }
 
   x__xgafv: string, V1 error format.
@@ -896,6 +1049,89 @@
         ],
       },
     ],
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -916,8 +1152,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -1002,7 +1237,7 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # container for ACLs, APIs, AppEngine Apps, VMs, and other
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
     # Google Cloud Platform resources.
   "name": "A String", # The user-assigned display name of the Project.
       # It must be 4 to 30 characters.
@@ -1010,7 +1245,6 @@
       # hyphen, single-quote, double-quote, space, and exclamation point.
       # 
       # Example: <code>My Project</code>
-      # 
       # Read-write.
   "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
       # 
@@ -1021,7 +1255,7 @@
       # 
       # Read-write.
       # Cloud Platform is a generic term for something you (a developer) may want to
-      # interact with through one of our API's. Some examples are an AppEngine app,
+      # interact with through one of our API's. Some examples are an App Engine app,
       # a Compute Engine instance, a Cloud SQL database, and so on.
     "type": "A String", # Required field representing the resource type this id is for.
         # At present, the valid types are "project" and "organization".
@@ -1034,7 +1268,6 @@
       # Trailing hyphens are prohibited.
       # 
       # Example: <code>tokyo-rain-123</code>
-      # 
       # Read-only after creation.
   "labels": { # The labels associated with this Project.
       # 
@@ -1050,19 +1283,17 @@
       # depend on specific characters being disallowed.
       # 
       # Example: <code>"environment" : "dev"</code>
-      # 
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
+  "createTime": "A String", # Creation time.
       # 
       # Read-only.
 }
@@ -1076,7 +1307,7 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, AppEngine Apps, VMs, and other
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
@@ -1084,7 +1315,6 @@
         # hyphen, single-quote, double-quote, space, and exclamation point.
         #
         # Example: <code>My Project</code>
-        #
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
         #
@@ -1095,7 +1325,7 @@
         #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an AppEngine app,
+        # interact with through one of our API's. Some examples are an App Engine app,
         # a Compute Engine instance, a Cloud SQL database, and so on.
       "type": "A String", # Required field representing the resource type this id is for.
           # At present, the valid types are "project" and "organization".
@@ -1108,7 +1338,6 @@
         # Trailing hyphens are prohibited.
         #
         # Example: <code>tokyo-rain-123</code>
-        #
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
         #
@@ -1124,19 +1353,17 @@
         # depend on specific characters being disallowed.
         #
         # Example: <code>"environment" : "dev"</code>
-        #
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
         #
         # Read-only.
   }</pre>
diff --git a/docs/dyn/cloudtrace_v1.html b/docs/dyn/cloudtrace_v1.html
index f795ab4..dfd5606 100644
--- a/docs/dyn/cloudtrace_v1.html
+++ b/docs/dyn/cloudtrace_v1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="cloudtrace_v1.html">Google Cloud Trace API</a></h1>
+<h1><a href="cloudtrace_v1.html">Stackdriver Trace API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="cloudtrace_v1.projects.html">projects()</a></code>
diff --git a/docs/dyn/cloudtrace_v1.projects.html b/docs/dyn/cloudtrace_v1.projects.html
index 71e5176..3c1086c 100644
--- a/docs/dyn/cloudtrace_v1.projects.html
+++ b/docs/dyn/cloudtrace_v1.projects.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="cloudtrace_v1.html">Google Cloud Trace API</a> . <a href="cloudtrace_v1.projects.html">projects</a></h1>
+<h1><a href="cloudtrace_v1.html">Stackdriver Trace API</a> . <a href="cloudtrace_v1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="cloudtrace_v1.projects.traces.html">traces()</a></code>
@@ -81,11 +81,15 @@
 
 <p class="toc_element">
   <code><a href="#patchTraces">patchTraces(projectId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields in the existing trace and its spans are overwritten by the provided values, and any new fields provided are merged with the existing trace data. If the ID does not match, a new trace is created.</p>
+<p class="firstline">Sends new traces to Stackdriver Trace or updates existing traces. If the ID</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="patchTraces">patchTraces(projectId, body, x__xgafv=None)</code>
-  <pre>Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields in the existing trace and its spans are overwritten by the provided values, and any new fields provided are merged with the existing trace data. If the ID does not match, a new trace is created.
+  <pre>Sends new traces to Stackdriver Trace or updates existing traces. If the ID
+of a trace that you send matches that of an existing trace, any fields
+in the existing trace and its spans are overwritten by the provided values,
+and any new fields provided are merged with the existing trace data. If the
+ID does not match, a new trace is created.
 
 Args:
   projectId: string, ID of the Cloud project where the trace data is stored. (required)
@@ -94,19 +98,36 @@
 
 { # List of new or updated traces.
     "traces": [ # List of traces.
-      { # A trace describes how long it takes for an application to perform an operation. It consists of a set of spans, each of which represent a single timed event within the operation.
+      { # A trace describes how long it takes for an application to perform an
+          # operation. It consists of a set of spans, each of which represent a single
+          # timed event within the operation.
         "projectId": "A String", # Project ID of the Cloud project where the trace data is stored.
-        "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit numeric value formatted as a 32-byte hex string.
+        "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit
+            # numeric value formatted as a 32-byte hex string.
         "spans": [ # Collection of spans in the trace.
-          { # A span represents a single timed event within a trace. Spans can be nested and form a trace tree. Often, a trace contains a root span that describes the end-to-end latency of an operation and, optionally, one or more subspans for its suboperations. Spans do not need to be contiguous. There may be gaps between spans in a trace.
-            "kind": "A String", # Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `RPC_CLIENT` and `RPC_SERVER` to identify queueing latency associated with the span.
-            "name": "A String", # Name of the trace. The trace name is sanitized and displayed in the Stackdriver Trace tool in the {% dynamic print site_values.console_name %}. The name may be a method name or some other per-call site name. For the same executable and the same call point, a best practice is to use a consistent name, which makes it easier to correlate cross-trace spans.
-            "labels": { # Collection of labels associated with the span.
+          { # A span represents a single timed event within a trace. Spans can be nested
+              # and form a trace tree. Often, a trace contains a root span that describes the
+              # end-to-end latency of an operation and, optionally, one or more subspans for
+              # its suboperations. Spans do not need to be contiguous. There may be gaps
+              # between spans in a trace.
+            "kind": "A String", # Distinguishes between spans generated in a particular context. For example,
+                # two spans with the same name may be distinguished using `RPC_CLIENT`
+                # and `RPC_SERVER` to identify queueing latency associated with the span.
+            "name": "A String", # Name of the span. Must be less than 128 bytes. The span name is sanitized
+                # and displayed in the Stackdriver Trace tool in the
+                # {% dynamic print site_values.console_name %}.
+                # The name may be a method name or some other per-call site name.
+                # For the same executable and the same call point, a best practice is
+                # to use a consistent name, which makes it easier to correlate
+                # cross-trace spans.
+            "labels": { # Collection of labels associated with the span. Label keys must be less than
+                # 128 bytes. Label values must be less than 16 kilobytes.
               "a_key": "A String",
             },
             "parentSpanId": "A String", # ID of the parent span, if any. Optional.
             "startTime": "A String", # Start time of the span in nanoseconds from the UNIX epoch.
-            "spanId": "A String", # Identifier for the span. This identifier must be unique within a trace.
+            "spanId": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
+                # unique within a trace.
             "endTime": "A String", # End time of the span in nanoseconds from the UNIX epoch.
           },
         ],
@@ -115,11 +136,22 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudtrace_v1.projects.traces.html b/docs/dyn/cloudtrace_v1.projects.traces.html
index 780a3a5..db3d77a 100644
--- a/docs/dyn/cloudtrace_v1.projects.traces.html
+++ b/docs/dyn/cloudtrace_v1.projects.traces.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="cloudtrace_v1.html">Google Cloud Trace API</a> . <a href="cloudtrace_v1.projects.html">projects</a> . <a href="cloudtrace_v1.projects.traces.html">traces</a></h1>
+<h1><a href="cloudtrace_v1.html">Stackdriver Trace API</a> . <a href="cloudtrace_v1.projects.html">projects</a> . <a href="cloudtrace_v1.projects.traces.html">traces</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(projectId, traceId, x__xgafv=None)</a></code></p>
@@ -92,23 +92,43 @@
   projectId: string, ID of the Cloud project where the trace data is stored. (required)
   traceId: string, ID of the trace to return. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A trace describes how long it takes for an application to perform an operation. It consists of a set of spans, each of which represent a single timed event within the operation.
+    { # A trace describes how long it takes for an application to perform an
+      # operation. It consists of a set of spans, each of which represent a single
+      # timed event within the operation.
     "projectId": "A String", # Project ID of the Cloud project where the trace data is stored.
-    "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit numeric value formatted as a 32-byte hex string.
+    "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit
+        # numeric value formatted as a 32-byte hex string.
     "spans": [ # Collection of spans in the trace.
-      { # A span represents a single timed event within a trace. Spans can be nested and form a trace tree. Often, a trace contains a root span that describes the end-to-end latency of an operation and, optionally, one or more subspans for its suboperations. Spans do not need to be contiguous. There may be gaps between spans in a trace.
-        "kind": "A String", # Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `RPC_CLIENT` and `RPC_SERVER` to identify queueing latency associated with the span.
-        "name": "A String", # Name of the trace. The trace name is sanitized and displayed in the Stackdriver Trace tool in the {% dynamic print site_values.console_name %}. The name may be a method name or some other per-call site name. For the same executable and the same call point, a best practice is to use a consistent name, which makes it easier to correlate cross-trace spans.
-        "labels": { # Collection of labels associated with the span.
+      { # A span represents a single timed event within a trace. Spans can be nested
+          # and form a trace tree. Often, a trace contains a root span that describes the
+          # end-to-end latency of an operation and, optionally, one or more subspans for
+          # its suboperations. Spans do not need to be contiguous. There may be gaps
+          # between spans in a trace.
+        "kind": "A String", # Distinguishes between spans generated in a particular context. For example,
+            # two spans with the same name may be distinguished using `RPC_CLIENT`
+            # and `RPC_SERVER` to identify queueing latency associated with the span.
+        "name": "A String", # Name of the span. Must be less than 128 bytes. The span name is sanitized
+            # and displayed in the Stackdriver Trace tool in the
+            # {% dynamic print site_values.console_name %}.
+            # The name may be a method name or some other per-call site name.
+            # For the same executable and the same call point, a best practice is
+            # to use a consistent name, which makes it easier to correlate
+            # cross-trace spans.
+        "labels": { # Collection of labels associated with the span. Label keys must be less than
+            # 128 bytes. Label values must be less than 16 kilobytes.
           "a_key": "A String",
         },
         "parentSpanId": "A String", # ID of the parent span, if any. Optional.
         "startTime": "A String", # Start time of the span in nanoseconds from the UNIX epoch.
-        "spanId": "A String", # Identifier for the span. This identifier must be unique within a trace.
+        "spanId": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
+            # unique within a trace.
         "endTime": "A String", # End time of the span in nanoseconds from the UNIX epoch.
       },
     ],
@@ -121,34 +141,74 @@
 
 Args:
   projectId: string, ID of the Cloud project where the trace data is stored. (required)
-  orderBy: string, Field used to sort the returned traces. Optional. Can be one of the following: * `trace_id` * `name` (`name` field of root span in the trace) * `duration` (difference between `end_time` and `start_time` fields of the root span) * `start` (`start_time` field of the root span) Descending order can be specified by appending `desc` to the sort field (for example, `name desc`). Only one sort field is permitted.
-  startTime: string, End of the time interval (inclusive) during which the trace data was collected from the application.
-  pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the implementation selects a reasonable value. The implementation may return fewer traces than the requested page size. Optional.
+  orderBy: string, Field used to sort the returned traces. Optional.
+Can be one of the following:
+
+*   `trace_id`
+*   `name` (`name` field of root span in the trace)
+*   `duration` (difference between `end_time` and `start_time` fields of
+     the root span)
+*   `start` (`start_time` field of the root span)
+
+Descending order can be specified by appending `desc` to the sort field
+(for example, `name desc`).
+
+Only one sort field is permitted.
+  startTime: string, End of the time interval (inclusive) during which the trace data was
+collected from the application.
+  pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the
+implementation selects a reasonable value.  The implementation may
+return fewer traces than the requested page size. Optional.
   x__xgafv: string, V1 error format.
-  pageToken: string, Token identifying the page of results to return. If provided, use the value of the `next_page_token` field from a previous request. Optional.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Token identifying the page of results to return. If provided, use the
+value of the `next_page_token` field from a previous request. Optional.
   filter: string, An optional filter for the request.
-  endTime: string, Start of the time interval (inclusive) during which the trace data was collected from the application.
-  view: string, Type of data returned for traces in the list. Optional. Default is `MINIMAL`.
+  endTime: string, Start of the time interval (inclusive) during which the trace data was
+collected from the application.
+  view: string, Type of data returned for traces in the list. Optional. Default is
+`MINIMAL`.
 
 Returns:
   An object of the form:
 
     { # The response message for the `ListTraces` method.
-    "nextPageToken": "A String", # If defined, indicates that there are more traces that match the request and that this value should be passed to the next request to continue retrieving additional traces.
+    "nextPageToken": "A String", # If defined, indicates that there are more traces that match the request
+        # and that this value should be passed to the next request to continue
+        # retrieving additional traces.
     "traces": [ # List of trace records returned.
-      { # A trace describes how long it takes for an application to perform an operation. It consists of a set of spans, each of which represent a single timed event within the operation.
+      { # A trace describes how long it takes for an application to perform an
+          # operation. It consists of a set of spans, each of which represent a single
+          # timed event within the operation.
         "projectId": "A String", # Project ID of the Cloud project where the trace data is stored.
-        "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit numeric value formatted as a 32-byte hex string.
+        "traceId": "A String", # Globally unique identifier for the trace. This identifier is a 128-bit
+            # numeric value formatted as a 32-byte hex string.
         "spans": [ # Collection of spans in the trace.
-          { # A span represents a single timed event within a trace. Spans can be nested and form a trace tree. Often, a trace contains a root span that describes the end-to-end latency of an operation and, optionally, one or more subspans for its suboperations. Spans do not need to be contiguous. There may be gaps between spans in a trace.
-            "kind": "A String", # Distinguishes between spans generated in a particular context. For example, two spans with the same name may be distinguished using `RPC_CLIENT` and `RPC_SERVER` to identify queueing latency associated with the span.
-            "name": "A String", # Name of the trace. The trace name is sanitized and displayed in the Stackdriver Trace tool in the {% dynamic print site_values.console_name %}. The name may be a method name or some other per-call site name. For the same executable and the same call point, a best practice is to use a consistent name, which makes it easier to correlate cross-trace spans.
-            "labels": { # Collection of labels associated with the span.
+          { # A span represents a single timed event within a trace. Spans can be nested
+              # and form a trace tree. Often, a trace contains a root span that describes the
+              # end-to-end latency of an operation and, optionally, one or more subspans for
+              # its suboperations. Spans do not need to be contiguous. There may be gaps
+              # between spans in a trace.
+            "kind": "A String", # Distinguishes between spans generated in a particular context. For example,
+                # two spans with the same name may be distinguished using `RPC_CLIENT`
+                # and `RPC_SERVER` to identify queueing latency associated with the span.
+            "name": "A String", # Name of the span. Must be less than 128 bytes. The span name is sanitized
+                # and displayed in the Stackdriver Trace tool in the
+                # {% dynamic print site_values.console_name %}.
+                # The name may be a method name or some other per-call site name.
+                # For the same executable and the same call point, a best practice is
+                # to use a consistent name, which makes it easier to correlate
+                # cross-trace spans.
+            "labels": { # Collection of labels associated with the span. Label keys must be less than
+                # 128 bytes. Label values must be less than 16 kilobytes.
               "a_key": "A String",
             },
             "parentSpanId": "A String", # ID of the parent span, if any. Optional.
             "startTime": "A String", # Start time of the span in nanoseconds from the UNIX epoch.
-            "spanId": "A String", # Identifier for the span. This identifier must be unique within a trace.
+            "spanId": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
+                # unique within a trace.
             "endTime": "A String", # End time of the span in nanoseconds from the UNIX epoch.
           },
         ],
diff --git a/docs/dyn/compute_alpha.acceleratorTypes.html b/docs/dyn/compute_alpha.acceleratorTypes.html
new file mode 100644
index 0000000..013741c
--- /dev/null
+++ b/docs/dyn/compute_alpha.acceleratorTypes.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_alpha.html">Compute Engine API</a> . <a href="compute_alpha.acceleratorTypes.html">acceleratorTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of accelerator types.</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, acceleratorType)</a></code></p>
+<p class="firstline">Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves a list of accelerator types 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of accelerator types.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # [Output Only] A map of scoped accelerator type lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of accelerator types.
+        "warning": { # [Output Only] An informational warning that appears when the accelerator types list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+        "acceleratorTypes": [ # [Output Only] List of accelerator types contained in this scope.
+          { # An Accelerator Type resource.
+            "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+            "description": "A String", # [Output Only] An optional textual description of the resource.
+            "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+            "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+              "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+              "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+              "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+              "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+              "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+            },
+            "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+            "name": "A String", # [Output Only] Name of the resource.
+          },
+        ],
+      },
+    },
+    "kind": "compute#acceleratorTypeAggregatedList", # [Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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, acceleratorType)</code>
+  <pre>Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  acceleratorType: string, Name of the accelerator type to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Accelerator Type resource.
+    "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+    "description": "A String", # [Output Only] An optional textual description of the resource.
+    "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+      "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+      "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+      "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+    },
+    "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "name": "A String", # [Output Only] Name of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves a list of accelerator types available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of accelerator types.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # A list of AcceleratorType resources.
+      { # An Accelerator Type resource.
+        "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+        "description": "A String", # [Output Only] An optional textual description of the resource.
+        "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+          "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+          "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+          "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+        },
+        "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+        "name": "A String", # [Output Only] Name of the resource.
+      },
+    ],
+    "kind": "compute#acceleratorTypeList", # [Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<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_alpha.addresses.html b/docs/dyn/compute_alpha.addresses.html
index 6910c09..6013e29 100644
--- a/docs/dyn/compute_alpha.addresses.html
+++ b/docs/dyn/compute_alpha.addresses.html
@@ -81,13 +81,13 @@
   <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>
+  <code><a href="#delete">delete(project, region, address, requestId=None)</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>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,6 +96,9 @@
   <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="#setLabels">setLabels(project, region, resource, body, requestId=None)</a></code></p>
+<p class="firstline">Sets the labels on an Address. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
@@ -110,7 +113,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -151,8 +154,9 @@
               "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
                 "a_key": "A String",
               },
-              "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-              "address": "A String", # The static external IP address represented by this resource.
+              "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+              "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
               "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
@@ -186,13 +190,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, address)</code>
+    <code class="details" id="delete">delete(project, region, address, requestId=None)</code>
   <pre>Deletes the specified address resource.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
   address: string, Name of the address resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -200,7 +205,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -266,8 +271,9 @@
       "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
-      "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-      "address": "A String", # The static external IP address represented by this resource.
+      "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+      "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
@@ -280,7 +286,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates an address resource in the specified project using the data included in the request.
 
 Args:
@@ -299,8 +305,9 @@
     "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
-    "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-    "address": "A String", # The static external IP address represented by this resource.
+    "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
@@ -311,6 +318,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -318,7 +326,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -374,7 +382,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -402,8 +410,9 @@
           "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
-          "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-          "address": "A String", # The static external IP address represented by this resource.
+          "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+          "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
@@ -435,6 +444,76 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setLabels">setLabels(project, region, resource, body, requestId=None)</code>
+  <pre>Sets the labels on an Address. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # The labels to set for this resource.
+      "a_key": "A String",
+    },
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(project, region, resource, body)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 
diff --git a/docs/dyn/compute_alpha.autoscalers.html b/docs/dyn/compute_alpha.autoscalers.html
index 1217b56..b19765c 100644
--- a/docs/dyn/compute_alpha.autoscalers.html
+++ b/docs/dyn/compute_alpha.autoscalers.html
@@ -81,13 +81,13 @@
   <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, autoscaler)</a></code></p>
+  <code><a href="#delete">delete(project, zone, autoscaler, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified autoscaler.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, autoscaler)</a></code></p>
 <p class="firstline">Returns the specified autoscaler resource. Get a list of available autoscalers by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
 <p class="firstline">Creates an autoscaler in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,13 +96,13 @@
   <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, zone, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, zone, autoscaler, body, requestId=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, zone, body, autoscaler=None)</a></code></p>
+  <code><a href="#update">update(project, zone, body, requestId=None, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -116,7 +116,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -228,13 +228,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, autoscaler)</code>
+    <code class="details" id="delete">delete(project, zone, autoscaler, requestId=None)</code>
   <pre>Deletes the specified autoscaler.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, Name of the zone for this request. (required)
   autoscaler: string, Name of the autoscaler to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -242,7 +243,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -358,7 +359,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates an autoscaler in the specified project using the data included in the request.
 
 Args:
@@ -425,6 +426,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -432,7 +434,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -488,7 +490,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -585,7 +587,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, zone, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, zone, autoscaler, body, requestId=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
@@ -653,6 +655,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -660,7 +663,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -733,7 +736,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, zone, body, autoscaler=None)</code>
+    <code class="details" id="update">update(project, zone, body, requestId=None, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request.
 
 Args:
@@ -800,6 +803,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
   autoscaler: string, Name of the autoscaler to update.
 
 Returns:
@@ -808,7 +812,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.backendBuckets.html b/docs/dyn/compute_alpha.backendBuckets.html
index b807d61..d1717d1 100644
--- a/docs/dyn/compute_alpha.backendBuckets.html
+++ b/docs/dyn/compute_alpha.backendBuckets.html
@@ -75,7 +75,7 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.backendBuckets.html">backendBuckets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, backendBucket)</a></code></p>
+  <code><a href="#delete">delete(project, backendBucket, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified BackendBucket resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, backendBucket)</a></code></p>
@@ -84,7 +84,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(project, resource)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a BackendBucket resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -93,7 +93,7 @@
   <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, backendBucket, body)</a></code></p>
+  <code><a href="#patch">patch(project, backendBucket, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified BackendBucket resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(project, resource, body)</a></code></p>
@@ -102,16 +102,17 @@
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, backendBucket, body)</a></code></p>
+  <code><a href="#update">update(project, backendBucket, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified BackendBucket resource with the data included in the request.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, backendBucket)</code>
+    <code class="details" id="delete">delete(project, backendBucket, requestId=None)</code>
   <pre>Deletes the specified BackendBucket resource.
 
 Args:
   project: string, Project ID for this request. (required)
   backendBucket: string, Name of the BackendBucket resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -119,7 +120,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -177,6 +178,12 @@
     { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
       "kind": "compute#backendBucket", # Type of the resource.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "cdnPolicy": { # Message containing Cloud CDN configuration for a backend bucket. # Cloud CDN Coniguration for this BackendBucket.
+        "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
+          "A String",
+        ],
+        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      },
       "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
       "bucketName": "A String", # Cloud Storage bucket name.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -208,16 +215,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -292,7 +303,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a BackendBucket resource in the specified project using the data included in the request.
 
 Args:
@@ -303,6 +314,12 @@
 { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
     "kind": "compute#backendBucket", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend bucket. # Cloud CDN Coniguration for this BackendBucket.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+    },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -311,6 +328,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -318,7 +336,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -373,7 +391,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -394,6 +412,12 @@
       { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
           "kind": "compute#backendBucket", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "cdnPolicy": { # Message containing Cloud CDN configuration for a backend bucket. # Cloud CDN Coniguration for this BackendBucket.
+            "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
+              "A String",
+            ],
+            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+          },
           "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
           "bucketName": "A String", # Cloud Storage bucket name.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -423,18 +447,24 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, backendBucket, body)</code>
+    <code class="details" id="patch">patch(project, backendBucket, body, requestId=None)</code>
   <pre>Updates the specified BackendBucket resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  backendBucket: string, Name of the BackendBucket resource to update. (required)
+  backendBucket: string, Name of the BackendBucket resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
     "kind": "compute#backendBucket", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend bucket. # Cloud CDN Coniguration for this BackendBucket.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+    },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -443,6 +473,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -450,7 +481,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -515,16 +546,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -612,16 +647,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -723,7 +762,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, backendBucket, body)</code>
+    <code class="details" id="update">update(project, backendBucket, body, requestId=None)</code>
   <pre>Updates the specified BackendBucket resource with the data included in the request.
 
 Args:
@@ -735,6 +774,12 @@
 { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
     "kind": "compute#backendBucket", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend bucket. # Cloud CDN Coniguration for this BackendBucket.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+    },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -743,6 +788,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -750,7 +796,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.backendServices.html b/docs/dyn/compute_alpha.backendServices.html
index 10df0d3..259859a 100644
--- a/docs/dyn/compute_alpha.backendServices.html
+++ b/docs/dyn/compute_alpha.backendServices.html
@@ -81,7 +81,7 @@
   <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, backendService)</a></code></p>
+  <code><a href="#delete">delete(project, backendService, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified BackendService resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, backendService)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#getHealth">getHealth(project, backendService, body)</a></code></p>
 <p class="firstline">Gets the most recent health check results for this BackendService.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a backend service. Read  Restrictions and Guidelines for more information.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -99,13 +99,13 @@
   <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, backendService, body)</a></code></p>
-<p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
+  <code><a href="#patch">patch(project, backendService, body, requestId=None)</a></code></p>
+<p class="firstline">Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, backendService, body)</a></code></p>
+  <code><a href="#update">update(project, backendService, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -119,7 +119,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -151,17 +151,12 @@
         },
         "backendServices": [ # List of BackendServices contained in this scope.
           { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-              "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-                "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-                  "A String",
-                ],
-              },
               "connectionDraining": { # Message containing connection draining configuration.
                 "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
               },
               "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
                   #
-                  # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+                  # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
                   #
                   # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
               "loadBalancingScheme": "A String",
@@ -180,6 +175,10 @@
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+                "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+                  "A String",
+                ],
+                "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
                 "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
                   "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
                   "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -233,7 +232,7 @@
                       # This cannot be used for internal load balancing.
                 },
               ],
-              "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+              "iap": { # Identity-Aware Proxy
                 "oauth2ClientId": "A String",
                 "enabled": True or False,
                 "oauth2ClientSecret": "A String",
@@ -243,6 +242,7 @@
               "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
                 "A String",
               ],
+              "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
               "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
               "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
                   #
@@ -277,12 +277,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, backendService)</code>
+    <code class="details" id="delete">delete(project, backendService, requestId=None)</code>
   <pre>Deletes the specified BackendService resource.
 
 Args:
   project: string, Project ID for this request. (required)
   backendService: string, Name of the BackendService resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -290,7 +291,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -346,17 +347,12 @@
   An object of the form:
 
     { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-      "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-        "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-          "A String",
-        ],
-      },
       "connectionDraining": { # Message containing connection draining configuration.
         "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
       },
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "loadBalancingScheme": "A String",
@@ -375,6 +371,10 @@
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+          "A String",
+        ],
+        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
           "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
           "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -428,7 +428,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
-      "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+      "iap": { # Identity-Aware Proxy
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
@@ -438,6 +438,7 @@
       "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
         "A String",
       ],
+      "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -482,7 +483,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a backend service. Read  Restrictions and Guidelines for more information.
 
 Args:
@@ -491,17 +492,12 @@
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -520,6 +516,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -573,7 +573,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -583,6 +583,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -594,6 +595,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -601,7 +603,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -656,7 +658,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -672,20 +674,15 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-          "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-            "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-              "A String",
-            ],
-          },
           "connectionDraining": { # Message containing connection draining configuration.
             "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
           },
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "loadBalancingScheme": "A String",
@@ -704,6 +701,10 @@
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+              "A String",
+            ],
+            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
             "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
               "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
               "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -757,7 +758,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
-          "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+          "iap": { # Identity-Aware Proxy
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
@@ -767,6 +768,7 @@
           "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
             "A String",
           ],
+          "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -799,27 +801,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, backendService, body)</code>
-  <pre>Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
+    <code class="details" id="patch">patch(project, backendService, body, requestId=None)</code>
+  <pre>Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -838,6 +835,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -891,7 +892,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -901,6 +902,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -912,6 +914,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -919,7 +922,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -991,7 +994,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, backendService, body)</code>
+    <code class="details" id="update">update(project, backendService, body, requestId=None)</code>
   <pre>Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.
 
 Args:
@@ -1001,17 +1004,12 @@
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -1030,6 +1028,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -1083,7 +1085,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -1093,6 +1095,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -1104,6 +1107,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1111,7 +1115,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.commitments.html b/docs/dyn/compute_alpha.commitments.html
index ed994d7..ab657a8 100644
--- a/docs/dyn/compute_alpha.commitments.html
+++ b/docs/dyn/compute_alpha.commitments.html
@@ -84,10 +84,7 @@
   <code><a href="#get">get(project, zone, commitment)</a></code></p>
 <p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(project, zone, resource)</a></code></p>
-<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
 <p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,9 +93,6 @@
   <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="#setIamPolicy">setIamPolicy(project, zone, resource, body)</a></code></p>
-<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
-<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
@@ -113,7 +107,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -150,10 +144,11 @@
               "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
               "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
               "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+              "region": "A String", # [Output Only] URL of the region where this commitment may be used.
               "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
               "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+              "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
@@ -205,10 +200,11 @@
       "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
       "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
       "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+      "region": "A String", # [Output Only] URL of the region where this commitment may be used.
       "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
       "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+      "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
@@ -222,113 +218,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(project, zone, resource)</code>
-  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, The name of the zone for this request. (required)
-  resource: string, Name of the resource for this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
-      #
-      #
-      #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
-      #
-      # **Example**
-      #
-      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
-      #
-      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
-          "A String",
-        ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
-              "A String",
-            ],
-            "logType": "A String", # The log type that this config enables.
-          },
-        ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
-      },
-    ],
-    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
-          { # Specifies what kind of log the caller must write
-            "counter": { # Options for counters # Counter options.
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-          },
-        ],
-        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-          "A String",
-        ],
-        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-        "conditions": [ # Additional restrictions that must be met
-          { # A condition to be met.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "value": "A String", # DEPRECATED. Use 'values' instead.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
-            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-              "A String",
-            ],
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "description": "A String", # Human-readable description of the rule.
-      },
-    ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates an commitment in the specified project using the data included in the request.
 
 Args:
@@ -343,10 +233,11 @@
     "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
     "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+    "region": "A String", # [Output Only] URL of the region where this commitment may be used.
     "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
     "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+    "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
@@ -358,6 +249,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -365,7 +257,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -421,7 +313,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -445,10 +337,11 @@
           "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
           "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
           "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+          "region": "A String", # [Output Only] URL of the region where this commitment may be used.
           "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
           "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+          "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
@@ -481,208 +374,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(project, zone, resource, body)</code>
-  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, The name of the zone for this request. (required)
-  resource: string, Name of the resource for this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
-    # 
-    # 
-    # 
-    # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
-    # 
-    # **Example**
-    # 
-    # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
-    # 
-    # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
-        "A String",
-      ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
-            "A String",
-          ],
-          "logType": "A String", # The log type that this config enables.
-        },
-      ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
-    },
-  ],
-  "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
-    { # A rule to be applied in a Policy.
-      "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
-        { # Specifies what kind of log the caller must write
-          "counter": { # Options for counters # Counter options.
-            "field": "A String", # The field value to attribute.
-            "metric": "A String", # The metric to update.
-          },
-        },
-      ],
-      "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-        "A String",
-      ],
-      "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-        "A String",
-      ],
-      "action": "A String", # Required
-      "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-        "A String",
-      ],
-      "conditions": [ # Additional restrictions that must be met
-        { # A condition to be met.
-          "iam": "A String", # Trusted attributes supplied by the IAM system.
-          "svc": "A String", # Trusted attributes discharged by the service.
-          "value": "A String", # DEPRECATED. Use 'values' instead.
-          "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
-          "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-            "A String",
-          ],
-          "op": "A String", # An operator to apply the subject with.
-        },
-      ],
-      "description": "A String", # Human-readable description of the rule.
-    },
-  ],
-  "version": 42, # Version of the `Policy`. The default version is 0.
-  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
-      # 
-      # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
-  "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
-    { # Associates `members` with a `role`.
-      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
-          #
-          # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
-          #
-          # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
-          #
-          # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
-          #
-          #
-          #
-          # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
-          #
-          # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
-          #
-          # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
-        "A String",
-      ],
-    },
-  ],
-  "iamOwned": True or False,
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
-      #
-      #
-      #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
-      #
-      # **Example**
-      #
-      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
-      #
-      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
-          "A String",
-        ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
-              "A String",
-            ],
-            "logType": "A String", # The log type that this config enables.
-          },
-        ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
-      },
-    ],
-    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
-          { # Specifies what kind of log the caller must write
-            "counter": { # Options for counters # Counter options.
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-          },
-        ],
-        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-          "A String",
-        ],
-        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-        "conditions": [ # Additional restrictions that must be met
-          { # A condition to be met.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "value": "A String", # DEPRECATED. Use 'values' instead.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
-            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-              "A String",
-            ],
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "description": "A String", # Human-readable description of the rule.
-      },
-    ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
-  }</pre>
-</div>
-
-<div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(project, zone, resource, body)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 
diff --git a/docs/dyn/compute_alpha.diskTypes.html b/docs/dyn/compute_alpha.diskTypes.html
index 72b81f1..d6ef13f 100644
--- a/docs/dyn/compute_alpha.diskTypes.html
+++ b/docs/dyn/compute_alpha.diskTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -217,7 +217,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.disks.html b/docs/dyn/compute_alpha.disks.html
index 19c8318..c75b0a6 100644
--- a/docs/dyn/compute_alpha.disks.html
+++ b/docs/dyn/compute_alpha.disks.html
@@ -81,16 +81,19 @@
   <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, guestFlush=None)</a></code></p>
+  <code><a href="#createSnapshot">createSnapshot(project, zone, disk, body, guestFlush=None, requestId=None)</a></code></p>
 <p class="firstline">Creates a snapshot of a specified persistent disk.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, zone, disk)</a></code></p>
+  <code><a href="#delete">delete(project, zone, disk, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, disk)</a></code></p>
 <p class="firstline">Returns a specified persistent disk. Get a list of available persistent disks by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body, sourceImage=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(project, zone, resource)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, zone, body, requestId=None, sourceImage=None)</a></code></p>
 <p class="firstline">Creates a persistent disk in the specified project using the data in the request. You can create a disk with a sourceImage, a sourceSnapshot, or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -99,10 +102,13 @@
   <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="#resize">resize(project, zone, disk, body)</a></code></p>
+  <code><a href="#resize">resize(project, zone, disk, body, requestId=None)</a></code></p>
 <p class="firstline">Resizes the specified persistent disk.</p>
 <p class="toc_element">
-  <code><a href="#setLabels">setLabels(project, zone, resource, body)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(project, zone, resource, body)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
+<p class="toc_element">
+  <code><a href="#setLabels">setLabels(project, zone, resource, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the labels on a disk. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
@@ -119,7 +125,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -135,7 +141,7 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. Acceptable values are 0 to 500, inclusive. (Default: 500)
     "items": { # [Output Only] A map of scoped disk lists.
       "a_key": { # [Output Only] Name of the scope containing this set of disks.
         "disks": [ # [Output Only] List of disks contained in this scope.
@@ -150,7 +156,7 @@
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
               },
-              "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+              "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
                 "a_key": "A String",
               },
               "licenses": [ # Any applicable publicly visible licenses.
@@ -267,7 +273,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="createSnapshot">createSnapshot(project, zone, disk, body, guestFlush=None)</code>
+    <code class="details" id="createSnapshot">createSnapshot(project, zone, disk, body, guestFlush=None, requestId=None)</code>
   <pre>Creates a snapshot of a specified persistent disk.
 
 Args:
@@ -313,7 +319,7 @@
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
         # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
       "a_key": "A String",
     },
     "sourceDiskId": "A String", # [Output Only] 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.
@@ -328,6 +334,7 @@
   }
 
   guestFlush: boolean, A parameter
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -335,7 +342,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -380,13 +387,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, disk)</code>
+    <code class="details" id="delete">delete(project, zone, disk, requestId=None)</code>
   <pre>Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   disk: string, Name of the persistent disk to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -394,7 +402,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -461,7 +469,7 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
-      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "licenses": [ # Any applicable publicly visible licenses.
@@ -546,7 +554,117 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body, sourceImage=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(project, zone, resource)</code>
+  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, zone, body, requestId=None, sourceImage=None)</code>
   <pre>Creates a persistent disk in the specified project using the data in the request. You can create a disk with a sourceImage, a sourceSnapshot, or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.
 
 Args:
@@ -566,7 +684,7 @@
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
     },
-    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "licenses": [ # Any applicable publicly visible licenses.
@@ -649,6 +767,7 @@
         # global/images/family/my-private-family
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
   sourceImage: string, Optional. Source image to restore onto a disk.
 
 Returns:
@@ -657,7 +776,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -713,7 +832,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -729,8 +848,8 @@
   An object of the form:
 
     { # A list of Disk resources.
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": [ # [Output Only] A list of persistent disks.
+    "nextPageToken": "A String", # This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Disk resources.
       { # A Disk resource.
           "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
@@ -742,7 +861,7 @@
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
           },
-          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "licenses": [ # Any applicable publicly visible licenses.
@@ -826,7 +945,7 @@
         },
     ],
     "kind": "compute#diskList", # [Output Only] Type of resource. Always compute#diskList for lists of disks.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
   }</pre>
 </div>
@@ -846,7 +965,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="resize">resize(project, zone, disk, body)</code>
+    <code class="details" id="resize">resize(project, zone, disk, body, requestId=None)</code>
   <pre>Resizes the specified persistent disk.
 
 Args:
@@ -860,6 +979,7 @@
     "sizeGb": "A String", # The new size of the persistent disk, which is specified in GB.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -867,7 +987,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -912,7 +1032,217 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setLabels">setLabels(project, zone, resource, body)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(project, zone, resource, body)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+    # 
+    # 
+    # 
+    # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+    # 
+    # **Example**
+    # 
+    # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+    # 
+    # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
+        "A String",
+      ],
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+    { # A rule to be applied in a Policy.
+      "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+        { # Specifies what kind of log the caller must write
+          "counter": { # Options for counters # Counter options.
+            "field": "A String", # The field value to attribute.
+            "metric": "A String", # The metric to update.
+          },
+        },
+      ],
+      "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+        "A String",
+      ],
+      "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+        "A String",
+      ],
+      "action": "A String", # Required
+      "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+        "A String",
+      ],
+      "conditions": [ # Additional restrictions that must be met
+        { # A condition to be met.
+          "iam": "A String", # Trusted attributes supplied by the IAM system.
+          "svc": "A String", # Trusted attributes discharged by the service.
+          "value": "A String", # DEPRECATED. Use 'values' instead.
+          "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+          "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+            "A String",
+          ],
+          "op": "A String", # An operator to apply the subject with.
+        },
+      ],
+      "description": "A String", # Human-readable description of the rule.
+    },
+  ],
+  "version": 42, # Version of the `Policy`. The default version is 0.
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+      # 
+      # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+  "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Associates `members` with a `role`.
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+          #
+          # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+          #
+          # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+          #
+          # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+          #
+          #
+          #
+          # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+          #
+          # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+          #
+          # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+    },
+  ],
+  "iamOwned": True or False,
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setLabels">setLabels(project, zone, resource, body, requestId=None)</code>
   <pre>Sets the labels on a disk. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
 Args:
@@ -929,6 +1259,7 @@
     },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -936,7 +1267,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.firewalls.html b/docs/dyn/compute_alpha.firewalls.html
index b6d73f5..dd42670 100644
--- a/docs/dyn/compute_alpha.firewalls.html
+++ b/docs/dyn/compute_alpha.firewalls.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.firewalls.html">firewalls</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, firewall)</a></code></p>
+  <code><a href="#delete">delete(project, firewall, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified firewall.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, firewall)</a></code></p>
 <p class="firstline">Returns the specified firewall.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a firewall rule in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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>
+  <code><a href="#patch">patch(project, firewall, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified firewall rule with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, firewall, body)</a></code></p>
+  <code><a href="#update">update(project, firewall, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified firewall rule with the data included in the request.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, firewall)</code>
+    <code class="details" id="delete">delete(project, firewall, requestId=None)</code>
   <pre>Deletes the specified firewall.
 
 Args:
   project: string, Project ID for this request. (required)
   firewall: string, Name of the firewall rule to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -170,8 +171,11 @@
 
     { # Represents a Firewall resource.
       "direction": "A String", # Direction of traffic to which this firewall applies; default is INGRESS. Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.
+      "sourceServiceAccounts": [ # If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.
+        "A String",
+      ],
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format.
+      "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Only IPv4 is supported.
         "A String",
       ],
       "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
@@ -188,7 +192,7 @@
         },
       ],
       "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
-      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
         "A String",
       ],
       "priority": 42, # Priority for this rule. This is an integer between 0 and 65535, both inclusive. When not specified, the value assumed is 1000. Relative priorities determine precedence of conflicting rules. Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority.
@@ -198,6 +202,9 @@
           # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
           # - projects/myproject/global/networks/my-network
           # - global/networks/default
+      "targetServiceAccounts": [ # A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.
+        "A String",
+      ],
       "targetTags": [ # A list of instance tags indicating sets of instances located in the network that 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",
       ],
@@ -219,7 +226,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a firewall rule in the specified project using the data included in the request.
 
 Args:
@@ -229,8 +236,11 @@
 
 { # Represents a Firewall resource.
     "direction": "A String", # Direction of traffic to which this firewall applies; default is INGRESS. Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.
+    "sourceServiceAccounts": [ # If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.
+      "A String",
+    ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format.
+    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Only IPv4 is supported.
       "A String",
     ],
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
@@ -247,7 +257,7 @@
       },
     ],
     "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "priority": 42, # Priority for this rule. This is an integer between 0 and 65535, both inclusive. When not specified, the value assumed is 1000. Relative priorities determine precedence of conflicting rules. Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority.
@@ -257,6 +267,9 @@
         # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
         # - projects/myproject/global/networks/my-network
         # - global/networks/default
+    "targetServiceAccounts": [ # A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.
+      "A String",
+    ],
     "targetTags": [ # A list of instance tags indicating sets of instances located in the network that 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",
     ],
@@ -276,6 +289,7 @@
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -283,7 +297,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -338,7 +352,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -358,8 +372,11 @@
     "items": [ # [Output Only] A list of Firewall resources.
       { # Represents a Firewall resource.
           "direction": "A String", # Direction of traffic to which this firewall applies; default is INGRESS. Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.
+          "sourceServiceAccounts": [ # If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.
+            "A String",
+          ],
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format.
+          "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Only IPv4 is supported.
             "A String",
           ],
           "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
@@ -376,7 +393,7 @@
             },
           ],
           "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
-          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
             "A String",
           ],
           "priority": 42, # Priority for this rule. This is an integer between 0 and 65535, both inclusive. When not specified, the value assumed is 1000. Relative priorities determine precedence of conflicting rules. Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority.
@@ -386,6 +403,9 @@
               # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
               # - projects/myproject/global/networks/my-network
               # - global/networks/default
+          "targetServiceAccounts": [ # A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.
+            "A String",
+          ],
           "targetTags": [ # A list of instance tags indicating sets of instances located in the network that 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",
           ],
@@ -426,19 +446,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, firewall, body)</code>
+    <code class="details" id="patch">patch(project, firewall, body, requestId=None)</code>
   <pre>Updates the specified firewall rule with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  firewall: string, Name of the firewall rule to update. (required)
+  firewall: string, Name of the firewall rule to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Represents a Firewall resource.
     "direction": "A String", # Direction of traffic to which this firewall applies; default is INGRESS. Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.
+    "sourceServiceAccounts": [ # If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.
+      "A String",
+    ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format.
+    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Only IPv4 is supported.
       "A String",
     ],
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
@@ -455,7 +478,7 @@
       },
     ],
     "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "priority": 42, # Priority for this rule. This is an integer between 0 and 65535, both inclusive. When not specified, the value assumed is 1000. Relative priorities determine precedence of conflicting rules. Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority.
@@ -465,6 +488,9 @@
         # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
         # - projects/myproject/global/networks/my-network
         # - global/networks/default
+    "targetServiceAccounts": [ # A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.
+      "A String",
+    ],
     "targetTags": [ # A list of instance tags indicating sets of instances located in the network that 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",
     ],
@@ -484,6 +510,7 @@
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -491,7 +518,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -563,7 +590,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, firewall, body)</code>
+    <code class="details" id="update">update(project, firewall, body, requestId=None)</code>
   <pre>Updates the specified firewall rule with the data included in the request.
 
 Args:
@@ -574,8 +601,11 @@
 
 { # Represents a Firewall resource.
     "direction": "A String", # Direction of traffic to which this firewall applies; default is INGRESS. Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.
+    "sourceServiceAccounts": [ # If source service accounts are specified, the firewall will apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both properties for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.
+      "A String",
+    ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format.
+    "destinationRanges": [ # If destination ranges are specified, the firewall will apply only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Only IPv4 is supported.
       "A String",
     ],
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
@@ -592,7 +622,7 @@
       },
     ],
     "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "priority": 42, # Priority for this rule. This is an integer between 0 and 65535, both inclusive. When not specified, the value assumed is 1000. Relative priorities determine precedence of conflicting rules. Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority.
@@ -602,6 +632,9 @@
         # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
         # - projects/myproject/global/networks/my-network
         # - global/networks/default
+    "targetServiceAccounts": [ # A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.
+      "A String",
+    ],
     "targetTags": [ # A list of instance tags indicating sets of instances located in the network that 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",
     ],
@@ -621,6 +654,7 @@
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -628,7 +662,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.forwardingRules.html b/docs/dyn/compute_alpha.forwardingRules.html
index 9a1a574..c7049f8 100644
--- a/docs/dyn/compute_alpha.forwardingRules.html
+++ b/docs/dyn/compute_alpha.forwardingRules.html
@@ -81,13 +81,13 @@
   <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>
+  <code><a href="#delete">delete(project, region, forwardingRule, requestId=None)</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>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,7 +96,10 @@
   <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>
+  <code><a href="#setLabels">setLabels(project, region, resource, body, requestId=None)</a></code></p>
+<p class="firstline">Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
+  <code><a href="#setTarget">setTarget(project, region, forwardingRule, body, requestId=None)</a></code></p>
 <p class="firstline">Changes target URL for forwarding rule. The new target should be of the same type as the old target.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
@@ -113,7 +116,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -134,23 +137,54 @@
       "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 virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-              "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-                  #
-                  # This field is only used for internal load balancing.
-              "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-              "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-                  #
-                  # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-                  #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-              "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-                  #
-                  # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
               "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
                 "a_key": "A String",
               },
+              "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+              "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+                  #
+                  # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+              "network": "A String", # This field is not used for external load balancing.
+                  #
+                  # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+              "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+                  #
+                  # This field is not used for internal load balancing.
+              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+                  #
+                  # This field is only used for internal load balancing.
+              "backendService": "A String", # This field is not used for external load balancing.
+                  #
+                  # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+              "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+                  #
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  #
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+                  #
+                  # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+              "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+                  #
+                  # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+                  #
+                  # This field is only used for internal load balancing.
+              "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+                  #
+                  # This field is not used for internal load balancing.
+              "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+              "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+              "subnetwork": "A String", # This field is not used for external load balancing.
+                  #
+                  # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+                  #
+                  # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
               "ports": [ # This field is not used for external load balancing.
                   #
                   # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -158,37 +192,7 @@
                   # You may specify a maximum of up to 5 ports.
                 "A String",
               ],
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-                  #
-                  # This field is not used for internal load balancing.
-              "network": "A String", # This field is not used for external load balancing.
-                  #
-                  # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-              "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-                  #
-                  # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-                  #
-                  # This field is only used for internal load balancing.
-              "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-                  #
-                  # This field is not used for internal load balancing.
-              "backendService": "A String", # This field is not used for external load balancing.
-                  #
-                  # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-              "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-                  #
-                  # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-              "subnetwork": "A String", # This field is not used for external load balancing.
-                  #
-                  # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-                  #
-                  # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-              "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             },
         ],
         "warning": { # Informational warning which replaces the list of forwarding rules when the list is empty.
@@ -225,13 +229,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, forwardingRule)</code>
+    <code class="details" id="delete">delete(project, region, forwardingRule, requestId=None)</code>
   <pre>Deletes the specified ForwardingRule resource.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   forwardingRule: string, Name of the ForwardingRule resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -239,7 +244,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -296,23 +301,54 @@
   An object of the form:
 
     { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-      "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-          #
-          # This field is only used for internal load balancing.
-      "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-      "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-          #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-          #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-          #
-          # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
       "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
+      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+          #
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "network": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+      "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # This field is not used for internal load balancing.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+          #
+          # This field is only used for internal load balancing.
+      "backendService": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+      "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+          #
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          #
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+          #
+          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          #
+          # This field is only used for internal load balancing.
+      "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          #
+          # This field is not used for internal load balancing.
+      "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+      "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+      "subnetwork": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+          #
+          # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
       "ports": [ # This field is not used for external load balancing.
           #
           # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -320,42 +356,12 @@
           # You may specify a maximum of up to 5 ports.
         "A String",
       ],
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-          #
-          # This field is not used for internal load balancing.
-      "network": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-          #
-          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-          #
-          # This field is only used for internal load balancing.
-      "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-          #
-          # This field is not used for internal load balancing.
-      "backendService": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-      "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-          #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-      "subnetwork": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-          #
-          # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-      "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a ForwardingRule resource in the specified project and region using the data included in the request.
 
 Args:
@@ -365,23 +371,54 @@
     The object takes the form of:
 
 { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-        # 
-        # This field is only used for internal load balancing.
-    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-        # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-        # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-        # 
-        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
     "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+        # 
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "network": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+    "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # This field is not used for internal load balancing.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "backendService": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+        # 
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # 
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
+    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+        # 
+        # This field is not used for internal load balancing.
+    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "subnetwork": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+        # 
+        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
     "ports": [ # This field is not used for external load balancing.
         # 
         # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -389,39 +426,10 @@
         # You may specify a maximum of up to 5 ports.
       "A String",
     ],
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-        # 
-        # This field is not used for internal load balancing.
-    "network": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-        # 
-        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-        # 
-        # This field is only used for internal load balancing.
-    "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-        # 
-        # This field is not used for internal load balancing.
-    "backendService": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-        # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-    "subnetwork": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-        # 
-        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -429,7 +437,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -485,7 +493,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -504,23 +512,54 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
       { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-          "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-              #
-              # This field is only used for internal load balancing.
-          "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-          "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-              #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-              #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-              #
-              # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
           "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
+          "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+              #
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "network": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+          "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # This field is not used for internal load balancing.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+              #
+              # This field is only used for internal load balancing.
+          "backendService": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+          "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+              #
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              #
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+              #
+              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              #
+              # This field is only used for internal load balancing.
+          "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              #
+              # This field is not used for internal load balancing.
+          "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+          "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+          "subnetwork": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+              #
+              # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
           "ports": [ # This field is not used for external load balancing.
               #
               # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -528,37 +567,7 @@
               # You may specify a maximum of up to 5 ports.
             "A String",
           ],
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-              #
-              # This field is not used for internal load balancing.
-          "network": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-              #
-              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-              #
-              # This field is only used for internal load balancing.
-          "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-              #
-              # This field is not used for internal load balancing.
-          "backendService": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-          "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-              #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-          "subnetwork": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-              #
-              # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-          "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
     "kind": "compute#forwardingRuleList", # Type of resource.
@@ -582,7 +591,77 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setTarget">setTarget(project, region, forwardingRule, body)</code>
+    <code class="details" id="setLabels">setLabels(project, region, resource, body, requestId=None)</code>
+  <pre>Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # The labels to set for this resource.
+      "a_key": "A String",
+    },
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setTarget">setTarget(project, region, forwardingRule, body, requestId=None)</code>
   <pre>Changes target URL for forwarding rule. The new target should be of the same type as the old target.
 
 Args:
@@ -596,6 +675,7 @@
     "target": "A String",
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -603,7 +683,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.globalAddresses.html b/docs/dyn/compute_alpha.globalAddresses.html
index f0fb837..ea840dc 100644
--- a/docs/dyn/compute_alpha.globalAddresses.html
+++ b/docs/dyn/compute_alpha.globalAddresses.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.globalAddresses.html">globalAddresses</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, address)</a></code></p>
+  <code><a href="#delete">delete(project, address, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified address resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, address)</a></code></p>
 <p class="firstline">Returns the specified address resource. Get a list of available addresses by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,16 +90,20 @@
   <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="#setLabels">setLabels(project, resource, body)</a></code></p>
+<p class="firstline">Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, address)</code>
+    <code class="details" id="delete">delete(project, address, requestId=None)</code>
   <pre>Deletes the specified address resource.
 
 Args:
   project: string, Project ID for this request. (required)
   address: string, Name of the address resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -107,7 +111,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -172,8 +176,9 @@
       "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
-      "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-      "address": "A String", # The static external IP address represented by this resource.
+      "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+      "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
@@ -186,7 +191,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates an address resource in the specified project using the data included in the request.
 
 Args:
@@ -204,8 +209,9 @@
     "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
-    "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-    "address": "A String", # The static external IP address represented by this resource.
+    "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
@@ -216,6 +222,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -223,7 +230,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -278,7 +285,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -306,8 +313,9 @@
           "labels": { # Labels to apply to this Address resource. These can be later modified by the setLabels method. Each label key/value must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
-          "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-          "address": "A String", # The static external IP address represented by this resource.
+          "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+          "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
@@ -339,6 +347,74 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setLabels">setLabels(project, resource, body)</code>
+  <pre>Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 
diff --git a/docs/dyn/compute_alpha.globalForwardingRules.html b/docs/dyn/compute_alpha.globalForwardingRules.html
index 5d3254d..35cc366 100644
--- a/docs/dyn/compute_alpha.globalForwardingRules.html
+++ b/docs/dyn/compute_alpha.globalForwardingRules.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.globalForwardingRules.html">globalForwardingRules</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, forwardingRule)</a></code></p>
+  <code><a href="#delete">delete(project, forwardingRule, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified ForwardingRule resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, forwardingRule)</a></code></p>
 <p class="firstline">Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,19 +90,23 @@
   <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, forwardingRule, body)</a></code></p>
+  <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
+<p class="firstline">Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
+  <code><a href="#setTarget">setTarget(project, forwardingRule, body, requestId=None)</a></code></p>
 <p class="firstline">Changes target URL for forwarding rule. The new target should be of the same type as the old target.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, forwardingRule)</code>
+    <code class="details" id="delete">delete(project, forwardingRule, requestId=None)</code>
   <pre>Deletes the specified ForwardingRule resource.
 
 Args:
   project: string, Project ID for this request. (required)
   forwardingRule: string, Name of the ForwardingRule resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -110,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -166,23 +170,54 @@
   An object of the form:
 
     { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-      "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-          #
-          # This field is only used for internal load balancing.
-      "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-      "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-          #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-          #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-          #
-          # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
       "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
+      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+          #
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "network": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+      "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # This field is not used for internal load balancing.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+          #
+          # This field is only used for internal load balancing.
+      "backendService": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+      "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+          #
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          #
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+          #
+          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          #
+          # This field is only used for internal load balancing.
+      "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          #
+          # This field is not used for internal load balancing.
+      "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+      "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+      "subnetwork": "A String", # This field is not used for external load balancing.
+          #
+          # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+          #
+          # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
       "ports": [ # This field is not used for external load balancing.
           #
           # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -190,42 +225,12 @@
           # You may specify a maximum of up to 5 ports.
         "A String",
       ],
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-          #
-          # This field is not used for internal load balancing.
-      "network": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-          #
-          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-          #
-          # This field is only used for internal load balancing.
-      "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-          #
-          # This field is not used for internal load balancing.
-      "backendService": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-      "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-          #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-      "subnetwork": "A String", # This field is not used for external load balancing.
-          #
-          # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-          #
-          # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-      "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a ForwardingRule resource in the specified project and region using the data included in the request.
 
 Args:
@@ -234,23 +239,54 @@
     The object takes the form of:
 
 { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-        # 
-        # This field is only used for internal load balancing.
-    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-        # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-        # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-        # 
-        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
     "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+        # 
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "network": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+    "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # This field is not used for internal load balancing.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "backendService": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+        # 
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # 
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
+    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+        # 
+        # This field is not used for internal load balancing.
+    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "subnetwork": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+        # 
+        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
     "ports": [ # This field is not used for external load balancing.
         # 
         # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -258,39 +294,10 @@
         # You may specify a maximum of up to 5 ports.
       "A String",
     ],
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-        # 
-        # This field is not used for internal load balancing.
-    "network": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-        # 
-        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-        # 
-        # This field is only used for internal load balancing.
-    "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-        # 
-        # This field is not used for internal load balancing.
-    "backendService": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-        # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-    "subnetwork": "A String", # This field is not used for external load balancing.
-        # 
-        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-        # 
-        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -298,7 +305,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -353,7 +360,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -372,23 +379,54 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
       { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
-          "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
-              #
-              # This field is only used for internal load balancing.
-          "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-          "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
-              #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
-              #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
-          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-              #
-              # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
           "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
+          "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+              #
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "network": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+          "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # This field is not used for internal load balancing.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+              #
+              # This field is only used for internal load balancing.
+          "backendService": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+          "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+              #
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              #
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+              #
+              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              #
+              # This field is only used for internal load balancing.
+          "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              #
+              # This field is not used for internal load balancing.
+          "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+          "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+          "subnetwork": "A String", # This field is not used for external load balancing.
+              #
+              # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+              #
+              # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
           "ports": [ # This field is not used for external load balancing.
               #
               # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
@@ -396,37 +434,7 @@
               # You may specify a maximum of up to 5 ports.
             "A String",
           ],
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
-              #
-              # This field is not used for internal load balancing.
-          "network": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
-              #
-              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-              #
-              # This field is only used for internal load balancing.
-          "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
-              #
-              # This field is not used for internal load balancing.
-          "backendService": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
-          "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
-              #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
-          "subnetwork": "A String", # This field is not used for external load balancing.
-              #
-              # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
-              #
-              # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-          "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
     "kind": "compute#forwardingRuleList", # Type of resource.
@@ -450,7 +458,75 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setTarget">setTarget(project, forwardingRule, body)</code>
+    <code class="details" id="setLabels">setLabels(project, resource, body)</code>
+  <pre>Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setTarget">setTarget(project, forwardingRule, body, requestId=None)</code>
   <pre>Changes target URL for forwarding rule. The new target should be of the same type as the old target.
 
 Args:
@@ -463,6 +539,7 @@
     "target": "A String",
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -470,7 +547,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.globalOperations.html b/docs/dyn/compute_alpha.globalOperations.html
index 093b01e..8b7045a 100644
--- a/docs/dyn/compute_alpha.globalOperations.html
+++ b/docs/dyn/compute_alpha.globalOperations.html
@@ -104,7 +104,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -127,7 +127,7 @@
           { # An Operation resource, used to manage asynchronous API requests.
             "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
             "clientOperationId": "A String", # [Output Only] Reserved for future use.
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
             "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
             "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -227,7 +227,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -282,7 +282,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -303,7 +303,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.healthChecks.html b/docs/dyn/compute_alpha.healthChecks.html
index 708bd9c..c075dc5 100644
--- a/docs/dyn/compute_alpha.healthChecks.html
+++ b/docs/dyn/compute_alpha.healthChecks.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.healthChecks.html">healthChecks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, healthCheck)</a></code></p>
+  <code><a href="#delete">delete(project, healthCheck, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified HealthCheck resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, healthCheck)</a></code></p>
 <p class="firstline">Returns the specified HealthCheck resource. Get a list of available health checks by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a HealthCheck resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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, healthCheck, body)</a></code></p>
+  <code><a href="#patch">patch(project, healthCheck, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a HealthCheck 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="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, healthCheck, body)</a></code></p>
+  <code><a href="#update">update(project, healthCheck, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a HealthCheck 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, healthCheck)</code>
+    <code class="details" id="delete">delete(project, healthCheck, requestId=None)</code>
   <pre>Deletes the specified HealthCheck resource.
 
 Args:
   project: string, Project ID for this request. (required)
   healthCheck: string, Name of the HealthCheck resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -173,7 +174,7 @@
       "udpHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-        "port": 42, # The UDP port number for the health check request.
+        "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
       },
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -184,13 +185,13 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "httpHealthCheck": {
         "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -198,7 +199,7 @@
       "httpsHealthCheck": {
         "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -207,7 +208,7 @@
       "http2HealthCheck": {
         "requestPath": "A String", # The request path of the HTTP/2 health check request. The default value is /.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "host": "A String", # The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -217,7 +218,7 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -228,7 +229,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a HealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -241,7 +242,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -252,13 +253,13 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -266,7 +267,7 @@
     "httpsHealthCheck": {
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -275,7 +276,7 @@
     "http2HealthCheck": {
       "requestPath": "A String", # The request path of the HTTP/2 health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -285,7 +286,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -294,6 +295,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -301,7 +303,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -356,7 +358,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -379,7 +381,7 @@
           "udpHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-            "port": 42, # The UDP port number for the health check request.
+            "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
           },
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -390,13 +392,13 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "httpHealthCheck": {
             "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -404,7 +406,7 @@
           "httpsHealthCheck": {
             "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -413,7 +415,7 @@
           "http2HealthCheck": {
             "requestPath": "A String", # The request path of the HTTP/2 health check request. The default value is /.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "host": "A String", # The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -423,7 +425,7 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -453,12 +455,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, healthCheck, body)</code>
+    <code class="details" id="patch">patch(project, healthCheck, body, requestId=None)</code>
   <pre>Updates a HealthCheck resource in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  healthCheck: string, Name of the HealthCheck resource to update. (required)
+  healthCheck: string, Name of the HealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -467,7 +469,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -478,13 +480,13 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -492,7 +494,7 @@
     "httpsHealthCheck": {
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -501,7 +503,7 @@
     "http2HealthCheck": {
       "requestPath": "A String", # The request path of the HTTP/2 health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -511,7 +513,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -520,6 +522,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -527,7 +530,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -599,7 +602,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, healthCheck, body)</code>
+    <code class="details" id="update">update(project, healthCheck, body, requestId=None)</code>
   <pre>Updates a HealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -613,7 +616,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -624,13 +627,13 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -638,7 +641,7 @@
     "httpsHealthCheck": {
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -647,7 +650,7 @@
     "http2HealthCheck": {
       "requestPath": "A String", # The request path of the HTTP/2 health check request. The default value is /.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "host": "A String", # The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "response": "A String", # The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.
@@ -657,7 +660,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -666,6 +669,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -673,7 +677,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.hostTypes.html b/docs/dyn/compute_alpha.hostTypes.html
new file mode 100644
index 0000000..e2425fb
--- /dev/null
+++ b/docs/dyn/compute_alpha.hostTypes.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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.hostTypes.html">hostTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of host types.</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, hostType)</a></code></p>
+<p class="firstline">Returns the specified host type. Get a list of available host types by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves a list of host types 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of host types.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # [Output Only] A map of scoped host type lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of host types.
+        "hostTypes": [ # [Output Only] List of host types contained in this scope.
+          { # A Host Type resource.
+            "cpuPlatform": "A String", # [Output Only] The CPU platform used by this host type.
+            "guestCpus": 42, # [Output Only] The number of virtual CPUs that are available to the host type.
+            "kind": "compute#hostType", # [Output Only] The type of the resource. Always compute#hostType for host types.
+            "description": "A String", # [Output Only] An optional textual description of the resource.
+            "zone": "A String", # [Output Only] The name of the zone where the host type resides, such as us-central1-a.
+            "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this host type.
+              "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+              "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+              "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+              "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+              "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+            },
+            "memoryMb": 42, # [Output Only] The amount of physical memory available to the host type, defined in MB.
+            "localSsdGb": 42, # [Output Only] Local SSD available to the host type, defined in GB.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "name": "A String", # [Output Only] Name of the resource.
+          },
+        ],
+        "warning": { # [Output Only] An informational warning that appears when the host types list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      },
+    },
+    "kind": "compute#hostTypeAggregatedList", # [Output Only] Type of resource.Always compute#hostTypeAggregatedList for aggregated lists of host types.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+  }</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, hostType)</code>
+  <pre>Returns the specified host type. Get a list of available host types by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  hostType: string, Name of the host type to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Host Type resource.
+    "cpuPlatform": "A String", # [Output Only] The CPU platform used by this host type.
+    "guestCpus": 42, # [Output Only] The number of virtual CPUs that are available to the host type.
+    "kind": "compute#hostType", # [Output Only] The type of the resource. Always compute#hostType for host types.
+    "description": "A String", # [Output Only] An optional textual description of the resource.
+    "zone": "A String", # [Output Only] The name of the zone where the host type resides, such as us-central1-a.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this host type.
+      "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+      "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+      "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+    },
+    "memoryMb": 42, # [Output Only] The amount of physical memory available to the host type, defined in MB.
+    "localSsdGb": 42, # [Output Only] Local SSD available to the host type, defined in GB.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves a list of host types available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of host types.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of Host Type resources.
+      { # A Host Type resource.
+        "cpuPlatform": "A String", # [Output Only] The CPU platform used by this host type.
+        "guestCpus": 42, # [Output Only] The number of virtual CPUs that are available to the host type.
+        "kind": "compute#hostType", # [Output Only] The type of the resource. Always compute#hostType for host types.
+        "description": "A String", # [Output Only] An optional textual description of the resource.
+        "zone": "A String", # [Output Only] The name of the zone where the host type resides, such as us-central1-a.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this host type.
+          "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+          "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+          "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+        },
+        "memoryMb": 42, # [Output Only] The amount of physical memory available to the host type, defined in MB.
+        "localSsdGb": 42, # [Output Only] Local SSD available to the host type, defined in GB.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "name": "A String", # [Output Only] Name of the resource.
+      },
+    ],
+    "kind": "compute#hostTypeList", # [Output Only] Type of resource.Always compute#hostTypeList for lists of host types.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for 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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.hosts.html b/docs/dyn/compute_alpha.hosts.html
index 1b258d8..8c5c0c7 100644
--- a/docs/dyn/compute_alpha.hosts.html
+++ b/docs/dyn/compute_alpha.hosts.html
@@ -81,7 +81,7 @@
   <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, host)</a></code></p>
+  <code><a href="#delete">delete(project, zone, host, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified Host resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, host)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(project, zone, resource)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a host resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -116,7 +116,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -152,9 +152,15 @@
               "kind": "compute#host", # [Output Only] The type of the resource. Always compute#host for host.
               "description": "A String", # [Output Only] An optional textual description of the resource.
               "zone": "A String", # [Output Only] The name of the zone where the host resides, such as us-central1-a.
+              "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                  #
+                  # To see the latest fingerprint, make get() request to the host.
+              "labels": { # Labels to apply to this host.
+                "a_key": "A String",
+              },
               "hostType": "A String", # Full or partial URL of the host type resource to use for this host, in the format: zones/zone/hostTypes/host-type. This is provided by the client when the host is created. For example, the following is a valid partial url to a predefined host type:
                   #
-                  # zones/us-central1-f/hostTypes/n1-host-64-416
+                  # zones/us-central1-b/hostTypes/n1-host-64-416
               "instances": [ # A list of resource URLs to the virtual machine instances in this host. They must live in zones contained in the same region as this host.
                 "A String",
               ],
@@ -188,13 +194,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, host)</code>
+    <code class="details" id="delete">delete(project, zone, host, requestId=None)</code>
   <pre>Deletes the specified Host resource.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   host: string, Name of the Host resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -202,7 +209,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -263,9 +270,15 @@
       "kind": "compute#host", # [Output Only] The type of the resource. Always compute#host for host.
       "description": "A String", # [Output Only] An optional textual description of the resource.
       "zone": "A String", # [Output Only] The name of the zone where the host resides, such as us-central1-a.
+      "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+          #
+          # To see the latest fingerprint, make get() request to the host.
+      "labels": { # Labels to apply to this host.
+        "a_key": "A String",
+      },
       "hostType": "A String", # Full or partial URL of the host type resource to use for this host, in the format: zones/zone/hostTypes/host-type. This is provided by the client when the host is created. For example, the following is a valid partial url to a predefined host type:
           #
-          # zones/us-central1-f/hostTypes/n1-host-64-416
+          # zones/us-central1-b/hostTypes/n1-host-64-416
       "instances": [ # A list of resource URLs to the virtual machine instances in this host. They must live in zones contained in the same region as this host.
         "A String",
       ],
@@ -300,16 +313,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -384,7 +401,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates a host resource in the specified project using the data included in the request.
 
 Args:
@@ -398,9 +415,15 @@
     "kind": "compute#host", # [Output Only] The type of the resource. Always compute#host for host.
     "description": "A String", # [Output Only] An optional textual description of the resource.
     "zone": "A String", # [Output Only] The name of the zone where the host resides, such as us-central1-a.
+    "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        # 
+        # To see the latest fingerprint, make get() request to the host.
+    "labels": { # Labels to apply to this host.
+      "a_key": "A String",
+    },
     "hostType": "A String", # Full or partial URL of the host type resource to use for this host, in the format: zones/zone/hostTypes/host-type. This is provided by the client when the host is created. For example, the following is a valid partial url to a predefined host type:
         # 
-        # zones/us-central1-f/hostTypes/n1-host-64-416
+        # zones/us-central1-b/hostTypes/n1-host-64-416
     "instances": [ # A list of resource URLs to the virtual machine instances in this host. They must live in zones contained in the same region as this host.
       "A String",
     ],
@@ -411,6 +434,7 @@
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -418,7 +442,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -474,7 +498,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -497,9 +521,15 @@
           "kind": "compute#host", # [Output Only] The type of the resource. Always compute#host for host.
           "description": "A String", # [Output Only] An optional textual description of the resource.
           "zone": "A String", # [Output Only] The name of the zone where the host resides, such as us-central1-a.
+          "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the host.
+          "labels": { # Labels to apply to this host.
+            "a_key": "A String",
+          },
           "hostType": "A String", # Full or partial URL of the host type resource to use for this host, in the format: zones/zone/hostTypes/host-type. This is provided by the client when the host is created. For example, the following is a valid partial url to a predefined host type:
               #
-              # zones/us-central1-f/hostTypes/n1-host-64-416
+              # zones/us-central1-b/hostTypes/n1-host-64-416
           "instances": [ # A list of resource URLs to the virtual machine instances in this host. They must live in zones contained in the same region as this host.
             "A String",
           ],
@@ -552,16 +582,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -649,16 +683,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
diff --git a/docs/dyn/compute_alpha.html b/docs/dyn/compute_alpha.html
index 6b3f08d..4edc8fa 100644
--- a/docs/dyn/compute_alpha.html
+++ b/docs/dyn/compute_alpha.html
@@ -75,6 +75,11 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="compute_alpha.acceleratorTypes.html">acceleratorTypes()</a></code>
+</p>
+<p class="firstline">Returns the acceleratorTypes Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_alpha.addresses.html">addresses()</a></code>
 </p>
 <p class="firstline">Returns the addresses Resource.</p>
@@ -145,6 +150,11 @@
 <p class="firstline">Returns the healthChecks Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_alpha.hostTypes.html">hostTypes()</a></code>
+</p>
+<p class="firstline">Returns the hostTypes Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_alpha.hosts.html">hosts()</a></code>
 </p>
 <p class="firstline">Returns the hosts Resource.</p>
@@ -215,6 +225,11 @@
 <p class="firstline">Returns the regionBackendServices Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_alpha.regionCommitments.html">regionCommitments()</a></code>
+</p>
+<p class="firstline">Returns the regionCommitments Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_alpha.regionDiskTypes.html">regionDiskTypes()</a></code>
 </p>
 <p class="firstline">Returns the regionDiskTypes Resource.</p>
diff --git a/docs/dyn/compute_alpha.httpHealthChecks.html b/docs/dyn/compute_alpha.httpHealthChecks.html
index 5b4fe35..f267332 100644
--- a/docs/dyn/compute_alpha.httpHealthChecks.html
+++ b/docs/dyn/compute_alpha.httpHealthChecks.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.httpHealthChecks.html">httpHealthChecks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, httpHealthCheck)</a></code></p>
+  <code><a href="#delete">delete(project, httpHealthCheck, requestId=None)</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. Get a list of available HTTP health checks by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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>
+  <code><a href="#patch">patch(project, httpHealthCheck, body, requestId=None)</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="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, httpHealthCheck, body)</a></code></p>
+  <code><a href="#update">update(project, httpHealthCheck, body, requestId=None)</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>
+    <code class="details" id="delete">delete(project, httpHealthCheck, requestId=None)</code>
   <pre>Deletes the specified HttpHealthCheck resource.
 
 Args:
   project: string, Project ID for this request. (required)
   httpHealthCheck: string, Name of the HttpHealthCheck resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -186,7 +187,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a HttpHealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -210,6 +211,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -217,7 +219,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +274,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -327,12 +329,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, httpHealthCheck, body)</code>
+    <code class="details" id="patch">patch(project, httpHealthCheck, body, requestId=None)</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, Project ID for this request. (required)
-  httpHealthCheck: string, Name of the HttpHealthCheck resource to update. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -352,6 +354,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -359,7 +362,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -431,7 +434,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, httpHealthCheck, body)</code>
+    <code class="details" id="update">update(project, httpHealthCheck, body, requestId=None)</code>
   <pre>Updates a HttpHealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -456,6 +459,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -463,7 +467,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.httpsHealthChecks.html b/docs/dyn/compute_alpha.httpsHealthChecks.html
index 6bc3d7b..11d40de 100644
--- a/docs/dyn/compute_alpha.httpsHealthChecks.html
+++ b/docs/dyn/compute_alpha.httpsHealthChecks.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.httpsHealthChecks.html">httpsHealthChecks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, httpsHealthCheck)</a></code></p>
+  <code><a href="#delete">delete(project, httpsHealthCheck, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified HttpsHealthCheck resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, httpsHealthCheck)</a></code></p>
 <p class="firstline">Returns the specified HttpsHealthCheck resource. Get a list of available HTTPS health checks by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a HttpsHealthCheck resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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, httpsHealthCheck, body)</a></code></p>
+  <code><a href="#patch">patch(project, httpsHealthCheck, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a HttpsHealthCheck 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="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, httpsHealthCheck, body)</a></code></p>
+  <code><a href="#update">update(project, httpsHealthCheck, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a HttpsHealthCheck 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, httpsHealthCheck)</code>
+    <code class="details" id="delete">delete(project, httpsHealthCheck, requestId=None)</code>
   <pre>Deletes the specified HttpsHealthCheck resource.
 
 Args:
   project: string, Project ID for this request. (required)
   httpsHealthCheck: string, Name of the HttpsHealthCheck resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -186,7 +187,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a HttpsHealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -210,6 +211,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -217,7 +219,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +274,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -327,12 +329,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, httpsHealthCheck, body)</code>
+    <code class="details" id="patch">patch(project, httpsHealthCheck, body, requestId=None)</code>
   <pre>Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to update. (required)
+  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -352,6 +354,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -359,7 +362,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -431,7 +434,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, httpsHealthCheck, body)</code>
+    <code class="details" id="update">update(project, httpsHealthCheck, body, requestId=None)</code>
   <pre>Updates a HttpsHealthCheck resource in the specified project using the data included in the request.
 
 Args:
@@ -456,6 +459,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -463,7 +467,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.images.html b/docs/dyn/compute_alpha.images.html
index 6898bf4..de1e2ed 100644
--- a/docs/dyn/compute_alpha.images.html
+++ b/docs/dyn/compute_alpha.images.html
@@ -75,10 +75,10 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.images.html">images</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, image)</a></code></p>
+  <code><a href="#delete">delete(project, image, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified image.</p>
 <p class="toc_element">
-  <code><a href="#deprecate">deprecate(project, image, body)</a></code></p>
+  <code><a href="#deprecate">deprecate(project, image, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the deprecation status of an image.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, image)</a></code></p>
@@ -87,7 +87,10 @@
   <code><a href="#getFromFamily">getFromFamily(project, family)</a></code></p>
 <p class="firstline">Returns the latest image that is part of an image family and is not deprecated.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(project, resource)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body, forceCreation=None, requestId=None)</a></code></p>
 <p class="firstline">Creates an image in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,6 +99,9 @@
   <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="#setIamPolicy">setIamPolicy(project, resource, body)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
+<p class="toc_element">
   <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
 <p class="firstline">Sets the labels on an image. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
@@ -103,12 +109,13 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, image)</code>
+    <code class="details" id="delete">delete(project, image, requestId=None)</code>
   <pre>Deletes the specified image.
 
 Args:
   project: string, Project ID for this request. (required)
   image: string, Name of the image resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -116,7 +123,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -161,7 +168,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="deprecate">deprecate(project, image, body)</code>
+    <code class="details" id="deprecate">deprecate(project, image, body, requestId=None)</code>
   <pre>Sets the deprecation status of an image.
 
 If an empty request body is given, clears the deprecation status instead.
@@ -180,6 +187,7 @@
   "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -187,7 +195,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -243,12 +251,6 @@
   An object of the form:
 
     { # An Image resource.
-      "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
-          # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
-          # - projects/project/zones/zone/disks/disk
-          # - zones/zone/disks/disk
-      "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
-      "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
       "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -259,23 +261,11 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
-      "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
-        "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
-        "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
-        "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
-        "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
-      },
-      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-          #
-          # To see the latest fingerprint, make a get() request to retrieve an image.
-      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-      "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
       "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
@@ -283,7 +273,16 @@
           "type": "A String", # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is supported. For newer Windows images, the server might also populate this property with the value WINDOWS to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         },
       ],
-      "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+      "licenses": [ # Any applicable license URI.
+        "A String",
+      ],
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+      "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+          # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
+          # - projects/project/zones/zone/disks/disk
+          # - zones/zone/disks/disk
       "imageEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts the image using a customer-supplied encryption key.
           #
           # After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image).
@@ -300,19 +299,32 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
+      "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "rawDisk": { # The parameters of the raw disk image.
         "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
         "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
         "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
       },
-      "licenses": [ # Any applicable license URI.
-        "A String",
-      ],
-      "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve an image.
+      "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+      "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
+          # - this property, or
+          # - the rawDisk.source property, or
+          # - the sourceDisk property   in order to create an image.
+      "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+        "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+        "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+        "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+        "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+      },
+      "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     }</pre>
 </div>
 
@@ -328,12 +340,6 @@
   An object of the form:
 
     { # An Image resource.
-      "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
-          # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
-          # - projects/project/zones/zone/disks/disk
-          # - zones/zone/disks/disk
-      "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
-      "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
       "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -344,23 +350,11 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
-      "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
-        "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
-        "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
-        "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
-        "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
-      },
-      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-          #
-          # To see the latest fingerprint, make a get() request to retrieve an image.
-      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-      "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
       "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
@@ -368,7 +362,16 @@
           "type": "A String", # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is supported. For newer Windows images, the server might also populate this property with the value WINDOWS to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         },
       ],
-      "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+      "licenses": [ # Any applicable license URI.
+        "A String",
+      ],
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+      "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+          # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
+          # - projects/project/zones/zone/disks/disk
+          # - zones/zone/disks/disk
       "imageEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts the image using a customer-supplied encryption key.
           #
           # After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image).
@@ -385,24 +388,146 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
+      "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "rawDisk": { # The parameters of the raw disk image.
         "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
         "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
         "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
       },
-      "licenses": [ # Any applicable license URI.
-        "A String",
-      ],
-      "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve an image.
+      "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+      "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
+          # - this property, or
+          # - the rawDisk.source property, or
+          # - the sourceDisk property   in order to create an image.
+      "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+        "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+        "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+        "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+        "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+      },
+      "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(project, resource)</code>
+  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, forceCreation=None, requestId=None)</code>
   <pre>Creates an image in the specified project using the data included in the request.
 
 Args:
@@ -411,12 +536,6 @@
     The object takes the form of:
 
 { # An Image resource.
-    "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
-        # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
-        # - projects/project/zones/zone/disks/disk
-        # - zones/zone/disks/disk
-    "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
-    "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
     "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
       "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
       "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -427,23 +546,11 @@
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
     },
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
-    "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
-      "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
-      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
-      "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
-      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
-    },
-    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-        # 
-        # To see the latest fingerprint, make a get() request to retrieve an image.
-    "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-    "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
     "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
         # 
         # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
@@ -451,7 +558,16 @@
         "type": "A String", # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is supported. For newer Windows images, the server might also populate this property with the value WINDOWS to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
       },
     ],
-    "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+    "licenses": [ # Any applicable license URI.
+      "A String",
+    ],
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+    "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+        # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
+        # - projects/project/zones/zone/disks/disk
+        # - zones/zone/disks/disk
     "imageEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts the image using a customer-supplied encryption key.
         # 
         # After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image).
@@ -468,21 +584,36 @@
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
     },
+    "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "rawDisk": { # The parameters of the raw disk image.
       "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
       "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
       "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
     },
-    "licenses": [ # Any applicable license URI.
-      "A String",
-    ],
-    "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve an image.
+    "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+    "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
+        # - this property, or
+        # - the rawDisk.source property, or
+        # - the sourceDisk property   in order to create an image.
+    "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+      "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+      "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+    },
+    "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  forceCreation: boolean, Force image creation if true.
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -490,7 +621,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -545,7 +676,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -564,12 +695,6 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # [Output Only] A list of Image resources.
       { # An Image resource.
-          "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
-              # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
-              # - projects/project/zones/zone/disks/disk
-              # - zones/zone/disks/disk
-          "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
-          "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
           "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
             "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -580,23 +705,11 @@
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
           },
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
-          "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
-            "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
-            "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
-            "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
-            "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
-          },
-          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
-              #
-              # To see the latest fingerprint, make a get() request to retrieve an image.
-          "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-          "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
           "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
               #
               # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
@@ -604,7 +717,16 @@
               "type": "A String", # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is supported. For newer Windows images, the server might also populate this property with the value WINDOWS to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
             },
           ],
-          "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+          "licenses": [ # Any applicable license URI.
+            "A String",
+          ],
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+          "sourceDisk": "A String", # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+              # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
+              # - projects/project/zones/zone/disks/disk
+              # - zones/zone/disks/disk
           "imageEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts the image using a customer-supplied encryption key.
               #
               # After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image).
@@ -621,19 +743,32 @@
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
           },
+          "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "rawDisk": { # The parameters of the raw disk image.
             "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
             "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
             "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
           },
-          "licenses": [ # Any applicable license URI.
-            "A String",
-          ],
-          "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
-          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve an image.
+          "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+          "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
+              # - this property, or
+              # - the rawDisk.source property, or
+              # - the sourceDisk property   in order to create an image.
+          "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "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 state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+            "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+            "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+            "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+            "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+          },
+          "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
         },
     ],
     "kind": "compute#imageList", # Type of resource.
@@ -657,6 +792,215 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(project, resource, body)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+    # 
+    # 
+    # 
+    # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+    # 
+    # **Example**
+    # 
+    # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+    # 
+    # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
+        "A String",
+      ],
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+    { # A rule to be applied in a Policy.
+      "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+        { # Specifies what kind of log the caller must write
+          "counter": { # Options for counters # Counter options.
+            "field": "A String", # The field value to attribute.
+            "metric": "A String", # The metric to update.
+          },
+        },
+      ],
+      "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+        "A String",
+      ],
+      "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+        "A String",
+      ],
+      "action": "A String", # Required
+      "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+        "A String",
+      ],
+      "conditions": [ # Additional restrictions that must be met
+        { # A condition to be met.
+          "iam": "A String", # Trusted attributes supplied by the IAM system.
+          "svc": "A String", # Trusted attributes discharged by the service.
+          "value": "A String", # DEPRECATED. Use 'values' instead.
+          "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+          "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+            "A String",
+          ],
+          "op": "A String", # An operator to apply the subject with.
+        },
+      ],
+      "description": "A String", # Human-readable description of the rule.
+    },
+  ],
+  "version": 42, # Version of the `Policy`. The default version is 0.
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+      # 
+      # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+  "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Associates `members` with a `role`.
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+          #
+          # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+          #
+          # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+          #
+          # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+          #
+          #
+          #
+          # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+          #
+          # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+          #
+          # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+    },
+  ],
+  "iamOwned": True or False,
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setLabels">setLabels(project, resource, body)</code>
   <pre>Sets the labels on an image. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
@@ -680,7 +1024,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.instanceGroupManagers.html b/docs/dyn/compute_alpha.instanceGroupManagers.html
index 5980cf7..e8181c7 100644
--- a/docs/dyn/compute_alpha.instanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.instanceGroupManagers.html
@@ -75,7 +75,7 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.instanceGroupManagers.html">instanceGroupManagers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#abandonInstances">abandonInstances(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.</p>
 <p class="toc_element">
   <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -84,16 +84,16 @@
   <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, instanceGroupManager)</a></code></p>
+  <code><a href="#delete">delete(project, zone, instanceGroupManager, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read  Deleting an instance group for more information.</p>
 <p class="toc_element">
-  <code><a href="#deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#deleteInstances">deleteInstances(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, instanceGroupManager)</a></code></p>
 <p class="firstline">Returns all of the details about the specified managed instance group. Get a list of available managed instance groups by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -102,38 +102,41 @@
   <code><a href="#listManagedInstances">listManagedInstances(project, zone, instanceGroupManager, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action.</p>
 <p class="toc_element">
+  <code><a href="#listManagedInstances_next">listManagedInstances_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="#patch">patch(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#patch">patch(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
 <p class="toc_element">
-  <code><a href="#resize">resize(project, zone, instanceGroupManager, size)</a></code></p>
+  <code><a href="#resize">resize(project, zone, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.</p>
 <p class="toc_element">
-  <code><a href="#resizeAdvanced">resizeAdvanced(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#resizeAdvanced">resizeAdvanced(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Resizes the managed instance group with advanced configuration options like disabling creation retries. This is an extended version of the resize method.</p>
 <p class="toc_element">
-  <code><a href="#setAutoHealingPolicies">setAutoHealingPolicies(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setAutoHealingPolicies">setAutoHealingPolicies(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Modifies the autohealing policies.</p>
 <p class="toc_element">
-  <code><a href="#setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you recreate them.</p>
 <p class="toc_element">
-  <code><a href="#setTargetPools">setTargetPools(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setTargetPools">setTargetPools(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, zone, instanceGroupManager, body)</a></code></p>
+  <code><a href="#update">update(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
 Args:
@@ -149,6 +152,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -156,7 +160,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -211,7 +215,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -264,7 +268,7 @@
                   "percent": 42, # percent must belong to [0, 100].
                 },
                 "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-                "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+                "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
                   "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
                   "fixed": 42, # fixed must be non-negative.
                   "percent": 42, # percent must belong to [0, 100].
@@ -285,7 +289,7 @@
                 {
                   "healthCheck": "A String", # The URL for the health check that signals autohealing.
                   "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-                  "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+                  "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
                     "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
                     "fixed": 42, # fixed must be non-negative.
                     "percent": 42, # percent must belong to [0, 100].
@@ -302,7 +306,7 @@
                 "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
                     #
                     # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-                "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+                "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
                 "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
                 "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
                 "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -318,11 +322,26 @@
                     "percent": 42, # percent must belong to [0, 100].
                   },
                   "instanceTemplate": "A String",
-                  "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+                  "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+                  "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
                 },
               ],
               "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+              "distributionPolicy": { # Policy valid only for regional managed instance groups.
+                "zones": [
+                  {
+                    "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+                  },
+                ],
+              },
               "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+              "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+                "zones": [
+                  {
+                    "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+                  },
+                ],
+              },
             },
         ],
       },
@@ -348,13 +367,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, instanceGroupManager)</code>
+    <code class="details" id="delete">delete(project, zone, instanceGroupManager, requestId=None)</code>
   <pre>Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read  Deleting an instance group for more information.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
   instanceGroupManager: string, The name of the managed instance group to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -362,7 +382,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -407,7 +427,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
 Args:
@@ -423,6 +443,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -430,7 +451,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -508,7 +529,7 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -529,7 +550,7 @@
         {
           "healthCheck": "A String", # The URL for the health check that signals autohealing.
           "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-          "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+          "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
             "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
             "fixed": 42, # fixed must be non-negative.
             "percent": 42, # percent must belong to [0, 100].
@@ -546,7 +567,7 @@
         "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
             #
             # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-        "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+        "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
         "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
         "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
         "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -562,16 +583,31 @@
             "percent": 42, # percent must belong to [0, 100].
           },
           "instanceTemplate": "A String",
-          "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+          "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+          "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
         },
       ],
       "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+      "distributionPolicy": { # Policy valid only for regional managed instance groups.
+        "zones": [
+          {
+            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          },
+        ],
+      },
       "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+      "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+        "zones": [
+          {
+            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          },
+        ],
+      },
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
 Args:
@@ -602,7 +638,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -623,7 +659,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -640,7 +676,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -656,13 +692,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -670,7 +722,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -726,7 +778,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -766,7 +818,7 @@
               "percent": 42, # percent must belong to [0, 100].
             },
             "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-            "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+            "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
               "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
               "fixed": 42, # fixed must be non-negative.
               "percent": 42, # percent must belong to [0, 100].
@@ -787,7 +839,7 @@
             {
               "healthCheck": "A String", # The URL for the health check that signals autohealing.
               "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-              "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+              "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
                 "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
                 "fixed": 42, # fixed must be non-negative.
                 "percent": 42, # percent must belong to [0, 100].
@@ -804,7 +856,7 @@
             "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
                 #
                 # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-            "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+            "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
             "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
             "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
             "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -820,11 +872,26 @@
                 "percent": 42, # percent must belong to [0, 100].
               },
               "instanceTemplate": "A String",
-              "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+              "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+              "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
             },
           ],
           "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+          "distributionPolicy": { # Policy valid only for regional managed instance groups.
+            "zones": [
+              {
+                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+              },
+            ],
+          },
           "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+          "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+            "zones": [
+              {
+                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+              },
+            ],
+          },
         },
     ],
     "kind": "compute#instanceGroupManagerList", # [Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.
@@ -850,9 +917,14 @@
   An object of the form:
 
     {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "managedInstances": [ # [Output Only] The list of instances in the managed instance group.
       {
         "instanceStatus": "A String", # [Output Only] The status of the instance. This field is empty when the instance does not exist.
+        "version": { # [Output Only] Intended version of this instance.
+          "instanceTemplate": "A String", # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
+          "name": "A String", # [Output Only] Name of the version.
+        },
         "lastAttempt": { # [Output Only] Information about the last attempt to create or delete the instance.
           "errors": { # [Output Only] Encountered errors during the last attempt to create or delete the instance.
             "errors": [ # [Output Only] The array of errors encountered while processing this operation.
@@ -884,6 +956,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listManagedInstances_next">listManagedInstances_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.
 
@@ -898,7 +984,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="patch">patch(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
 
 Args:
@@ -930,7 +1016,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -951,7 +1037,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -968,7 +1054,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -984,13 +1070,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -998,7 +1100,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1043,7 +1145,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
 Args:
@@ -1059,6 +1161,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1066,7 +1169,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1111,7 +1214,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="resize">resize(project, zone, instanceGroupManager, size)</code>
+    <code class="details" id="resize">resize(project, zone, instanceGroupManager, size, requestId=None)</code>
   <pre>Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
 Args:
@@ -1119,6 +1222,7 @@
   zone: string, The name of the zone where the managed instance group is located. (required)
   instanceGroupManager: string, The name of the managed instance group. (required)
   size: integer, The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1126,7 +1230,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1171,7 +1275,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="resizeAdvanced">resizeAdvanced(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="resizeAdvanced">resizeAdvanced(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Resizes the managed instance group with advanced configuration options like disabling creation retries. This is an extended version of the resize method.
 
 If you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.
@@ -1194,6 +1298,7 @@
     "targetSize": 42, # The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1201,7 +1306,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1246,7 +1351,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setAutoHealingPolicies">setAutoHealingPolicies(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="setAutoHealingPolicies">setAutoHealingPolicies(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Modifies the autohealing policies.
 
 Args:
@@ -1261,7 +1366,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -1270,6 +1375,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1277,7 +1383,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1322,7 +1428,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you recreate them.
 
 Args:
@@ -1336,6 +1442,7 @@
     "instanceTemplate": "A String", # The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1343,7 +1450,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1388,7 +1495,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setTargetPools">setTargetPools(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="setTargetPools">setTargetPools(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.
 
 Args:
@@ -1405,6 +1512,7 @@
     "fingerprint": "A String", # The fingerprint of the target pools information. Use this optional property to prevent conflicts when multiple users change the target pools settings concurrently. Obtain the fingerprint with the instanceGroupManagers.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1412,7 +1520,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1485,7 +1593,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, zone, instanceGroupManager, body)</code>
+    <code class="details" id="update">update(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
 Args:
@@ -1517,7 +1625,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -1538,7 +1646,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -1555,7 +1663,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -1571,13 +1679,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1585,7 +1709,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.instanceGroups.html b/docs/dyn/compute_alpha.instanceGroups.html
index 3eb135a..723054a 100644
--- a/docs/dyn/compute_alpha.instanceGroups.html
+++ b/docs/dyn/compute_alpha.instanceGroups.html
@@ -75,7 +75,7 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.instanceGroups.html">instanceGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#addInstances">addInstances(project, zone, instanceGroup, body)</a></code></p>
+  <code><a href="#addInstances">addInstances(project, zone, instanceGroup, body, requestId=None)</a></code></p>
 <p class="firstline">Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read  Adding instances for more information.</p>
 <p class="toc_element">
   <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -84,13 +84,13 @@
   <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, instanceGroup)</a></code></p>
+  <code><a href="#delete">delete(project, zone, instanceGroup, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read  Deleting an instance group for more information.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, instanceGroup)</a></code></p>
 <p class="firstline">Returns the specified instance group. Get a list of available instance groups by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
 <p class="firstline">Creates an instance group in the specified project using the parameters that are included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -105,17 +105,17 @@
   <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="#removeInstances">removeInstances(project, zone, instanceGroup, body)</a></code></p>
+  <code><a href="#removeInstances">removeInstances(project, zone, instanceGroup, body, requestId=None)</a></code></p>
 <p class="firstline">Removes one or more instances from the specified instance group, but does not delete those instances.</p>
 <p class="toc_element">
-  <code><a href="#setNamedPorts">setNamedPorts(project, zone, instanceGroup, body)</a></code></p>
+  <code><a href="#setNamedPorts">setNamedPorts(project, zone, instanceGroup, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the named ports for the specified instance group.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="addInstances">addInstances(project, zone, instanceGroup, body)</code>
+    <code class="details" id="addInstances">addInstances(project, zone, instanceGroup, body, requestId=None)</code>
   <pre>Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read  Adding instances for more information.
 
 Args:
@@ -133,6 +133,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -140,7 +141,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -195,7 +196,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -274,13 +275,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, instanceGroup)</code>
+    <code class="details" id="delete">delete(project, zone, instanceGroup, requestId=None)</code>
   <pre>Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read  Deleting an instance group for more information.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the instance group is located. (required)
   instanceGroup: string, The name of the instance group to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -288,7 +290,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -371,7 +373,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates an instance group in the specified project using the parameters that are included in the request.
 
 Args:
@@ -405,6 +407,7 @@
     "name": "A String", # The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -412,7 +415,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -468,7 +471,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -537,7 +540,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -601,7 +604,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="removeInstances">removeInstances(project, zone, instanceGroup, body)</code>
+    <code class="details" id="removeInstances">removeInstances(project, zone, instanceGroup, body, requestId=None)</code>
   <pre>Removes one or more instances from the specified instance group, but does not delete those instances.
 
 Args:
@@ -619,6 +622,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -626,7 +630,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -671,7 +675,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setNamedPorts">setNamedPorts(project, zone, instanceGroup, body)</code>
+    <code class="details" id="setNamedPorts">setNamedPorts(project, zone, instanceGroup, body, requestId=None)</code>
   <pre>Sets the named ports for the specified instance group.
 
 Args:
@@ -691,6 +695,7 @@
     "fingerprint": "A String", # The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -698,7 +703,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.instanceTemplates.html b/docs/dyn/compute_alpha.instanceTemplates.html
index 889a99a..d6cf398 100644
--- a/docs/dyn/compute_alpha.instanceTemplates.html
+++ b/docs/dyn/compute_alpha.instanceTemplates.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.instanceTemplates.html">instanceTemplates</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, instanceTemplate)</a></code></p>
+  <code><a href="#delete">delete(project, instanceTemplate, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified instance template. If you delete an instance template that is being referenced from another instance group, the instance group will not be able to create or recreate virtual machine instances. Deleting an instance template is permanent and cannot be undone.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, instanceTemplate)</a></code></p>
 <p class="firstline">Returns the specified instance template. Get a list of available instance templates by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -94,12 +94,13 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, instanceTemplate)</code>
+    <code class="details" id="delete">delete(project, instanceTemplate, requestId=None)</code>
   <pre>Deletes the specified instance template. If you delete an instance template that is being referenced from another instance group, the instance group will not be able to create or recreate virtual machine instances. Deleting an instance template is permanent and cannot be undone.
 
 Args:
   project: string, Project ID for this request. (required)
   instanceTemplate: string, The name of the instance template to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -107,7 +108,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -270,7 +271,7 @@
               #
               # To see the latest fingerprint, make get() request to the instance.
         },
-        "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+        "labels": { # Labels to apply to instances that are created from this template.
           "a_key": "A String",
         },
         "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -289,38 +290,39 @@
         ],
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
             "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
               { # An alias IP range attached to an instance's network interface.
                 "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
                 "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
               },
             ],
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "name": "A String", # Name of this access configuration.
                 "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-                "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-                "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-                "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+                "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
@@ -340,7 +342,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.
 
 Args:
@@ -456,7 +458,7 @@
             #
             # To see the latest fingerprint, make get() request to the instance.
       },
-      "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to instances that are created from this template.
         "a_key": "A String",
       },
       "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -475,38 +477,39 @@
       ],
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
+          "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
           "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
             { # An alias IP range attached to an instance's network interface.
               "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
               "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
             },
           ],
-          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+          "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+              #
+              # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+              #
+              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+              # - projects/project/global/networks/network
+              # - global/networks/default
           "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
               "name": "A String", # Name of this access configuration.
               "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-              "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-              "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-              "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+              "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+              "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
               "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-              "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+              "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
               "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+              "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
             },
           ],
           "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
           "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
               # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
               # - regions/region/subnetworks/subnetwork
-          "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-              #
-              # global/networks/default
-              #
-              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-              # - projects/project/global/networks/network
-              # - global/networks/default
+          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
       "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
@@ -524,6 +527,7 @@
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -531,7 +535,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -586,7 +590,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -712,7 +716,7 @@
                   #
                   # To see the latest fingerprint, make get() request to the instance.
             },
-            "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+            "labels": { # Labels to apply to instances that are created from this template.
               "a_key": "A String",
             },
             "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -731,38 +735,39 @@
             ],
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
                 "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
                   { # An alias IP range attached to an instance's network interface.
                     "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
                     "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
                   },
                 ],
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "name": "A String", # Name of this access configuration.
                     "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-                    "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-                    "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-                    "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                    "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                    "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                    "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+                    "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                    "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
diff --git a/docs/dyn/compute_alpha.instances.html b/docs/dyn/compute_alpha.instances.html
index e5104a9..82294ae 100644
--- a/docs/dyn/compute_alpha.instances.html
+++ b/docs/dyn/compute_alpha.instances.html
@@ -75,7 +75,7 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.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>
+  <code><a href="#addAccessConfig">addAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -84,16 +84,16 @@
   <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, forceAttach=None)</a></code></p>
+  <code><a href="#attachDisk">attachDisk(project, zone, instance, body, forceAttach=None, requestId=None)</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>
+  <code><a href="#delete">delete(project, zone, instance, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
 <p class="toc_element">
-  <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface)</a></code></p>
+  <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface, requestId=None)</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>
+  <code><a href="#detachDisk">detachDisk(project, zone, instance, deviceName, requestId=None)</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>
@@ -105,7 +105,7 @@
   <code><a href="#getSerialPortOutput">getSerialPortOutput(project, zone, instance, start=None, port=None)</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>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -114,53 +114,62 @@
   <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>
+  <code><a href="#reset">reset(project, zone, instance, requestId=None)</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>
+  <code><a href="#setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName, requestId=None)</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="#setIamPolicy">setIamPolicy(project, zone, resource, body)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
 <p class="toc_element">
-  <code><a href="#setLabels">setLabels(project, zone, instance, body)</a></code></p>
+  <code><a href="#setLabels">setLabels(project, zone, instance, body, requestId=None)</a></code></p>
 <p class="firstline">Sets labels on an instance. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
-  <code><a href="#setMachineType">setMachineType(project, zone, instance, body)</a></code></p>
+  <code><a href="#setMachineResources">setMachineResources(project, zone, instance, body, requestId=None)</a></code></p>
+<p class="firstline">Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.</p>
+<p class="toc_element">
+  <code><a href="#setMachineType">setMachineType(project, zone, instance, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the machine type for a stopped instance to the machine type specified in the request.</p>
 <p class="toc_element">
-  <code><a href="#setMetadata">setMetadata(project, zone, instance, body)</a></code></p>
+  <code><a href="#setMetadata">setMetadata(project, zone, instance, body, requestId=None)</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>
+  <code><a href="#setMinCpuPlatform">setMinCpuPlatform(project, zone, instance, body, requestId=None)</a></code></p>
+<p class="firstline">Changes the minimum cpu/platform that this instance should be started as. This is called on a stopped instance.</p>
+<p class="toc_element">
+  <code><a href="#setScheduling">setScheduling(project, zone, instance, body, requestId=None)</a></code></p>
 <p class="firstline">Sets an instance's scheduling options.</p>
 <p class="toc_element">
-  <code><a href="#setServiceAccount">setServiceAccount(project, zone, instance, body)</a></code></p>
-<p class="firstline">Sets the service account on the instance.</p>
+  <code><a href="#setServiceAccount">setServiceAccount(project, zone, instance, body, requestId=None)</a></code></p>
+<p class="firstline">Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.</p>
 <p class="toc_element">
-  <code><a href="#setTags">setTags(project, zone, instance, body)</a></code></p>
+  <code><a href="#setTags">setTags(project, zone, instance, body, requestId=None)</a></code></p>
 <p class="firstline">Sets tags for the specified instance to the data included in the request.</p>
 <p class="toc_element">
-  <code><a href="#start">start(project, zone, instance)</a></code></p>
+  <code><a href="#simulateMaintenanceEvent">simulateMaintenanceEvent(project, zone, instance)</a></code></p>
+<p class="firstline">Simulates a maintenance event on the instance.</p>
+<p class="toc_element">
+  <code><a href="#start">start(project, zone, instance, requestId=None)</a></code></p>
 <p class="firstline">Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.</p>
 <p class="toc_element">
-  <code><a href="#startWithEncryptionKey">startWithEncryptionKey(project, zone, instance, body)</a></code></p>
+  <code><a href="#startWithEncryptionKey">startWithEncryptionKey(project, zone, instance, body, requestId=None)</a></code></p>
 <p class="firstline">Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.</p>
 <p class="toc_element">
-  <code><a href="#stop">stop(project, zone, instance, discardLocalSsd=None)</a></code></p>
+  <code><a href="#stop">stop(project, zone, instance, discardLocalSsd=None, requestId=None)</a></code></p>
 <p class="firstline">Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.</p>
 <p class="toc_element">
-  <code><a href="#suspend">suspend(project, zone, instance, discardLocalSsd=None)</a></code></p>
+  <code><a href="#suspend">suspend(project, zone, instance, discardLocalSsd=None, requestId=None)</a></code></p>
 <p class="firstline">This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances incur reduced per-minute, virtual machine usage charges while they are suspended. Any resources the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#updateAccessConfig">updateAccessConfig(project, zone, instance, networkInterface, body)</a></code></p>
+  <code><a href="#updateAccessConfig">updateAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified access config from an instance's network interface with 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>
+    <code class="details" id="addAccessConfig">addAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</code>
   <pre>Adds an access config to an instance's network interface.
 
 Args:
@@ -175,14 +184,15 @@
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
   "name": "A String", # Name of this access configuration.
   "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-  "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-  "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-  "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+  "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+  "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
   "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-  "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+  "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
   "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+  "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -190,7 +200,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -245,7 +255,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -267,7 +277,13 @@
         "instances": [ # [Output Only] List of instances contained in this scope.
           { # An Instance resource.
             "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-            "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+            "guestAccelerators": [
+              { # A specification of the type and number of accelerator cards attached to the instance.
+                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+              },
+            ],
+            "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
               "a_key": "A String",
             },
             "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
@@ -275,18 +291,10 @@
               "preemptible": True or False, # Whether the instance is preemptible.
               "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
             },
-            "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+            "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
                 #
-                # zones/us-central1-f/machineTypes/n1-standard-1
-                #
-                # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-                #
-                # zones/zone/machineTypes/custom-CPUS-MEMORY
-                #
-                # For example: zones/us-central1-f/machineTypes/custom-4-5120
-                #
-                # For a full list of restrictions, read the Specifications for custom machine types.
-            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+                # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
                   "A String",
@@ -298,38 +306,39 @@
             "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
               { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
                 "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
                   { # An alias IP range attached to an instance's network interface.
                     "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
                     "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
                   },
                 ],
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "name": "A String", # Name of this access configuration.
                     "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-                    "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-                    "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-                    "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                    "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                    "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                    "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+                    "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                    "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
             "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -381,6 +390,17 @@
                 # Optional, Private Host (physical machine) that the instance will be placed on when it's created. The instance is guaranteed to be placed on the same machine as other instances with the same private host.
                 #
                 # The request will be rejected if the private host has run out of resources.
+            "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+                #
+                # zones/us-central1-f/machineTypes/n1-standard-1
+                #
+                # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+                #
+                # zones/zone/machineTypes/custom-CPUS-MEMORY
+                #
+                # For example: zones/us-central1-f/machineTypes/custom-4-5120
+                #
+                # For a full list of restrictions, read the Specifications for custom machine types.
             "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
             "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
@@ -509,7 +529,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="attachDisk">attachDisk(project, zone, instance, body, forceAttach=None)</code>
+    <code class="details" id="attachDisk">attachDisk(project, zone, instance, body, forceAttach=None, requestId=None)</code>
   <pre>Attaches a Disk resource to an instance.
 
 Args:
@@ -608,6 +628,7 @@
 }
 
   forceAttach: boolean, Whether to force attach the disk even if it's currently attached to another instance. This is only available for regional disks.
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -615,7 +636,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -660,13 +681,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, instance)</code>
+    <code class="details" id="delete">delete(project, zone, instance, requestId=None)</code>
   <pre>Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -674,7 +696,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -719,7 +741,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface)</code>
+    <code class="details" id="deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface, requestId=None)</code>
   <pre>Deletes an access config from an instance's network interface.
 
 Args:
@@ -728,6 +750,7 @@
   instance: string, The instance name for this request. (required)
   accessConfig: string, The name of the access config to delete. (required)
   networkInterface: string, The name of the network interface. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -735,7 +758,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -780,7 +803,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="detachDisk">detachDisk(project, zone, instance, deviceName)</code>
+    <code class="details" id="detachDisk">detachDisk(project, zone, instance, deviceName, requestId=None)</code>
   <pre>Detaches a disk from an instance.
 
 Args:
@@ -788,6 +811,7 @@
   zone: string, The name of the zone for this request. (required)
   instance: string, Instance name. (required)
   deviceName: string, Disk device name to detach. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -795,7 +819,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -853,7 +877,13 @@
 
     { # An Instance resource.
     "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-    "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "guestAccelerators": [
+      { # A specification of the type and number of accelerator cards attached to the instance.
+        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+      },
+    ],
+    "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
@@ -861,18 +891,10 @@
       "preemptible": True or False, # Whether the instance is preemptible.
       "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
     },
-    "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+    "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
         #
-        # zones/us-central1-f/machineTypes/n1-standard-1
-        #
-        # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-        #
-        # zones/zone/machineTypes/custom-CPUS-MEMORY
-        #
-        # For example: zones/us-central1-f/machineTypes/custom-4-5120
-        #
-        # For a full list of restrictions, read the Specifications for custom machine types.
-    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+        # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
       { # A service account.
         "scopes": [ # The list of scopes to be made available for this service account.
           "A String",
@@ -884,38 +906,39 @@
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
       { # A network interface resource attached to an instance.
+        "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
         "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
           { # An alias IP range attached to an instance's network interface.
             "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
             "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
           },
         ],
-        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+        "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+            #
+            # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+            #
+            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+            # - projects/project/global/networks/network
+            # - global/networks/default
         "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
             "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
             "name": "A String", # Name of this access configuration.
             "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-            "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-            "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-            "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+            "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+            "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
             "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-            "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+            "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
             "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+            "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
           },
         ],
         "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
         "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
             # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
             # - regions/region/subnetworks/subnetwork
-        "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-            #
-            # global/networks/default
-            #
-            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-            # - projects/project/global/networks/network
-            # - global/networks/default
+        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
       },
     ],
     "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -967,6 +990,17 @@
         # Optional, Private Host (physical machine) that the instance will be placed on when it's created. The instance is guaranteed to be placed on the same machine as other instances with the same private host.
         #
         # The request will be rejected if the private host has run out of resources.
+    "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+        #
+        # zones/us-central1-f/machineTypes/n1-standard-1
+        #
+        # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+        #
+        # zones/zone/machineTypes/custom-CPUS-MEMORY
+        #
+        # For example: zones/us-central1-f/machineTypes/custom-4-5120
+        #
+        # For a full list of restrictions, read the Specifications for custom machine types.
     "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
@@ -1085,16 +1119,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -1176,14 +1214,14 @@
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
-  start: string, For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value that was returned in the previous call.
+  start: string, Returns output starting from a specific byte position. Use this to page through output when the output is too large to return in a single request. For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value returned in the previous call.
   port: integer, Specifies which COM or serial port to retrieve data from.
 
 Returns:
   An object of the form:
 
     { # An instance's serial console output.
-    "start": "A String", # [Output Only] The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
+    "start": "A String", # The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
     "kind": "compute#serialPortOutput", # [Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
     "contents": "A String", # [Output Only] The contents of the console output.
@@ -1192,7 +1230,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates an instance resource in the specified project using the data included in the request.
 
 Args:
@@ -1203,7 +1241,13 @@
 
 { # An Instance resource.
   "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-  "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+  "guestAccelerators": [
+    { # A specification of the type and number of accelerator cards attached to the instance.
+      "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+      "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+    },
+  ],
+  "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
     "a_key": "A String",
   },
   "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
@@ -1211,18 +1255,10 @@
     "preemptible": True or False, # Whether the instance is preemptible.
     "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
   },
-  "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+  "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
       # 
-      # zones/us-central1-f/machineTypes/n1-standard-1
-      # 
-      # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-      # 
-      # zones/zone/machineTypes/custom-CPUS-MEMORY
-      # 
-      # For example: zones/us-central1-f/machineTypes/custom-4-5120
-      # 
-      # For a full list of restrictions, read the Specifications for custom machine types.
-  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+      # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
     { # A service account.
       "scopes": [ # The list of scopes to be made available for this service account.
         "A String",
@@ -1234,38 +1270,39 @@
   "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
     { # A network interface resource attached to an instance.
+      "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
       "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
         { # An alias IP range attached to an instance's network interface.
           "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
           "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
         },
       ],
-      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+      "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+          #
+          # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+          #
+          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+          # - projects/project/global/networks/network
+          # - global/networks/default
       "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
           "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
           "name": "A String", # Name of this access configuration.
           "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-          "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-          "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-          "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+          "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+          "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
           "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-          "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+          "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
           "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+          "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
         },
       ],
       "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
       "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
           # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
           # - regions/region/subnetworks/subnetwork
-      "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-          #
-          # global/networks/default
-          #
-          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-          # - projects/project/global/networks/network
-          # - global/networks/default
+      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
     },
   ],
   "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -1317,6 +1354,17 @@
       # Optional, Private Host (physical machine) that the instance will be placed on when it's created. The instance is guaranteed to be placed on the same machine as other instances with the same private host.
       # 
       # The request will be rejected if the private host has run out of resources.
+  "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+      # 
+      # zones/us-central1-f/machineTypes/n1-standard-1
+      # 
+      # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+      # 
+      # zones/zone/machineTypes/custom-CPUS-MEMORY
+      # 
+      # For example: zones/us-central1-f/machineTypes/custom-4-5120
+      # 
+      # For a full list of restrictions, read the Specifications for custom machine types.
   "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
   "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
@@ -1411,6 +1459,7 @@
   "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1418,7 +1467,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1474,7 +1523,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -1494,7 +1543,13 @@
     "items": [ # [Output Only] A list of instances.
       { # An Instance resource.
         "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-        "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+        "guestAccelerators": [
+          { # A specification of the type and number of accelerator cards attached to the instance.
+            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+          },
+        ],
+        "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
           "a_key": "A String",
         },
         "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
@@ -1502,18 +1557,10 @@
           "preemptible": True or False, # Whether the instance is preemptible.
           "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
         },
-        "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+        "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
             #
-            # zones/us-central1-f/machineTypes/n1-standard-1
-            #
-            # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-            #
-            # zones/zone/machineTypes/custom-CPUS-MEMORY
-            #
-            # For example: zones/us-central1-f/machineTypes/custom-4-5120
-            #
-            # For a full list of restrictions, read the Specifications for custom machine types.
-        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+            # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
               "A String",
@@ -1525,38 +1572,39 @@
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
           { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
             "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
               { # An alias IP range attached to an instance's network interface.
                 "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
                 "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
               },
             ],
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "name": "A String", # Name of this access configuration.
                 "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-                "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-                "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-                "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+                "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+                "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
         "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -1608,6 +1656,17 @@
             # Optional, Private Host (physical machine) that the instance will be placed on when it's created. The instance is guaranteed to be placed on the same machine as other instances with the same private host.
             #
             # The request will be rejected if the private host has run out of resources.
+        "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+            #
+            # zones/us-central1-f/machineTypes/n1-standard-1
+            #
+            # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+            #
+            # zones/zone/machineTypes/custom-CPUS-MEMORY
+            #
+            # For example: zones/us-central1-f/machineTypes/custom-4-5120
+            #
+            # For a full list of restrictions, read the Specifications for custom machine types.
         "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
         "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
@@ -1723,13 +1782,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="reset">reset(project, zone, instance)</code>
+    <code class="details" id="reset">reset(project, zone, instance, requestId=None)</code>
   <pre>Performs a hard reset on the instance.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1737,7 +1797,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1782,7 +1842,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName)</code>
+    <code class="details" id="setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName, requestId=None)</code>
   <pre>Sets the auto-delete flag for a disk attached to an instance.
 
 Args:
@@ -1791,6 +1851,7 @@
   instance: string, The instance name. (required)
   autoDelete: boolean, Whether to auto-delete the disk when the instance is deleted. (required)
   deviceName: string, The device name of the disk to modify. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1798,7 +1859,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1864,16 +1925,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -1961,16 +2026,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -2045,7 +2114,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setLabels">setLabels(project, zone, instance, body)</code>
+    <code class="details" id="setLabels">setLabels(project, zone, instance, body, requestId=None)</code>
   <pre>Sets labels on an instance. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
 Args:
@@ -2057,13 +2126,12 @@
 
 {
     "labelFingerprint": "A String", # Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.
-    "labels": { # A list of labels to apply for this instance. Changing instance labels will also change the instance tags.
-        # 
-        # Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+    "labels": {
       "a_key": "A String",
     },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2071,7 +2139,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2116,7 +2184,79 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setMachineType">setMachineType(project, zone, instance, body)</code>
+    <code class="details" id="setMachineResources">setMachineResources(project, zone, instance, body, requestId=None)</code>
+  <pre>Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "guestAccelerators": [
+      { # A specification of the type and number of accelerator cards attached to the instance.
+        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+      },
+    ],
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setMachineType">setMachineType(project, zone, instance, body, requestId=None)</code>
   <pre>Changes the machine type for a stopped instance to the machine type specified in the request.
 
 Args:
@@ -2130,6 +2270,7 @@
     "machineType": "A String", # Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2137,7 +2278,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2182,7 +2323,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setMetadata">setMetadata(project, zone, instance, body)</code>
+    <code class="details" id="setMetadata">setMetadata(project, zone, instance, body, requestId=None)</code>
   <pre>Sets metadata for the specified instance to the data included in the request.
 
 Args:
@@ -2203,6 +2344,7 @@
   "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2210,7 +2352,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2255,7 +2397,74 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setScheduling">setScheduling(project, zone, instance, body)</code>
+    <code class="details" id="setMinCpuPlatform">setMinCpuPlatform(project, zone, instance, body, requestId=None)</code>
+  <pre>Changes the minimum cpu/platform that this instance should be started as. This is called on a stopped instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "minCpuPlatform": "A String", # Minimum cpu/platform this instance should be started at.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setScheduling">setScheduling(project, zone, instance, body, requestId=None)</code>
   <pre>Sets an instance's scheduling options.
 
 Args:
@@ -2271,6 +2480,7 @@
   "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2278,7 +2488,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2323,8 +2533,8 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setServiceAccount">setServiceAccount(project, zone, instance, body)</code>
-  <pre>Sets the service account on the instance.
+    <code class="details" id="setServiceAccount">setServiceAccount(project, zone, instance, body, requestId=None)</code>
+  <pre>Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -2340,6 +2550,7 @@
     "email": "A String", # Email address of the service account.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2347,7 +2558,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2392,7 +2603,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setTags">setTags(project, zone, instance, body)</code>
+    <code class="details" id="setTags">setTags(project, zone, instance, body, requestId=None)</code>
   <pre>Sets tags for the specified instance to the data included in the request.
 
 Args:
@@ -2411,6 +2622,7 @@
       # To see the latest fingerprint, make get() request to the instance.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2418,7 +2630,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2463,13 +2675,73 @@
 </div>
 
 <div class="method">
-    <code class="details" id="start">start(project, zone, instance)</code>
+    <code class="details" id="simulateMaintenanceEvent">simulateMaintenanceEvent(project, zone, instance)</code>
+  <pre>Simulates a maintenance event on the instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="start">start(project, zone, instance, requestId=None)</code>
   <pre>Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance resource to start. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2477,7 +2749,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2522,7 +2794,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="startWithEncryptionKey">startWithEncryptionKey(project, zone, instance, body)</code>
+    <code class="details" id="startWithEncryptionKey">startWithEncryptionKey(project, zone, instance, body, requestId=None)</code>
   <pre>Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.
 
 Args:
@@ -2566,6 +2838,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2573,7 +2846,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2618,14 +2891,15 @@
 </div>
 
 <div class="method">
-    <code class="details" id="stop">stop(project, zone, instance, discardLocalSsd=None)</code>
+    <code class="details" id="stop">stop(project, zone, instance, discardLocalSsd=None, requestId=None)</code>
   <pre>Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance resource to stop. (required)
-  discardLocalSsd: boolean, If true, discard the contents of any attached localSSD partitions. Default value is false.
+  discardLocalSsd: boolean, If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2633,7 +2907,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2678,14 +2952,15 @@
 </div>
 
 <div class="method">
-    <code class="details" id="suspend">suspend(project, zone, instance, discardLocalSsd=None)</code>
+    <code class="details" id="suspend">suspend(project, zone, instance, discardLocalSsd=None, requestId=None)</code>
   <pre>This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances incur reduced per-minute, virtual machine usage charges while they are suspended. Any resources the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance resource to suspend. (required)
-  discardLocalSsd: boolean, If true, discard the contents of any attached localSSD partitions. Default value is false.
+  discardLocalSsd: boolean, If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2693,7 +2968,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2766,7 +3041,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="updateAccessConfig">updateAccessConfig(project, zone, instance, networkInterface, body)</code>
+    <code class="details" id="updateAccessConfig">updateAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</code>
   <pre>Updates the specified access config from an instance's network interface with the data included in the request.
 
 Args:
@@ -2781,14 +3056,15 @@
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
   "name": "A String", # Name of this access configuration.
   "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
-  "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: CLOUD_NETWORK_PREMIUM , CLOUD_NETWORK_STANDARD. If this field is not specified, it is assumed to be CLOUD_NETWORK_PREMIUM.
-  "ptrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_ptr field is enabled.
-  "dnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+  "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+  "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
   "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-  "setPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+  "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
   "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+  "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -2796,7 +3072,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.licenses.html b/docs/dyn/compute_alpha.licenses.html
index 3195be3..e0804db 100644
--- a/docs/dyn/compute_alpha.licenses.html
+++ b/docs/dyn/compute_alpha.licenses.html
@@ -77,6 +77,9 @@
 <p class="toc_element">
   <code><a href="#get">get(project, license)</a></code></p>
 <p class="firstline">Returns the specified License resource. Get a list of available licenses by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
+<p class="firstline">Create a License resource in the specified project.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(project, license)</code>
@@ -90,12 +93,96 @@
   An object of the form:
 
     { # A license resource.
+      "kind": "compute#license", # [Output Only] Type of resource. Always compute#license for licenses.
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "chargesUseFee": True or False, # [Output Only] If true, the customer will be charged license fee for running software that contains this license on an instance.
+      "licenseCode": "A String", # [Output Only] The unique code used to attach this license to images, snapshots, and disks.
+      "transferable": True or False, # If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.
+      "resourceRequirements": {
+        "minMemoryMb": 42, # Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.
+        "minGuestCpuCount": 42, # Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.
+      },
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # [Output Only] Name of the resource. The name is 1-63 characters long and complies with RFC1035.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
+  <pre>Create a License resource in the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A license resource.
     "kind": "compute#license", # [Output Only] Type of resource. Always compute#license for licenses.
-    "name": "A String", # [Output Only] Name of the resource. The name is 1-63 characters long and complies with RFC1035.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
     "chargesUseFee": True or False, # [Output Only] If true, the customer will be charged license fee for running software that contains this license on an instance.
     "licenseCode": "A String", # [Output Only] The unique code used to attach this license to images, snapshots, and disks.
     "transferable": True or False, # If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.
+    "resourceRequirements": {
+      "minMemoryMb": 42, # Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.
+      "minGuestCpuCount": 42, # Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.
+    },
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource. The name is 1-63 characters long and complies with RFC1035.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_alpha.machineTypes.html b/docs/dyn/compute_alpha.machineTypes.html
index cfe0ee5..de31f96 100644
--- a/docs/dyn/compute_alpha.machineTypes.html
+++ b/docs/dyn/compute_alpha.machineTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -223,7 +223,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.networks.html b/docs/dyn/compute_alpha.networks.html
index 509bf29..edd14a7 100644
--- a/docs/dyn/compute_alpha.networks.html
+++ b/docs/dyn/compute_alpha.networks.html
@@ -75,16 +75,16 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.networks.html">networks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#addPeering">addPeering(project, network, body)</a></code></p>
+  <code><a href="#addPeering">addPeering(project, network, body, requestId=None)</a></code></p>
 <p class="firstline">Adds a peering to the specified network.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, network)</a></code></p>
+  <code><a href="#delete">delete(project, network, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified network.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, network)</a></code></p>
 <p class="firstline">Returns the specified network. Get a list of available networks by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a network in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -93,17 +93,17 @@
   <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="#removePeering">removePeering(project, network, body)</a></code></p>
+  <code><a href="#removePeering">removePeering(project, network, body, requestId=None)</a></code></p>
 <p class="firstline">Removes a peering from the specified network.</p>
 <p class="toc_element">
-  <code><a href="#switchToCustomMode">switchToCustomMode(project, network)</a></code></p>
+  <code><a href="#switchToCustomMode">switchToCustomMode(project, network, requestId=None)</a></code></p>
 <p class="firstline">Switches the network mode from auto subnet mode to custom subnet mode.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="addPeering">addPeering(project, network, body)</code>
+    <code class="details" id="addPeering">addPeering(project, network, body, requestId=None)</code>
   <pre>Adds a peering to the specified network.
 
 Args:
@@ -118,6 +118,7 @@
     "autoCreateRoutes": True or False, # Whether Google Compute Engine manages the routes automatically.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -125,7 +126,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -170,12 +171,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, network)</code>
+    <code class="details" id="delete">delete(project, network, requestId=None)</code>
   <pre>Deletes the specified network.
 
 Args:
   project: string, Project ID for this request. (required)
   network: string, Name of the network to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -183,7 +185,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -268,7 +270,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a network in the specified project using the data included in the request.
 
 Args:
@@ -304,6 +306,7 @@
     "crossVmEncryption": "A String", # [Output Only] Type of VM-to-VM traffic encryption for this network.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -311,7 +314,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -366,7 +369,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -433,7 +436,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="removePeering">removePeering(project, network, body)</code>
+    <code class="details" id="removePeering">removePeering(project, network, body, requestId=None)</code>
   <pre>Removes a peering from the specified network.
 
 Args:
@@ -446,6 +449,7 @@
     "name": "A String", # Name of the peering, which should conform to RFC1035.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -453,7 +457,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -498,12 +502,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="switchToCustomMode">switchToCustomMode(project, network)</code>
+    <code class="details" id="switchToCustomMode">switchToCustomMode(project, network, requestId=None)</code>
   <pre>Switches the network mode from auto subnet mode to custom subnet mode.
 
 Args:
   project: string, Project ID for this request. (required)
   network: string, Name of the network to be updated. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -511,7 +516,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.projects.html b/docs/dyn/compute_alpha.projects.html
index 8b431f9..688ee1b 100644
--- a/docs/dyn/compute_alpha.projects.html
+++ b/docs/dyn/compute_alpha.projects.html
@@ -75,16 +75,16 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#disableXpnHost">disableXpnHost(project)</a></code></p>
+  <code><a href="#disableXpnHost">disableXpnHost(project, requestId=None)</a></code></p>
 <p class="firstline">Disable this project as an XPN host project.</p>
 <p class="toc_element">
-  <code><a href="#disableXpnResource">disableXpnResource(project, body)</a></code></p>
+  <code><a href="#disableXpnResource">disableXpnResource(project, body, requestId=None)</a></code></p>
 <p class="firstline">Disable an XPN resource associated with this host project.</p>
 <p class="toc_element">
-  <code><a href="#enableXpnHost">enableXpnHost(project)</a></code></p>
+  <code><a href="#enableXpnHost">enableXpnHost(project, requestId=None)</a></code></p>
 <p class="firstline">Enable this project as an XPN host project.</p>
 <p class="toc_element">
-  <code><a href="#enableXpnResource">enableXpnResource(project, body)</a></code></p>
+  <code><a href="#enableXpnResource">enableXpnResource(project, body, requestId=None)</a></code></p>
 <p class="firstline">Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.</p>
 <p class="toc_element">
   <code><a href="#get">get(project)</a></code></p>
@@ -93,33 +93,40 @@
   <code><a href="#getXpnHost">getXpnHost(project)</a></code></p>
 <p class="firstline">Get the XPN host project that this project links to. May be empty if no link exists.</p>
 <p class="toc_element">
-  <code><a href="#getXpnResources">getXpnResources(project)</a></code></p>
+  <code><a href="#getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Get XPN resources associated with this host project.</p>
 <p class="toc_element">
-  <code><a href="#listXpnHosts">listXpnHosts(project, body)</a></code></p>
+  <code><a href="#getXpnResources_next">getXpnResources_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="#listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">List all XPN host projects visible to the user in an organization.</p>
 <p class="toc_element">
-  <code><a href="#moveDisk">moveDisk(project, body)</a></code></p>
+  <code><a href="#listXpnHosts_next">listXpnHosts_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="#moveDisk">moveDisk(project, body, requestId=None)</a></code></p>
 <p class="firstline">Moves a persistent disk from one zone to another.</p>
 <p class="toc_element">
-  <code><a href="#moveInstance">moveInstance(project, body)</a></code></p>
+  <code><a href="#moveInstance">moveInstance(project, body, requestId=None)</a></code></p>
 <p class="firstline">Moves an instance and its attached persistent disks from one zone to another.</p>
 <p class="toc_element">
-  <code><a href="#setCommonInstanceMetadata">setCommonInstanceMetadata(project, body)</a></code></p>
+  <code><a href="#setCommonInstanceMetadata">setCommonInstanceMetadata(project, body, requestId=None)</a></code></p>
 <p class="firstline">Sets metadata common to all instances within the specified project using the data included in the request.</p>
 <p class="toc_element">
-  <code><a href="#setDefaultServiceAccount">setDefaultServiceAccount(project, body)</a></code></p>
+  <code><a href="#setDefaultServiceAccount">setDefaultServiceAccount(project, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the default service account of the project. The default service account is used when a VM instance is created with the service account email address set to "default".</p>
 <p class="toc_element">
-  <code><a href="#setUsageExportBucket">setUsageExportBucket(project, body)</a></code></p>
+  <code><a href="#setUsageExportBucket">setUsageExportBucket(project, body, requestId=None)</a></code></p>
 <p class="firstline">Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="disableXpnHost">disableXpnHost(project)</code>
+    <code class="details" id="disableXpnHost">disableXpnHost(project, requestId=None)</code>
   <pre>Disable this project as an XPN host project.
 
 Args:
   project: string, Project ID for this request. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -127,7 +134,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -172,7 +179,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="disableXpnResource">disableXpnResource(project, body)</code>
+    <code class="details" id="disableXpnResource">disableXpnResource(project, body, requestId=None)</code>
   <pre>Disable an XPN resource associated with this host project.
 
 Args:
@@ -187,6 +194,7 @@
     },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -194,7 +202,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -239,11 +247,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="enableXpnHost">enableXpnHost(project)</code>
+    <code class="details" id="enableXpnHost">enableXpnHost(project, requestId=None)</code>
   <pre>Enable this project as an XPN host project.
 
 Args:
   project: string, Project ID for this request. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -251,7 +260,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -296,7 +305,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="enableXpnResource">enableXpnResource(project, body)</code>
+    <code class="details" id="enableXpnResource">enableXpnResource(project, body, requestId=None)</code>
   <pre>Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.
 
 Args:
@@ -311,6 +320,7 @@
     },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -318,7 +328,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -455,16 +465,21 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getXpnResources">getXpnResources(project)</code>
+    <code class="details" id="getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
   <pre>Get XPN resources associated with this host project.
 
 Args:
   project: string, Project ID for this request. (required)
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
 
 Returns:
   An object of the form:
 
     {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "kind": "compute#projectsGetXpnResources", # [Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of XPN resources.
     "resources": [ # XPN resources attached to this project as their XPN host.
       { # XpnResourceId
@@ -476,7 +491,21 @@
 </div>
 
 <div class="method">
-    <code class="details" id="listXpnHosts">listXpnHosts(project, body)</code>
+    <code class="details" id="getXpnResources_next">getXpnResources_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="listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
   <pre>List all XPN host projects visible to the user in an organization.
 
 Args:
@@ -488,6 +517,10 @@
     "organization": "A String", # Optional organization ID managed by Cloud Resource Manager, for which to list XPN host projects. If not specified, the organization will be inferred from the project.
   }
 
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
 
 Returns:
   An object of the form:
@@ -537,7 +570,21 @@
 </div>
 
 <div class="method">
-    <code class="details" id="moveDisk">moveDisk(project, body)</code>
+    <code class="details" id="listXpnHosts_next">listXpnHosts_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="moveDisk">moveDisk(project, body, requestId=None)</code>
   <pre>Moves a persistent disk from one zone to another.
 
 Args:
@@ -556,6 +603,7 @@
         # - zones/zone
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -563,7 +611,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -608,7 +656,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="moveInstance">moveInstance(project, body)</code>
+    <code class="details" id="moveInstance">moveInstance(project, body, requestId=None)</code>
   <pre>Moves an instance and its attached persistent disks from one zone to another.
 
 Args:
@@ -627,6 +675,7 @@
         # - zones/zone
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -634,7 +683,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -679,7 +728,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setCommonInstanceMetadata">setCommonInstanceMetadata(project, body)</code>
+    <code class="details" id="setCommonInstanceMetadata">setCommonInstanceMetadata(project, body, requestId=None)</code>
   <pre>Sets metadata common to all instances within the specified project using the data included in the request.
 
 Args:
@@ -698,6 +747,7 @@
   "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -705,7 +755,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -750,7 +800,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setDefaultServiceAccount">setDefaultServiceAccount(project, body)</code>
+    <code class="details" id="setDefaultServiceAccount">setDefaultServiceAccount(project, body, requestId=None)</code>
   <pre>Sets the default service account of the project. The default service account is used when a VM instance is created with the service account email address set to "default".
 
 Args:
@@ -762,6 +812,7 @@
     "email": "A String", # Email address of the service account.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -769,7 +820,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -814,7 +865,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setUsageExportBucket">setUsageExportBucket(project, body)</code>
+    <code class="details" id="setUsageExportBucket">setUsageExportBucket(project, body, requestId=None)</code>
   <pre>Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.
 
 Args:
@@ -827,6 +878,7 @@
   "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -834,7 +886,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionAutoscalers.html b/docs/dyn/compute_alpha.regionAutoscalers.html
index 031b48b..75bd53e 100644
--- a/docs/dyn/compute_alpha.regionAutoscalers.html
+++ b/docs/dyn/compute_alpha.regionAutoscalers.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionAutoscalers.html">regionAutoscalers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, region, autoscaler)</a></code></p>
+  <code><a href="#delete">delete(project, region, autoscaler, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified autoscaler.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, autoscaler)</a></code></p>
 <p class="firstline">Returns the specified autoscaler.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates an autoscaler in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,23 +90,24 @@
   <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, region, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, region, autoscaler, body, requestId=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, region, body, autoscaler=None)</a></code></p>
+  <code><a href="#update">update(project, region, body, requestId=None, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler 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, region, autoscaler)</code>
+    <code class="details" id="delete">delete(project, region, autoscaler, requestId=None)</code>
   <pre>Deletes the specified autoscaler.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   autoscaler: string, Name of the autoscaler to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -114,7 +115,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -230,7 +231,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates an autoscaler in the specified project using the data included in the request.
 
 Args:
@@ -297,6 +298,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -304,7 +306,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -360,7 +362,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -457,7 +459,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, region, autoscaler, body, requestId=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
@@ -525,6 +527,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -532,7 +535,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -605,7 +608,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, region, body, autoscaler=None)</code>
+    <code class="details" id="update">update(project, region, body, requestId=None, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request.
 
 Args:
@@ -672,6 +675,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
   autoscaler: string, Name of the autoscaler to update.
 
 Returns:
@@ -680,7 +684,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionBackendServices.html b/docs/dyn/compute_alpha.regionBackendServices.html
index 5551a1e..fb89877 100644
--- a/docs/dyn/compute_alpha.regionBackendServices.html
+++ b/docs/dyn/compute_alpha.regionBackendServices.html
@@ -75,7 +75,7 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionBackendServices.html">regionBackendServices</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, region, backendService)</a></code></p>
+  <code><a href="#delete">delete(project, region, backendService, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified regional BackendService resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, backendService)</a></code></p>
@@ -84,7 +84,7 @@
   <code><a href="#getHealth">getHealth(project, region, backendService, body)</a></code></p>
 <p class="firstline">Gets the most recent health check results for this regional BackendService.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a regional BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a regional backend service. Read  Restrictions and Guidelines for more information.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -93,23 +93,24 @@
   <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, region, backendService, body)</a></code></p>
+  <code><a href="#patch">patch(project, region, backendService, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, region, backendService, body)</a></code></p>
+  <code><a href="#update">update(project, region, backendService, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, region, backendService)</code>
+    <code class="details" id="delete">delete(project, region, backendService, requestId=None)</code>
   <pre>Deletes the specified regional BackendService resource.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   backendService: string, Name of the BackendService resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -117,7 +118,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -174,17 +175,12 @@
   An object of the form:
 
     { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-      "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-        "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-          "A String",
-        ],
-      },
       "connectionDraining": { # Message containing connection draining configuration.
         "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
       },
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "loadBalancingScheme": "A String",
@@ -203,6 +199,10 @@
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+          "A String",
+        ],
+        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
           "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
           "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -256,7 +256,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
-      "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+      "iap": { # Identity-Aware Proxy
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
@@ -266,6 +266,7 @@
       "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
         "A String",
       ],
+      "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -311,7 +312,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a regional BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a regional backend service. Read  Restrictions and Guidelines for more information.
 
 Args:
@@ -321,17 +322,12 @@
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -350,6 +346,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -403,7 +403,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -413,6 +413,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -424,6 +425,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -431,7 +433,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -487,7 +489,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -503,20 +505,15 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-          "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-            "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-              "A String",
-            ],
-          },
           "connectionDraining": { # Message containing connection draining configuration.
             "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
           },
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "loadBalancingScheme": "A String",
@@ -535,6 +532,10 @@
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+              "A String",
+            ],
+            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
             "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
               "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
               "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -588,7 +589,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
-          "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+          "iap": { # Identity-Aware Proxy
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
@@ -598,6 +599,7 @@
           "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
             "A String",
           ],
+          "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -630,28 +632,23 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, backendService, body)</code>
+    <code class="details" id="patch">patch(project, region, backendService, body, requestId=None)</code>
   <pre>Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -670,6 +667,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -723,7 +724,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -733,6 +734,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -744,6 +746,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -751,7 +754,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -824,7 +827,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, region, backendService, body)</code>
+    <code class="details" id="update">update(project, region, backendService, body, requestId=None)</code>
   <pre>Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.
 
 Args:
@@ -835,17 +838,12 @@
     The object takes the form of:
 
 { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
-    "backendSslPolicy": { # Message containing backend SSL policies. # Backend SSL policies to enforce.
-      "pinnedPeerCertificates": [ # List of PEM-encoded peer certificates, from which the public keys are extracted for authenticating the backend service.
-        "A String",
-      ],
-    },
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "loadBalancingScheme": "A String",
@@ -864,6 +862,10 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
+        "A String",
+      ],
+      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -917,7 +919,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -927,6 +929,7 @@
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
       "A String",
     ],
+    "securityPolicy": "A String", # [Output Only] The resource URL for the security policy associated with this backend service.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -938,6 +941,7 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -945,7 +949,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionCommitments.html b/docs/dyn/compute_alpha.regionCommitments.html
new file mode 100644
index 0000000..8bf6b3d
--- /dev/null
+++ b/docs/dyn/compute_alpha.regionCommitments.html
@@ -0,0 +1,312 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionCommitments.html">regionCommitments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, commitment)</a></code></p>
+<p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
+<p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves a list of commitments 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>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, region, commitment)</code>
+  <pre>Returns the specified commitment resource. Get a list of available commitments by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  commitment: string, Name of the commitment to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+      "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+      "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+      "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+      "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+      "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+      "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+        { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+          "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+          "type": "A String", # Type of resource for which this commitment applies.
+        },
+      ],
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
+  <pre>Creates an commitment in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+    "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+    "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+    "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+    "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+      { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+        "type": "A String", # Type of resource for which this commitment applies.
+      },
+    ],
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves a list of commitments contained within the specified region.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of Commitment resources.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Commitment resources.
+      { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+          "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+          "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+          "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+          "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+          "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+          "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+            { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+              "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+              "type": "A String", # Type of resource for which this commitment applies.
+            },
+          ],
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#commitmentList", # [Output Only] Type of resource. Always compute#commitmentList for lists of commitments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for 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="testIamPermissions">testIamPermissions(project, region, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.regionDiskTypes.html b/docs/dyn/compute_alpha.regionDiskTypes.html
index edb0390..f562a1a 100644
--- a/docs/dyn/compute_alpha.regionDiskTypes.html
+++ b/docs/dyn/compute_alpha.regionDiskTypes.html
@@ -128,7 +128,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.regionDisks.html b/docs/dyn/compute_alpha.regionDisks.html
index 6bcc0b1..b04b75f 100644
--- a/docs/dyn/compute_alpha.regionDisks.html
+++ b/docs/dyn/compute_alpha.regionDisks.html
@@ -75,16 +75,16 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionDisks.html">regionDisks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#createSnapshot">createSnapshot(project, region, disk, body, guestFlush=None)</a></code></p>
+  <code><a href="#createSnapshot">createSnapshot(project, region, disk, body, guestFlush=None, requestId=None)</a></code></p>
 <p class="firstline">Creates a snapshot of this regional disk.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, region, disk)</a></code></p>
+  <code><a href="#delete">delete(project, region, disk, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, disk)</a></code></p>
 <p class="firstline">Returns a specified regional persistent disk.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body, sourceImage=None)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None, sourceImage=None)</a></code></p>
 <p class="firstline">Creates a persistent regional disk in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -93,17 +93,17 @@
   <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="#resize">resize(project, region, disk, body)</a></code></p>
+  <code><a href="#resize">resize(project, region, disk, body, requestId=None)</a></code></p>
 <p class="firstline">Resizes the specified regional persistent disk.</p>
 <p class="toc_element">
-  <code><a href="#setLabels">setLabels(project, region, resource, body)</a></code></p>
+  <code><a href="#setLabels">setLabels(project, region, resource, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the labels on the target regional disk.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="createSnapshot">createSnapshot(project, region, disk, body, guestFlush=None)</code>
+    <code class="details" id="createSnapshot">createSnapshot(project, region, disk, body, guestFlush=None, requestId=None)</code>
   <pre>Creates a snapshot of this regional disk.
 
 Args:
@@ -149,7 +149,7 @@
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
         # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
       "a_key": "A String",
     },
     "sourceDiskId": "A String", # [Output Only] 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.
@@ -164,6 +164,7 @@
   }
 
   guestFlush: boolean, A parameter
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -171,7 +172,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -216,13 +217,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, disk)</code>
+    <code class="details" id="delete">delete(project, region, disk, requestId=None)</code>
   <pre>Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
   disk: string, Name of the regional persistent disk to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -230,7 +232,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -297,7 +299,7 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
-      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "licenses": [ # Any applicable publicly visible licenses.
@@ -382,7 +384,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body, sourceImage=None)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None, sourceImage=None)</code>
   <pre>Creates a persistent regional disk in the specified project using the data included in the request.
 
 Args:
@@ -402,7 +404,7 @@
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
     },
-    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "licenses": [ # Any applicable publicly visible licenses.
@@ -485,6 +487,7 @@
         # global/images/family/my-private-family
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
   sourceImage: string, Optional. Source image to restore onto a disk.
 
 Returns:
@@ -493,7 +496,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -549,7 +552,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -565,8 +568,8 @@
   An object of the form:
 
     { # A list of Disk resources.
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": [ # [Output Only] A list of persistent disks.
+    "nextPageToken": "A String", # This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Disk resources.
       { # A Disk resource.
           "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
@@ -578,7 +581,7 @@
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
           },
-          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "licenses": [ # Any applicable publicly visible licenses.
@@ -662,7 +665,7 @@
         },
     ],
     "kind": "compute#diskList", # [Output Only] Type of resource. Always compute#diskList for lists of disks.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
   }</pre>
 </div>
@@ -682,7 +685,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="resize">resize(project, region, disk, body)</code>
+    <code class="details" id="resize">resize(project, region, disk, body, requestId=None)</code>
   <pre>Resizes the specified regional persistent disk.
 
 Args:
@@ -696,6 +699,7 @@
     "sizeGb": "A String", # The new size of the regional persistent disk, which is specified in GB.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -703,7 +707,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -748,7 +752,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setLabels">setLabels(project, region, resource, body)</code>
+    <code class="details" id="setLabels">setLabels(project, region, resource, body, requestId=None)</code>
   <pre>Sets the labels on the target regional disk.
 
 Args:
@@ -765,6 +769,7 @@
     },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -772,7 +777,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
index a1e9d37..a2c1d28 100644
--- a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
@@ -75,19 +75,19 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionInstanceGroupManagers.html">regionInstanceGroupManagers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#abandonInstances">abandonInstances(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#abandonInstances">abandonInstances(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, region, instanceGroupManager)</a></code></p>
+  <code><a href="#delete">delete(project, region, instanceGroupManager, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified managed instance group and all of the instances in that group.</p>
 <p class="toc_element">
-  <code><a href="#deleteInstances">deleteInstances(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#deleteInstances">deleteInstances(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, instanceGroupManager)</a></code></p>
 <p class="firstline">Returns all of the details about the specified managed instance group.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,35 +96,38 @@
   <code><a href="#listManagedInstances">listManagedInstances(project, region, instanceGroupManager, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances.</p>
 <p class="toc_element">
+  <code><a href="#listManagedInstances_next">listManagedInstances_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="#patch">patch(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#patch">patch(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
 <p class="toc_element">
-  <code><a href="#resize">resize(project, region, instanceGroupManager, size)</a></code></p>
+  <code><a href="#resize">resize(project, region, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.</p>
 <p class="toc_element">
-  <code><a href="#setAutoHealingPolicies">setAutoHealingPolicies(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setAutoHealingPolicies">setAutoHealingPolicies(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Modifies the autohealing policy for the instances in this managed instance group.</p>
 <p class="toc_element">
-  <code><a href="#setInstanceTemplate">setInstanceTemplate(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setInstanceTemplate">setInstanceTemplate(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.</p>
 <p class="toc_element">
-  <code><a href="#setTargetPools">setTargetPools(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#setTargetPools">setTargetPools(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, region, instanceGroupManager, body)</a></code></p>
+  <code><a href="#update">update(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="abandonInstances">abandonInstances(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="abandonInstances">abandonInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
 Args:
@@ -140,6 +143,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -147,7 +151,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -192,13 +196,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, instanceGroupManager)</code>
+    <code class="details" id="delete">delete(project, region, instanceGroupManager, requestId=None)</code>
   <pre>Deletes the specified managed instance group and all of the instances in that group.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   instanceGroupManager: string, Name of the managed instance group to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -206,7 +211,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -251,7 +256,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="deleteInstances">deleteInstances(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="deleteInstances">deleteInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
 Args:
@@ -267,6 +272,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -274,7 +280,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -352,7 +358,7 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -373,7 +379,7 @@
         {
           "healthCheck": "A String", # The URL for the health check that signals autohealing.
           "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-          "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+          "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
             "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
             "fixed": 42, # fixed must be non-negative.
             "percent": 42, # percent must belong to [0, 100].
@@ -390,7 +396,7 @@
         "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
             #
             # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-        "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+        "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
         "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
         "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
         "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -406,16 +412,31 @@
             "percent": 42, # percent must belong to [0, 100].
           },
           "instanceTemplate": "A String",
-          "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+          "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+          "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
         },
       ],
       "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+      "distributionPolicy": { # Policy valid only for regional managed instance groups.
+        "zones": [
+          {
+            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          },
+        ],
+      },
       "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+      "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+        "zones": [
+          {
+            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          },
+        ],
+      },
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
 Args:
@@ -446,7 +467,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -467,7 +488,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -484,7 +505,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -500,13 +521,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -514,7 +551,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -570,7 +607,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -610,7 +647,7 @@
               "percent": 42, # percent must belong to [0, 100].
             },
             "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-            "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+            "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
               "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
               "fixed": 42, # fixed must be non-negative.
               "percent": 42, # percent must belong to [0, 100].
@@ -631,7 +668,7 @@
             {
               "healthCheck": "A String", # The URL for the health check that signals autohealing.
               "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-              "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+              "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
                 "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
                 "fixed": 42, # fixed must be non-negative.
                 "percent": 42, # percent must belong to [0, 100].
@@ -648,7 +685,7 @@
             "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
                 #
                 # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-            "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+            "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
             "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
             "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
             "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -664,11 +701,26 @@
                 "percent": 42, # percent must belong to [0, 100].
               },
               "instanceTemplate": "A String",
-              "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+              "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+              "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
             },
           ],
           "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+          "distributionPolicy": { # Policy valid only for regional managed instance groups.
+            "zones": [
+              {
+                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+              },
+            ],
+          },
           "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+          "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+            "zones": [
+              {
+                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+              },
+            ],
+          },
         },
     ],
     "kind": "compute#regionInstanceGroupManagerList", # [Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope.
@@ -694,9 +746,14 @@
   An object of the form:
 
     {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "managedInstances": [ # List of managed instances.
       {
         "instanceStatus": "A String", # [Output Only] The status of the instance. This field is empty when the instance does not exist.
+        "version": { # [Output Only] Intended version of this instance.
+          "instanceTemplate": "A String", # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
+          "name": "A String", # [Output Only] Name of the version.
+        },
         "lastAttempt": { # [Output Only] Information about the last attempt to create or delete the instance.
           "errors": { # [Output Only] Encountered errors during the last attempt to create or delete the instance.
             "errors": [ # [Output Only] The array of errors encountered while processing this operation.
@@ -728,6 +785,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listManagedInstances_next">listManagedInstances_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.
 
@@ -742,7 +813,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="patch">patch(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
 
 Args:
@@ -774,7 +845,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -795,7 +866,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -812,7 +883,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -828,13 +899,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -842,7 +929,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -887,7 +974,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
 Args:
@@ -903,6 +990,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -910,7 +998,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -955,7 +1043,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="resize">resize(project, region, instanceGroupManager, size)</code>
+    <code class="details" id="resize">resize(project, region, instanceGroupManager, size, requestId=None)</code>
   <pre>Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
 Args:
@@ -963,6 +1051,7 @@
   region: string, Name of the region scoping this request. (required)
   instanceGroupManager: string, Name of the managed instance group. (required)
   size: integer, Number of instances that should exist in this instance group manager. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -970,7 +1059,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1015,7 +1104,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setAutoHealingPolicies">setAutoHealingPolicies(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="setAutoHealingPolicies">setAutoHealingPolicies(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Modifies the autohealing policy for the instances in this managed instance group.
 
 Args:
@@ -1030,7 +1119,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -1039,6 +1128,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1046,7 +1136,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1091,7 +1181,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setInstanceTemplate">setInstanceTemplate(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="setInstanceTemplate">setInstanceTemplate(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.
 
 Args:
@@ -1105,6 +1195,7 @@
     "instanceTemplate": "A String", # URL of the InstanceTemplate resource from which all new instances will be created.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1112,7 +1203,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1157,7 +1248,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setTargetPools">setTargetPools(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="setTargetPools">setTargetPools(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.
 
 Args:
@@ -1174,6 +1265,7 @@
     "fingerprint": "A String", # Fingerprint of the target pools information, which is a hash of the contents. This field is used for optimistic locking when you update the target pool entries. This field is optional.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1181,7 +1273,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1254,7 +1346,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, region, instanceGroupManager, body)</code>
+    <code class="details" id="update">update(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
 Args:
@@ -1286,7 +1378,7 @@
         "percent": 42, # percent must belong to [0, 100].
       },
       "minimalAction": "A String", # Minimal action to be taken on an instance. The order of action types is: RESTART < REPLACE.
-      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
+      "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable during the update process. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a fixed value of 1 is used. At least one of { maxSurge, maxUnavailable } must be greater than 0.
         "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
         "fixed": 42, # fixed must be non-negative.
         "percent": 42, # percent must belong to [0, 100].
@@ -1307,7 +1399,7 @@
       {
         "healthCheck": "A String", # The URL for the health check that signals autohealing.
         "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
-        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when auto-healing. The instance is considered available if all of the following conditions are satisfied: 1. instance's status is RUNNING 2. instance's liveness health check result was observed to be HEALTHY at least once By default, a percent value of 100% is used.
+        "maxUnavailable": { # Encapsulates numeric value that can be either absolute or relative. # Maximum number of instances that can be unavailable when autohealing. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's liveness health check result was observed to be HEALTHY at least once. By default, a percent value of 100% is used.
           "calculated": 42, # [Output Only] Absolute value calculated based on mode: mode = fixed -> calculated = fixed = percent -> calculated = ceiling(percent/100 * base_value)
           "fixed": 42, # fixed must be non-negative.
           "percent": 42, # percent must belong to [0, 100].
@@ -1324,7 +1416,7 @@
       "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
           #
           # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
-      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified.
+      "verifying": 42, # [Output Only] The number of instances in the managed instance group that are being verified. More details regarding verification process are covered in the documentation of ManagedInstance.InstanceAction.VERIFYING enum field.
       "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
       "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
       "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
@@ -1340,13 +1432,29 @@
           "percent": 42, # percent must belong to [0, 100].
         },
         "instanceTemplate": "A String",
-        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged.
+        "tag": "A String", # Tag describing the version. Used to trigger rollout of a target version even if instance_template remains unchanged. Deprecated in favor of 'name'.
+        "name": "A String", # Name of the version. Unique among all versions in the scope of this managed instance group.
       },
     ],
     "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "distributionPolicy": { # Policy valid only for regional managed instance groups.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
     "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
+      "zones": [
+        {
+          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+        },
+      ],
+    },
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -1354,7 +1462,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionInstanceGroups.html b/docs/dyn/compute_alpha.regionInstanceGroups.html
index 4dbba65..8d8d1d5 100644
--- a/docs/dyn/compute_alpha.regionInstanceGroups.html
+++ b/docs/dyn/compute_alpha.regionInstanceGroups.html
@@ -90,7 +90,7 @@
   <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="#setNamedPorts">setNamedPorts(project, region, instanceGroup, body)</a></code></p>
+  <code><a href="#setNamedPorts">setNamedPorts(project, region, instanceGroup, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the named ports for the specified regional instance group.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
@@ -146,7 +146,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -216,7 +216,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -280,7 +280,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setNamedPorts">setNamedPorts(project, region, instanceGroup, body)</code>
+    <code class="details" id="setNamedPorts">setNamedPorts(project, region, instanceGroup, body, requestId=None)</code>
   <pre>Sets the named ports for the specified regional instance group.
 
 Args:
@@ -300,6 +300,7 @@
     "fingerprint": "A String", # The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -307,7 +308,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regionOperations.html b/docs/dyn/compute_alpha.regionOperations.html
index b2d8dc2..3d5be88 100644
--- a/docs/dyn/compute_alpha.regionOperations.html
+++ b/docs/dyn/compute_alpha.regionOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.regions.html b/docs/dyn/compute_alpha.regions.html
index 557afce..60d6bbb 100644
--- a/docs/dyn/compute_alpha.regions.html
+++ b/docs/dyn/compute_alpha.regions.html
@@ -134,7 +134,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.routers.html b/docs/dyn/compute_alpha.routers.html
index a38474f..20bf522 100644
--- a/docs/dyn/compute_alpha.routers.html
+++ b/docs/dyn/compute_alpha.routers.html
@@ -81,7 +81,7 @@
   <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, router)</a></code></p>
+  <code><a href="#delete">delete(project, region, router, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified Router resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, router)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#getRouterStatus">getRouterStatus(project, region, router)</a></code></p>
 <p class="firstline">Retrieves runtime information of the specified router.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a Router 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -99,8 +99,8 @@
   <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, region, router, body)</a></code></p>
-<p class="firstline">Updates the specified Router resource with the data included in the request. This method supports patch semantics.</p>
+  <code><a href="#patch">patch(project, region, router, body, requestId=None)</a></code></p>
+<p class="firstline">Patches the specified Router resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#preview">preview(project, region, router, body)</a></code></p>
 <p class="firstline">Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.</p>
@@ -108,7 +108,7 @@
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, region, router, body)</a></code></p>
+  <code><a href="#update">update(project, region, router, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified Router resource with the data included in the request.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -122,7 +122,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -159,10 +159,10 @@
               "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
                 {
                   "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
                   "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
                   "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
                   "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
                 },
               ],
@@ -207,13 +207,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, router)</code>
+    <code class="details" id="delete">delete(project, region, router, requestId=None)</code>
   <pre>Deletes the specified Router resource.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
   router: string, Name of the Router resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -221,7 +222,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -294,10 +295,10 @@
       "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
         {
           "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
           "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
           "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
           "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         },
       ],
@@ -335,7 +336,7 @@
           "advertisedRoutes": [ # Routes that were advertised to the remote BGP peer
             { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
                 #
-                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
                 #
                 # Packets that do not match any route in the sending instance's routing table are dropped.
               "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -365,10 +366,10 @@
                   ],
                 },
               ],
-              "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+              "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
             },
           ],
@@ -377,11 +378,10 @@
           "numLearnedRoutes": 42, # Number of routes learned from the remote BGP Peer.
         },
       ],
-      "network": "A String", # URI of the network to which this router belongs.
-      "bestRoutes": [ # Best routes for this router's network.
+      "bestRoutesForRouter": [ # Best routes learned by this router.
         { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
             #
-            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
             #
             # Packets that do not match any route in the sending instance's routing table are dropped.
           "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -411,10 +411,51 @@
               ],
             },
           ],
-          "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        },
+      ],
+      "network": "A String", # URI of the network to which this router belongs.
+      "bestRoutes": [ # Best routes for this router's network.
+        { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
+            #
+            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
+            #
+            # Packets that do not match any route in the sending instance's routing table are dropped.
+          "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
+          "nextHopVpnTunnel": "A String", # The URL to a VpnTunnel that should handle matching packets.
+          "kind": "compute#route", # [Output Only] Type of this resource. Always compute#routes for Route resources.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "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. You can specify this as a full or partial URL. For example:
+              # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
+          "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+          "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
+          "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+          "network": "A String", # Fully-qualified URL of the network that this route applies to.
+          "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+          "warnings": [ # [Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.
+            {
+              "message": "A String", # [Output Only] A human-readable description of the warning code.
+              "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+              "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                  # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                {
+                  "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                  "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                },
+              ],
+            },
+          ],
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         },
       ],
@@ -423,7 +464,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a Router resource in the specified project and region using the data included in the request.
 
 Args:
@@ -449,10 +490,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -463,6 +504,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -470,7 +512,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -526,7 +568,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -561,10 +603,10 @@
           "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
             {
               "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
               "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
               "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
               "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
             },
           ],
@@ -596,13 +638,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, router, body)</code>
-  <pre>Updates the specified Router resource with the data included in the request. This method supports patch semantics.
+    <code class="details" id="patch">patch(project, region, router, body, requestId=None)</code>
+  <pre>Patches the specified Router resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
-  router: string, Name of the Router resource to update. (required)
+  router: string, Name of the Router resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -623,10 +665,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -637,6 +679,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -644,7 +687,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -716,10 +759,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -752,10 +795,10 @@
         "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
           {
             "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
             "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
             "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
             "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
           },
         ],
@@ -797,7 +840,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, region, router, body)</code>
+    <code class="details" id="update">update(project, region, router, body, requestId=None)</code>
   <pre>Updates the specified Router resource with the data included in the request.
 
 Args:
@@ -824,10 +867,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -838,6 +881,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -845,7 +889,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.routes.html b/docs/dyn/compute_alpha.routes.html
index 7220a8e..a661f85 100644
--- a/docs/dyn/compute_alpha.routes.html
+++ b/docs/dyn/compute_alpha.routes.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.routes.html">routes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, route)</a></code></p>
+  <code><a href="#delete">delete(project, route, requestId=None)</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. Get a list of available routes by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -94,12 +94,13 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, route)</code>
+    <code class="details" id="delete">delete(project, route, requestId=None)</code>
   <pre>Deletes the specified Route resource.
 
 Args:
   project: string, Project ID for this request. (required)
   route: string, Name of the Route resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -107,7 +108,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -164,7 +165,7 @@
 
     { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
       #
-      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
       #
       # Packets that do not match any route in the sending instance's routing table are dropped.
     "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -194,16 +195,16 @@
         ],
       },
     ],
-    "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+    "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a Route resource in the specified project using the data included in the request.
 
 Args:
@@ -213,7 +214,7 @@
 
 { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
     # 
-    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
     # 
     # Packets that do not match any route in the sending instance's routing table are dropped.
   "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -243,13 +244,14 @@
       ],
     },
   ],
-  "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+  "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
   "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
   "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
 }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -257,7 +259,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -312,7 +314,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -332,7 +334,7 @@
     "items": [ # [Output Only] A list of Route resources.
       { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
           #
-          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
           #
           # Packets that do not match any route in the sending instance's routing table are dropped.
         "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -362,10 +364,10 @@
             ],
           },
         ],
-        "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+        "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       },
     ],
diff --git a/docs/dyn/compute_alpha.snapshots.html b/docs/dyn/compute_alpha.snapshots.html
index eca6c94..cafae39 100644
--- a/docs/dyn/compute_alpha.snapshots.html
+++ b/docs/dyn/compute_alpha.snapshots.html
@@ -75,18 +75,24 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.snapshots.html">snapshots</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, snapshot)</a></code></p>
+  <code><a href="#delete">delete(project, snapshot, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, snapshot)</a></code></p>
 <p class="firstline">Returns the specified Snapshot resource. Get a list of available snapshots by making a list() request.</p>
 <p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(project, resource)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
+<p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves the list of 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>
 <p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(project, resource, body)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
+<p class="toc_element">
   <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
 <p class="firstline">Sets the labels on a snapshot. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
@@ -94,7 +100,7 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, snapshot)</code>
+    <code class="details" id="delete">delete(project, snapshot, requestId=None)</code>
   <pre>Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot.
 
 For more information, see Deleting snaphots.
@@ -102,6 +108,7 @@
 Args:
   project: string, Project ID for this request. (required)
   snapshot: string, Name of the Snapshot resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -109,7 +116,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -200,7 +207,7 @@
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
           # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-      "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
         "a_key": "A String",
       },
       "sourceDiskId": "A String", # [Output Only] 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.
@@ -216,6 +223,115 @@
 </div>
 
 <div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(project, resource)</code>
+  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
   <pre>Retrieves the list of Snapshot resources contained within the specified project.
 
@@ -226,7 +342,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -280,7 +396,7 @@
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
               # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-          "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
             "a_key": "A String",
           },
           "sourceDiskId": "A String", # [Output Only] 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.
@@ -315,6 +431,215 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(project, resource, body)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+    # 
+    # 
+    # 
+    # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+    # 
+    # **Example**
+    # 
+    # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+    # 
+    # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
+        "A String",
+      ],
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+    { # A rule to be applied in a Policy.
+      "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+        { # Specifies what kind of log the caller must write
+          "counter": { # Options for counters # Counter options.
+            "field": "A String", # The field value to attribute.
+            "metric": "A String", # The metric to update.
+          },
+        },
+      ],
+      "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+        "A String",
+      ],
+      "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+        "A String",
+      ],
+      "action": "A String", # Required
+      "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+        "A String",
+      ],
+      "conditions": [ # Additional restrictions that must be met
+        { # A condition to be met.
+          "iam": "A String", # Trusted attributes supplied by the IAM system.
+          "svc": "A String", # Trusted attributes discharged by the service.
+          "value": "A String", # DEPRECATED. Use 'values' instead.
+          "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+          "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+            "A String",
+          ],
+          "op": "A String", # An operator to apply the subject with.
+        },
+      ],
+      "description": "A String", # Human-readable description of the rule.
+    },
+  ],
+  "version": 42, # Version of the `Policy`. The default version is 0.
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+      # 
+      # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+  "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Associates `members` with a `role`.
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+          #
+          # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+          #
+          # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+          #
+          # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+          #
+          #
+          #
+          # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+          #
+          # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+          #
+          # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+    },
+  ],
+  "iamOwned": True or False,
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setLabels">setLabels(project, resource, body)</code>
   <pre>Sets the labels on a snapshot. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
@@ -338,7 +663,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.sslCertificates.html b/docs/dyn/compute_alpha.sslCertificates.html
index 0a07b53..4e25381 100644
--- a/docs/dyn/compute_alpha.sslCertificates.html
+++ b/docs/dyn/compute_alpha.sslCertificates.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.sslCertificates.html">sslCertificates</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, sslCertificate)</a></code></p>
+  <code><a href="#delete">delete(project, sslCertificate, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified SslCertificate resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, sslCertificate)</a></code></p>
 <p class="firstline">Returns the specified SslCertificate resource. Get a list of available SSL certificates by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a SslCertificate resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -94,12 +94,13 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, sslCertificate)</code>
+    <code class="details" id="delete">delete(project, sslCertificate, requestId=None)</code>
   <pre>Deletes the specified SslCertificate resource.
 
 Args:
   project: string, Project ID for this request. (required)
   sslCertificate: string, Name of the SslCertificate resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -107,7 +108,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -175,7 +176,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a SslCertificate resource in the specified project using the data included in the request.
 
 Args:
@@ -194,6 +195,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -201,7 +203,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -256,7 +258,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.subnetworks.html b/docs/dyn/compute_alpha.subnetworks.html
index e217f75..54bd585 100644
--- a/docs/dyn/compute_alpha.subnetworks.html
+++ b/docs/dyn/compute_alpha.subnetworks.html
@@ -81,10 +81,10 @@
   <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, subnetwork)</a></code></p>
+  <code><a href="#delete">delete(project, region, subnetwork, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified subnetwork.</p>
 <p class="toc_element">
-  <code><a href="#expandIpCidrRange">expandIpCidrRange(project, region, subnetwork, body)</a></code></p>
+  <code><a href="#expandIpCidrRange">expandIpCidrRange(project, region, subnetwork, body, requestId=None)</a></code></p>
 <p class="firstline">Expands the IP CIDR range of the subnetwork to a specified value.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, subnetwork)</a></code></p>
@@ -93,7 +93,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(project, region, resource)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a subnetwork in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -105,7 +105,7 @@
   <code><a href="#setIamPolicy">setIamPolicy(project, region, resource, body)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
 <p class="toc_element">
-  <code><a href="#setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</a></code></p>
+  <code><a href="#setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body, requestId=None)</a></code></p>
 <p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
@@ -122,7 +122,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -149,13 +149,13 @@
               "region": "A String", # URL of the region where the Subnetwork resides.
               "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
                 { # Represents a secondary IP range of a subnetwork.
-                  "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network.
+                  "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
                   "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
                 },
               ],
               "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
               "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
               "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -196,13 +196,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, subnetwork)</code>
+    <code class="details" id="delete">delete(project, region, subnetwork, requestId=None)</code>
   <pre>Deletes the specified subnetwork.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   subnetwork: string, Name of the Subnetwork resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -210,7 +211,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -255,7 +256,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="expandIpCidrRange">expandIpCidrRange(project, region, subnetwork, body)</code>
+    <code class="details" id="expandIpCidrRange">expandIpCidrRange(project, region, subnetwork, body, requestId=None)</code>
   <pre>Expands the IP CIDR range of the subnetwork to a specified value.
 
 Args:
@@ -269,6 +270,7 @@
     "ipCidrRange": "A String", # The IP (in CIDR format or netmask) of internal addresses that are legal on this Subnetwork. This range should be disjoint from other subnetworks within this network. This range can only be larger than (i.e. a superset of) the range previously defined before the update.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -276,7 +278,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -339,13 +341,13 @@
       "region": "A String", # URL of the region where the Subnetwork resides.
       "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
         { # Represents a secondary IP range of a subnetwork.
-          "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network.
+          "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
           "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
         },
       ],
       "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
       "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
       "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -376,16 +378,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -460,7 +466,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a subnetwork in the specified project using the data included in the request.
 
 Args:
@@ -476,19 +482,20 @@
     "region": "A String", # URL of the region where the Subnetwork resides.
     "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
       { # Represents a secondary IP range of a subnetwork.
-        "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network.
+        "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
         "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
       },
     ],
     "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
     "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
     "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -496,7 +503,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -552,7 +559,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -577,13 +584,13 @@
           "region": "A String", # URL of the region where the Subnetwork resides.
           "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
             { # Represents a secondary IP range of a subnetwork.
-              "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network.
+              "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
               "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
             },
           ],
           "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
           "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
           "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -632,16 +639,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -729,16 +740,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -813,7 +828,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</code>
+    <code class="details" id="setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body, requestId=None)</code>
   <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.
 
 Args:
@@ -827,6 +842,7 @@
     "privateIpGoogleAccess": True or False,
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -834,7 +850,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetHttpProxies.html b/docs/dyn/compute_alpha.targetHttpProxies.html
index 10a0d18..8307c27 100644
--- a/docs/dyn/compute_alpha.targetHttpProxies.html
+++ b/docs/dyn/compute_alpha.targetHttpProxies.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.targetHttpProxies.html">targetHttpProxies</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, targetHttpProxy)</a></code></p>
+  <code><a href="#delete">delete(project, targetHttpProxy, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified TargetHttpProxy resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, targetHttpProxy)</a></code></p>
 <p class="firstline">Returns the specified TargetHttpProxy resource. Get a list of available target HTTP proxies by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a TargetHttpProxy resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,19 +90,20 @@
   <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="#setUrlMap">setUrlMap(project, targetHttpProxy, body)</a></code></p>
+  <code><a href="#setUrlMap">setUrlMap(project, targetHttpProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the URL map for TargetHttpProxy.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, targetHttpProxy)</code>
+    <code class="details" id="delete">delete(project, targetHttpProxy, requestId=None)</code>
   <pre>Deletes the specified TargetHttpProxy resource.
 
 Args:
   project: string, Project ID for this request. (required)
   targetHttpProxy: string, Name of the TargetHttpProxy resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -110,7 +111,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -177,7 +178,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a TargetHttpProxy resource in the specified project using the data included in the request.
 
 Args:
@@ -195,6 +196,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -202,7 +204,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -257,7 +259,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -306,7 +308,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setUrlMap">setUrlMap(project, targetHttpProxy, body)</code>
+    <code class="details" id="setUrlMap">setUrlMap(project, targetHttpProxy, body, requestId=None)</code>
   <pre>Changes the URL map for TargetHttpProxy.
 
 Args:
@@ -319,6 +321,7 @@
     "urlMap": "A String",
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -326,7 +329,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetHttpsProxies.html b/docs/dyn/compute_alpha.targetHttpsProxies.html
index 5faeb04..661af6d 100644
--- a/docs/dyn/compute_alpha.targetHttpsProxies.html
+++ b/docs/dyn/compute_alpha.targetHttpsProxies.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.targetHttpsProxies.html">targetHttpsProxies</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, targetHttpsProxy)</a></code></p>
+  <code><a href="#delete">delete(project, targetHttpsProxy, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified TargetHttpsProxy resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, targetHttpsProxy)</a></code></p>
 <p class="firstline">Returns the specified TargetHttpsProxy resource. Get a list of available target HTTPS proxies by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a TargetHttpsProxy resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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="#setSslCertificates">setSslCertificates(project, targetHttpsProxy, body)</a></code></p>
+  <code><a href="#setSslCertificates">setSslCertificates(project, targetHttpsProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Replaces SslCertificates for TargetHttpsProxy.</p>
 <p class="toc_element">
-  <code><a href="#setUrlMap">setUrlMap(project, targetHttpsProxy, body)</a></code></p>
+  <code><a href="#setUrlMap">setUrlMap(project, targetHttpsProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the URL map for TargetHttpsProxy.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, targetHttpsProxy)</code>
+    <code class="details" id="delete">delete(project, targetHttpsProxy, requestId=None)</code>
   <pre>Deletes the specified TargetHttpsProxy resource.
 
 Args:
   project: string, Project ID for this request. (required)
   targetHttpsProxy: string, Name of the TargetHttpsProxy resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -187,7 +188,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a TargetHttpsProxy resource in the specified project using the data included in the request.
 
 Args:
@@ -212,6 +213,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -219,7 +221,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -274,7 +276,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -330,7 +332,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setSslCertificates">setSslCertificates(project, targetHttpsProxy, body)</code>
+    <code class="details" id="setSslCertificates">setSslCertificates(project, targetHttpsProxy, body, requestId=None)</code>
   <pre>Replaces SslCertificates for TargetHttpsProxy.
 
 Args:
@@ -345,6 +347,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -352,7 +355,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -397,7 +400,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setUrlMap">setUrlMap(project, targetHttpsProxy, body)</code>
+    <code class="details" id="setUrlMap">setUrlMap(project, targetHttpsProxy, body, requestId=None)</code>
   <pre>Changes the URL map for TargetHttpsProxy.
 
 Args:
@@ -410,6 +413,7 @@
     "urlMap": "A String",
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -417,7 +421,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetInstances.html b/docs/dyn/compute_alpha.targetInstances.html
index 217e65b..ed20b01 100644
--- a/docs/dyn/compute_alpha.targetInstances.html
+++ b/docs/dyn/compute_alpha.targetInstances.html
@@ -81,13 +81,13 @@
   <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>
+  <code><a href="#delete">delete(project, zone, targetInstance, requestId=None)</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. Get a list of available target instances by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+  <code><a href="#insert">insert(project, zone, body, requestId=None)</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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -179,13 +179,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, zone, targetInstance)</code>
+    <code class="details" id="delete">delete(project, zone, targetInstance, requestId=None)</code>
   <pre>Deletes the specified TargetInstance resource.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, Name of the zone scoping this request. (required)
   targetInstance: string, Name of the TargetInstance resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -193,7 +194,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -266,7 +267,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, zone, body)</code>
+    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates a TargetInstance resource in the specified project and zone using the data included in the request.
 
 Args:
@@ -290,6 +291,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -297,7 +299,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -353,7 +355,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.targetPools.html b/docs/dyn/compute_alpha.targetPools.html
index a76c463..452815b 100644
--- a/docs/dyn/compute_alpha.targetPools.html
+++ b/docs/dyn/compute_alpha.targetPools.html
@@ -75,10 +75,10 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.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>
+  <code><a href="#addHealthCheck">addHealthCheck(project, region, targetPool, body, requestId=None)</a></code></p>
 <p class="firstline">Adds health check URLs to a target pool.</p>
 <p class="toc_element">
-  <code><a href="#addInstance">addInstance(project, region, targetPool, body)</a></code></p>
+  <code><a href="#addInstance">addInstance(project, region, targetPool, body, requestId=None)</a></code></p>
 <p class="firstline">Adds an instance to a target pool.</p>
 <p class="toc_element">
   <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -87,7 +87,7 @@
   <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>
+  <code><a href="#delete">delete(project, region, targetPool, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified target pool.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, targetPool)</a></code></p>
@@ -96,7 +96,7 @@
   <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 instance that is referenced by the given target pool.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a target pool 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -105,20 +105,20 @@
   <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>
+  <code><a href="#removeHealthCheck">removeHealthCheck(project, region, targetPool, body, requestId=None)</a></code></p>
 <p class="firstline">Removes health check URL from a target pool.</p>
 <p class="toc_element">
-  <code><a href="#removeInstance">removeInstance(project, region, targetPool, body)</a></code></p>
+  <code><a href="#removeInstance">removeInstance(project, region, targetPool, body, requestId=None)</a></code></p>
 <p class="firstline">Removes instance URL from a target pool.</p>
 <p class="toc_element">
-  <code><a href="#setBackup">setBackup(project, region, targetPool, body, failoverRatio=None)</a></code></p>
+  <code><a href="#setBackup">setBackup(project, region, targetPool, body, failoverRatio=None, requestId=None)</a></code></p>
 <p class="firstline">Changes a backup target pool's configurations.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="addHealthCheck">addHealthCheck(project, region, targetPool, body)</code>
+    <code class="details" id="addHealthCheck">addHealthCheck(project, region, targetPool, body, requestId=None)</code>
   <pre>Adds health check URLs to a target pool.
 
 Args:
@@ -129,7 +129,7 @@
     The object takes the form of:
 
 {
-    "healthChecks": [ # A list of HttpHealthCheck resources to add to the target pool.
+    "healthChecks": [ # The HttpHealthCheck to add to the target pool.
       { # A full or valid partial URL to a health check. For example, the following are valid URLs:
           # - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
           # - projects/project-id/global/httpHealthChecks/health-check
@@ -139,6 +139,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -146,7 +147,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -191,7 +192,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="addInstance">addInstance(project, region, targetPool, body)</code>
+    <code class="details" id="addInstance">addInstance(project, region, targetPool, body, requestId=None)</code>
   <pre>Adds an instance to a target pool.
 
 Args:
@@ -212,6 +213,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -219,7 +221,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -274,7 +276,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -305,7 +307,7 @@
           ],
         },
         "targetPools": [ # List of target pools contained in this scope.
-          { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+          { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
               "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -326,7 +328,7 @@
                   # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-              "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+              "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
                 "A String",
               ],
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -358,13 +360,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, targetPool)</code>
+    <code class="details" id="delete">delete(project, region, targetPool, requestId=None)</code>
   <pre>Deletes the specified target pool.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   targetPool: string, Name of the TargetPool resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -372,7 +375,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -428,7 +431,7 @@
 Returns:
   An object of the form:
 
-    { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+    { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
       "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -449,7 +452,7 @@
           # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-      "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+      "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
         "A String",
       ],
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -492,7 +495,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a target pool in the specified project and region using the data included in the request.
 
 Args:
@@ -501,7 +504,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+{ # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
     "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -522,7 +525,7 @@
         # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-    "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+    "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
       "A String",
     ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -531,6 +534,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -538,7 +542,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -594,7 +598,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -612,7 +616,7 @@
     { # Contains a list of TargetPool resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of TargetPool resources.
-      { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+      { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
           "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -633,7 +637,7 @@
               # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-          "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+          "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
             "A String",
           ],
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -663,7 +667,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="removeHealthCheck">removeHealthCheck(project, region, targetPool, body)</code>
+    <code class="details" id="removeHealthCheck">removeHealthCheck(project, region, targetPool, body, requestId=None)</code>
   <pre>Removes health check URL from a target pool.
 
 Args:
@@ -687,6 +691,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -694,7 +699,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -739,7 +744,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="removeInstance">removeInstance(project, region, targetPool, body)</code>
+    <code class="details" id="removeInstance">removeInstance(project, region, targetPool, body, requestId=None)</code>
   <pre>Removes instance URL from a target pool.
 
 Args:
@@ -757,6 +762,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -764,7 +770,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -809,7 +815,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setBackup">setBackup(project, region, targetPool, body, failoverRatio=None)</code>
+    <code class="details" id="setBackup">setBackup(project, region, targetPool, body, failoverRatio=None, requestId=None)</code>
   <pre>Changes a backup target pool's configurations.
 
 Args:
@@ -824,6 +830,7 @@
   }
 
   failoverRatio: number, New failoverRatio value for the target pool.
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -831,7 +838,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetSslProxies.html b/docs/dyn/compute_alpha.targetSslProxies.html
index 6568e02..452fe2a 100644
--- a/docs/dyn/compute_alpha.targetSslProxies.html
+++ b/docs/dyn/compute_alpha.targetSslProxies.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.targetSslProxies.html">targetSslProxies</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, targetSslProxy)</a></code></p>
+  <code><a href="#delete">delete(project, targetSslProxy, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified TargetSslProxy resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, targetSslProxy)</a></code></p>
 <p class="firstline">Returns the specified TargetSslProxy resource. Get a list of available target SSL proxies by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a TargetSslProxy resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,25 +90,26 @@
   <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="#setBackendService">setBackendService(project, targetSslProxy, body)</a></code></p>
+  <code><a href="#setBackendService">setBackendService(project, targetSslProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the BackendService for TargetSslProxy.</p>
 <p class="toc_element">
-  <code><a href="#setProxyHeader">setProxyHeader(project, targetSslProxy, body)</a></code></p>
+  <code><a href="#setProxyHeader">setProxyHeader(project, targetSslProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the ProxyHeaderType for TargetSslProxy.</p>
 <p class="toc_element">
-  <code><a href="#setSslCertificates">setSslCertificates(project, targetSslProxy, body)</a></code></p>
+  <code><a href="#setSslCertificates">setSslCertificates(project, targetSslProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes SslCertificates for TargetSslProxy.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, targetSslProxy)</code>
+    <code class="details" id="delete">delete(project, targetSslProxy, requestId=None)</code>
   <pre>Deletes the specified TargetSslProxy resource.
 
 Args:
   project: string, Project ID for this request. (required)
   targetSslProxy: string, Name of the TargetSslProxy resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -116,7 +117,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -188,7 +189,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a TargetSslProxy resource in the specified project using the data included in the request.
 
 Args:
@@ -211,6 +212,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -218,7 +220,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -273,7 +275,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -327,7 +329,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setBackendService">setBackendService(project, targetSslProxy, body)</code>
+    <code class="details" id="setBackendService">setBackendService(project, targetSslProxy, body, requestId=None)</code>
   <pre>Changes the BackendService for TargetSslProxy.
 
 Args:
@@ -340,6 +342,7 @@
     "service": "A String", # The URL of the new BackendService resource for the targetSslProxy.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -347,7 +350,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -392,7 +395,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setProxyHeader">setProxyHeader(project, targetSslProxy, body)</code>
+    <code class="details" id="setProxyHeader">setProxyHeader(project, targetSslProxy, body, requestId=None)</code>
   <pre>Changes the ProxyHeaderType for TargetSslProxy.
 
 Args:
@@ -405,6 +408,7 @@
     "proxyHeader": "A String", # The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -412,7 +416,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -457,7 +461,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setSslCertificates">setSslCertificates(project, targetSslProxy, body)</code>
+    <code class="details" id="setSslCertificates">setSslCertificates(project, targetSslProxy, body, requestId=None)</code>
   <pre>Changes SslCertificates for TargetSslProxy.
 
 Args:
@@ -472,6 +476,7 @@
     ],
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -479,7 +484,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetTcpProxies.html b/docs/dyn/compute_alpha.targetTcpProxies.html
index 6b2b031..0d67b92 100644
--- a/docs/dyn/compute_alpha.targetTcpProxies.html
+++ b/docs/dyn/compute_alpha.targetTcpProxies.html
@@ -75,13 +75,13 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.targetTcpProxies.html">targetTcpProxies</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, targetTcpProxy)</a></code></p>
+  <code><a href="#delete">delete(project, targetTcpProxy, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified TargetTcpProxy resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, targetTcpProxy)</a></code></p>
 <p class="firstline">Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a TargetTcpProxy resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -90,22 +90,23 @@
   <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="#setBackendService">setBackendService(project, targetTcpProxy, body)</a></code></p>
+  <code><a href="#setBackendService">setBackendService(project, targetTcpProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the BackendService for TargetTcpProxy.</p>
 <p class="toc_element">
-  <code><a href="#setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</a></code></p>
+  <code><a href="#setProxyHeader">setProxyHeader(project, targetTcpProxy, body, requestId=None)</a></code></p>
 <p class="firstline">Changes the ProxyHeaderType for TargetTcpProxy.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, targetTcpProxy)</code>
+    <code class="details" id="delete">delete(project, targetTcpProxy, requestId=None)</code>
   <pre>Deletes the specified TargetTcpProxy resource.
 
 Args:
   project: string, Project ID for this request. (required)
   targetTcpProxy: string, Name of the TargetTcpProxy resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -113,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -181,7 +182,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a TargetTcpProxy resource in the specified project using the data included in the request.
 
 Args:
@@ -200,6 +201,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -207,7 +209,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -262,7 +264,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -312,7 +314,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setBackendService">setBackendService(project, targetTcpProxy, body)</code>
+    <code class="details" id="setBackendService">setBackendService(project, targetTcpProxy, body, requestId=None)</code>
   <pre>Changes the BackendService for TargetTcpProxy.
 
 Args:
@@ -325,6 +327,7 @@
     "service": "A String", # The URL of the new BackendService resource for the targetTcpProxy.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -332,7 +335,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -377,7 +380,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</code>
+    <code class="details" id="setProxyHeader">setProxyHeader(project, targetTcpProxy, body, requestId=None)</code>
   <pre>Changes the ProxyHeaderType for TargetTcpProxy.
 
 Args:
@@ -390,6 +393,7 @@
     "proxyHeader": "A String", # The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -397,7 +401,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.targetVpnGateways.html b/docs/dyn/compute_alpha.targetVpnGateways.html
index 1f75644..903a820 100644
--- a/docs/dyn/compute_alpha.targetVpnGateways.html
+++ b/docs/dyn/compute_alpha.targetVpnGateways.html
@@ -81,13 +81,13 @@
   <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, targetVpnGateway)</a></code></p>
+  <code><a href="#delete">delete(project, region, targetVpnGateway, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified target VPN gateway.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, targetVpnGateway)</a></code></p>
 <p class="firstline">Returns the specified target VPN gateway. Get a list of available target VPN gateways by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a target VPN gateway 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -182,13 +182,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, targetVpnGateway)</code>
+    <code class="details" id="delete">delete(project, region, targetVpnGateway, requestId=None)</code>
   <pre>Deletes the specified target VPN gateway.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
   targetVpnGateway: string, Name of the target VPN gateway to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -196,7 +197,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +273,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a target VPN gateway in the specified project and region using the data included in the request.
 
 Args:
@@ -299,6 +300,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -306,7 +308,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -362,7 +364,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_alpha.urlMaps.html b/docs/dyn/compute_alpha.urlMaps.html
index fc172a9..6e8748c 100644
--- a/docs/dyn/compute_alpha.urlMaps.html
+++ b/docs/dyn/compute_alpha.urlMaps.html
@@ -75,16 +75,16 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.urlMaps.html">urlMaps</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(project, urlMap)</a></code></p>
+  <code><a href="#delete">delete(project, urlMap, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified UrlMap resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, urlMap)</a></code></p>
 <p class="firstline">Returns the specified UrlMap resource. Get a list of available URL maps by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a UrlMap resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
-  <code><a href="#invalidateCache">invalidateCache(project, urlMap, body)</a></code></p>
+  <code><a href="#invalidateCache">invalidateCache(project, urlMap, body, requestId=None)</a></code></p>
 <p class="firstline">Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -93,25 +93,26 @@
   <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, urlMap, body)</a></code></p>
-<p class="firstline">Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
+  <code><a href="#patch">patch(project, urlMap, body, requestId=None)</a></code></p>
+<p class="firstline">Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
-  <code><a href="#update">update(project, urlMap, body)</a></code></p>
+  <code><a href="#update">update(project, urlMap, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified UrlMap resource with the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#validate">validate(project, urlMap, body)</a></code></p>
 <p class="firstline">Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(project, urlMap)</code>
+    <code class="details" id="delete">delete(project, urlMap, requestId=None)</code>
   <pre>Deletes the specified UrlMap resource.
 
 Args:
   project: string, Project ID for this request. (required)
   urlMap: string, Name of the UrlMap resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -119,7 +120,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -222,7 +223,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
   <pre>Creates a UrlMap resource in the specified project using the data included in the request.
 
 Args:
@@ -276,6 +277,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -283,7 +285,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -328,7 +330,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="invalidateCache">invalidateCache(project, urlMap, body)</code>
+    <code class="details" id="invalidateCache">invalidateCache(project, urlMap, body, requestId=None)</code>
   <pre>Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.
 
 Args:
@@ -342,6 +344,7 @@
     "host": "A String", # If set, this invalidation rule will only apply to requests with a Host header matching host.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -349,7 +352,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -404,7 +407,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -489,12 +492,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, urlMap, body)</code>
-  <pre>Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.
+    <code class="details" id="patch">patch(project, urlMap, body, requestId=None)</code>
+  <pre>Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  urlMap: string, Name of the UrlMap resource to update. (required)
+  urlMap: string, Name of the UrlMap resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -544,6 +547,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -551,7 +555,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -623,7 +627,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(project, urlMap, body)</code>
+    <code class="details" id="update">update(project, urlMap, body, requestId=None)</code>
   <pre>Updates the specified UrlMap resource with the data included in the request.
 
 Args:
@@ -678,6 +682,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -685,7 +690,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.vpnTunnels.html b/docs/dyn/compute_alpha.vpnTunnels.html
index db21a8f..dbae771 100644
--- a/docs/dyn/compute_alpha.vpnTunnels.html
+++ b/docs/dyn/compute_alpha.vpnTunnels.html
@@ -81,13 +81,13 @@
   <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, vpnTunnel)</a></code></p>
+  <code><a href="#delete">delete(project, region, vpnTunnel, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified VpnTunnel resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, region, vpnTunnel)</a></code></p>
 <p class="firstline">Returns the specified VpnTunnel resource. Get a list of available VPN tunnels by making a list() request.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, region, body)</a></code></p>
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
 <p class="firstline">Creates a VpnTunnel 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -96,6 +96,9 @@
   <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="#setLabels">setLabels(project, region, resource, body, requestId=None)</a></code></p>
+<p class="firstline">Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
@@ -110,7 +113,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -134,11 +137,11 @@
               "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
               "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
               "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "peerIp": "A String", # IP address of the peer VPN gateway.
+              "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
               "labelFingerprint": "A String", # A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
                   #
                   # To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.
@@ -146,7 +149,7 @@
                 "a_key": "A String",
               },
               "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
-              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "status": "A String", # [Output Only] The status of the VPN tunnel.
@@ -194,13 +197,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(project, region, vpnTunnel)</code>
+    <code class="details" id="delete">delete(project, region, vpnTunnel, requestId=None)</code>
   <pre>Deletes the specified VpnTunnel resource.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
   vpnTunnel: string, Name of the VpnTunnel resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -208,7 +212,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -268,11 +272,11 @@
       "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
       "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
       "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "peerIp": "A String", # IP address of the peer VPN gateway.
+      "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
           # To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.
@@ -280,7 +284,7 @@
         "a_key": "A String",
       },
       "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
-      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "status": "A String", # [Output Only] The status of the VPN tunnel.
@@ -296,7 +300,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a VpnTunnel resource in the specified project and region using the data included in the request.
 
 Args:
@@ -309,11 +313,11 @@
     "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
     "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
     "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "peerIp": "A String", # IP address of the peer VPN gateway.
+    "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
         # To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.
@@ -321,7 +325,7 @@
       "a_key": "A String",
     },
     "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
-    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "status": "A String", # [Output Only] The status of the VPN tunnel.
@@ -335,6 +339,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
 
 Returns:
   An object of the form:
@@ -342,7 +347,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -398,7 +403,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -420,11 +425,11 @@
           "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
           "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
           "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "peerIp": "A String", # IP address of the peer VPN gateway.
+          "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
               # To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.
@@ -432,7 +437,7 @@
             "a_key": "A String",
           },
           "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
-          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "status": "A String", # [Output Only] The status of the VPN tunnel.
@@ -467,6 +472,76 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setLabels">setLabels(project, region, resource, body, requestId=None)</code>
+  <pre>Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # The labels to set for this resource.
+      "a_key": "A String",
+    },
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(project, region, resource, body)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 
diff --git a/docs/dyn/compute_alpha.zoneOperations.html b/docs/dyn/compute_alpha.zoneOperations.html
index 4feaca1..f39b747 100644
--- a/docs/dyn/compute_alpha.zoneOperations.html
+++ b/docs/dyn/compute_alpha.zoneOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_alpha.zones.html b/docs/dyn/compute_alpha.zones.html
index ef4e4c3..09ccb85 100644
--- a/docs/dyn/compute_alpha.zones.html
+++ b/docs/dyn/compute_alpha.zones.html
@@ -107,6 +107,9 @@
       "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
     "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+    "availableCpuPlatforms": [ # [Output Only] Available cpu/platform selections for the zone.
+      "A String",
+    ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -125,7 +128,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -155,6 +158,9 @@
           "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
         "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+        "availableCpuPlatforms": [ # [Output Only] Available cpu/platform selections for the zone.
+          "A String",
+        ],
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
diff --git a/docs/dyn/compute_beta.acceleratorTypes.html b/docs/dyn/compute_beta.acceleratorTypes.html
new file mode 100644
index 0000000..d1711c8
--- /dev/null
+++ b/docs/dyn/compute_beta.acceleratorTypes.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_beta.html">Compute Engine API</a> . <a href="compute_beta.acceleratorTypes.html">acceleratorTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of accelerator types.</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, acceleratorType)</a></code></p>
+<p class="firstline">Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves a list of accelerator types 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, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of accelerator types.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # [Output Only] A map of scoped accelerator type lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of accelerator types.
+        "warning": { # [Output Only] An informational warning that appears when the accelerator types list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+        "acceleratorTypes": [ # [Output Only] List of accelerator types contained in this scope.
+          { # An Accelerator Type resource.
+            "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+            "description": "A String", # [Output Only] An optional textual description of the resource.
+            "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+            "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+              "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+              "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+              "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+              "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+              "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+            },
+            "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+            "name": "A String", # [Output Only] Name of the resource.
+          },
+        ],
+      },
+    },
+    "kind": "compute#acceleratorTypeAggregatedList", # [Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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, acceleratorType)</code>
+  <pre>Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  acceleratorType: string, Name of the accelerator type to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Accelerator Type resource.
+    "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+    "description": "A String", # [Output Only] An optional textual description of the resource.
+    "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+      "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+      "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+      "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+    },
+    "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "name": "A String", # [Output Only] Name of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves a list of accelerator types available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of accelerator types.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # A list of AcceleratorType resources.
+      { # An Accelerator Type resource.
+        "kind": "compute#acceleratorType", # [Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.
+        "description": "A String", # [Output Only] An optional textual description of the resource.
+        "zone": "A String", # [Output Only] The name of the zone where the accelerator type resides, such as us-central1-a.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this accelerator type.
+          "deleted": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+          "deprecated": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+          "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+        },
+        "maximumCardsPerInstance": 42, # [Output Only] Maximum accelerator cards allowed per instance.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+        "name": "A String", # [Output Only] Name of the resource.
+      },
+    ],
+    "kind": "compute#acceleratorTypeList", # [Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<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_beta.addresses.html b/docs/dyn/compute_beta.addresses.html
index 320cd50..0041b3b 100644
--- a/docs/dyn/compute_beta.addresses.html
+++ b/docs/dyn/compute_beta.addresses.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -146,7 +146,7 @@
               "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-              "address": "A String", # The static external IP address represented by this resource.
+              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
@@ -193,7 +193,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -254,7 +254,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -280,7 +280,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -297,7 +297,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -353,7 +353,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -376,7 +376,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_beta.autoscalers.html b/docs/dyn/compute_beta.autoscalers.html
index 130e876..f3d190f 100644
--- a/docs/dyn/compute_beta.autoscalers.html
+++ b/docs/dyn/compute_beta.autoscalers.html
@@ -116,7 +116,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -234,7 +234,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -408,7 +408,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -464,7 +464,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -620,7 +620,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -760,7 +760,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.backendBuckets.html b/docs/dyn/compute_beta.backendBuckets.html
index 666fb95..22c6bf6 100644
--- a/docs/dyn/compute_beta.backendBuckets.html
+++ b/docs/dyn/compute_beta.backendBuckets.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -204,7 +204,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -259,7 +259,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -336,7 +336,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -408,7 +408,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.backendServices.html b/docs/dyn/compute_beta.backendServices.html
index 7132a80..7f55d03 100644
--- a/docs/dyn/compute_beta.backendServices.html
+++ b/docs/dyn/compute_beta.backendServices.html
@@ -119,7 +119,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -157,11 +157,23 @@
               "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
               "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
                   #
-                  # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+                  # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
                   #
                   # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+              "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+                "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+                  "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+                  "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+                  "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                    "A String",
+                  ],
+                  "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                    "A String",
+                  ],
+                  "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+                },
+              },
               "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
                   #
                   # When the load balancing scheme is INTERNAL, this field is not used.
@@ -205,6 +217,7 @@
                       # This cannot be used for internal load balancing.
                 },
               ],
+              "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
               "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
               "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
                   #
@@ -222,7 +235,7 @@
                   #
                   # When the protocol is UDP, this field is not used.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+              "iap": { # Identity-Aware Proxy
                 "oauth2ClientId": "A String",
                 "enabled": True or False,
                 "oauth2ClientSecret": "A String",
@@ -268,7 +281,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -330,11 +343,23 @@
       "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+      "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+          "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+          "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+          "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+        },
+      },
       "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
@@ -378,6 +403,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
+      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -395,7 +421,7 @@
           #
           # When the protocol is UDP, this field is not used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+      "iap": { # Identity-Aware Proxy
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
@@ -453,11 +479,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -501,6 +539,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -518,7 +557,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -535,7 +574,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -590,7 +629,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -606,7 +645,7 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
           "connectionDraining": { # Message containing connection draining configuration.
@@ -615,11 +654,23 @@
           "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+          "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+              "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+              "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+              "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+            },
+          },
           "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
@@ -663,6 +714,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
+          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -680,7 +732,7 @@
               #
               # When the protocol is UDP, this field is not used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+          "iap": { # Identity-Aware Proxy
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
@@ -727,11 +779,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -775,6 +839,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -792,7 +857,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -809,7 +874,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -897,11 +962,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -945,6 +1022,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -962,7 +1040,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -979,7 +1057,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.commitments.html b/docs/dyn/compute_beta.commitments.html
new file mode 100644
index 0000000..2c1ac5e
--- /dev/null
+++ b/docs/dyn/compute_beta.commitments.html
@@ -0,0 +1,169 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_beta.html">Compute Engine API</a> . <a href="compute_beta.commitments.html">commitments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of commitments.</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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of commitments.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # Commitments by scope.
+      "a_key": { # [Output Only] Name of the scope containing this set of commitments.
+        "warning": { # [Output Only] Informational warning which replaces the list of commitments when the list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+        "commitments": [ # [Output Only] List of commitments contained in this scope.
+          { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+            "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+            "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+            "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+            "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+            "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+            "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+            "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+              { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+                "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+                "type": "A String", # Type of resource for which this commitment applies.
+              },
+            ],
+            "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          },
+        ],
+      },
+    },
+    "kind": "compute#commitmentAggregatedList", # [Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_beta.diskTypes.html b/docs/dyn/compute_beta.diskTypes.html
index d720f4c..16994bf 100644
--- a/docs/dyn/compute_beta.diskTypes.html
+++ b/docs/dyn/compute_beta.diskTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -217,7 +217,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.disks.html b/docs/dyn/compute_beta.disks.html
index a81f87b..06f8894 100644
--- a/docs/dyn/compute_beta.disks.html
+++ b/docs/dyn/compute_beta.disks.html
@@ -119,7 +119,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -135,7 +135,7 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. Acceptable values are 0 to 500, inclusive. (Default: 500)
     "items": { # [Output Only] A map of scoped disk lists.
       "a_key": { # [Output Only] Name of the scope containing this set of disks.
         "disks": [ # [Output Only] List of disks contained in this scope.
@@ -150,7 +150,7 @@
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
               },
-              "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+              "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
                 "a_key": "A String",
               },
               "licenses": [ # Any applicable publicly visible licenses.
@@ -309,7 +309,7 @@
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
         # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
       "a_key": "A String",
     },
     "sourceDiskId": "A String", # [Output Only] 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.
@@ -331,7 +331,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -390,7 +390,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -457,7 +457,7 @@
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
       },
-      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "licenses": [ # Any applicable publicly visible licenses.
@@ -558,7 +558,7 @@
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
     },
-    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "licenses": [ # Any applicable publicly visible licenses.
@@ -645,7 +645,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -701,7 +701,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -717,8 +717,8 @@
   An object of the form:
 
     { # A list of Disk resources.
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": [ # [Output Only] A list of persistent disks.
+    "nextPageToken": "A String", # This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Disk resources.
       { # A Disk resource.
           "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
@@ -730,7 +730,7 @@
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
           },
-          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "licenses": [ # Any applicable publicly visible licenses.
@@ -810,7 +810,7 @@
         },
     ],
     "kind": "compute#diskList", # [Output Only] Type of resource. Always compute#diskList for lists of disks.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
   }</pre>
 </div>
@@ -851,7 +851,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -920,7 +920,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.firewalls.html b/docs/dyn/compute_beta.firewalls.html
index f073024..5e53c52 100644
--- a/docs/dyn/compute_beta.firewalls.html
+++ b/docs/dyn/compute_beta.firewalls.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -174,7 +174,7 @@
       "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
         "A String",
       ],
-      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
         "A String",
       ],
       "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -218,7 +218,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -253,7 +253,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -308,7 +308,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -332,7 +332,7 @@
           "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
             "A String",
           ],
-          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
             "A String",
           ],
           "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -396,7 +396,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -431,7 +431,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -518,7 +518,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -553,7 +553,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.forwardingRules.html b/docs/dyn/compute_beta.forwardingRules.html
index 152f94c..e62caca 100644
--- a/docs/dyn/compute_beta.forwardingRules.html
+++ b/docs/dyn/compute_beta.forwardingRules.html
@@ -113,7 +113,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -138,9 +138,9 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
                   #
-                  # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
                   #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
               "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
               "ports": [ # This field is not used for external load balancing.
                   #
@@ -152,8 +152,8 @@
               "network": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
                   #
                   # This field is not used for internal load balancing.
               "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -164,7 +164,7 @@
                   # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
               "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
                   #
-                  # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+                  # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
               "subnetwork": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -224,7 +224,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -285,9 +285,9 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
       "ports": [ # This field is not used for external load balancing.
           #
@@ -299,8 +299,8 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
           #
           # This field is not used for internal load balancing.
       "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -311,7 +311,7 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
           #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
       "subnetwork": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -339,9 +339,9 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
     "ports": [ # This field is not used for external load balancing.
         # 
@@ -353,8 +353,8 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
         # 
         # This field is not used for internal load balancing.
     "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -365,7 +365,7 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
         # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
     "subnetwork": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -384,7 +384,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -440,7 +440,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -463,9 +463,9 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
           "ports": [ # This field is not used for external load balancing.
               #
@@ -477,8 +477,8 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
               #
               # This field is not used for internal load balancing.
           "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -489,7 +489,7 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
               #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
           "subnetwork": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -543,7 +543,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.globalAddresses.html b/docs/dyn/compute_beta.globalAddresses.html
index 92f4ba7..5c15fbf 100644
--- a/docs/dyn/compute_beta.globalAddresses.html
+++ b/docs/dyn/compute_beta.globalAddresses.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -167,7 +167,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -192,7 +192,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -209,7 +209,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -264,7 +264,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -287,7 +287,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_beta.globalForwardingRules.html b/docs/dyn/compute_beta.globalForwardingRules.html
index 9f2ca84..e1e1286 100644
--- a/docs/dyn/compute_beta.globalForwardingRules.html
+++ b/docs/dyn/compute_beta.globalForwardingRules.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -170,9 +170,9 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
       "ports": [ # This field is not used for external load balancing.
           #
@@ -184,8 +184,8 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
           #
           # This field is not used for internal load balancing.
       "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -196,7 +196,7 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
           #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
       "subnetwork": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -223,9 +223,9 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
     "ports": [ # This field is not used for external load balancing.
         # 
@@ -237,8 +237,8 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
         # 
         # This field is not used for internal load balancing.
     "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -249,7 +249,7 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
         # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
     "subnetwork": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -268,7 +268,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -323,7 +323,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -346,9 +346,9 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
           "ports": [ # This field is not used for external load balancing.
               #
@@ -360,8 +360,8 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
               #
               # This field is not used for internal load balancing.
           "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -372,7 +372,7 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
               #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
           "subnetwork": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -425,7 +425,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.globalOperations.html b/docs/dyn/compute_beta.globalOperations.html
index 0655a21..dc05f4b 100644
--- a/docs/dyn/compute_beta.globalOperations.html
+++ b/docs/dyn/compute_beta.globalOperations.html
@@ -104,7 +104,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -127,7 +127,7 @@
           { # An Operation resource, used to manage asynchronous API requests.
             "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
             "clientOperationId": "A String", # [Output Only] Reserved for future use.
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
             "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
             "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -227,7 +227,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -282,7 +282,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -303,7 +303,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.healthChecks.html b/docs/dyn/compute_beta.healthChecks.html
index ca4fc9f..acecebb 100644
--- a/docs/dyn/compute_beta.healthChecks.html
+++ b/docs/dyn/compute_beta.healthChecks.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -173,7 +173,7 @@
       "udpHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-        "port": 42, # The UDP port number for the health check request.
+        "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
       },
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -184,21 +184,21 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "httpHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
       },
       "httpsHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
       },
       "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -207,7 +207,7 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -231,7 +231,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -242,21 +242,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -265,7 +265,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -281,7 +281,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -336,7 +336,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -359,7 +359,7 @@
           "udpHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-            "port": 42, # The UDP port number for the health check request.
+            "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
           },
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -370,21 +370,21 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "httpHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
           },
           "httpsHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
           },
           "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -393,7 +393,7 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -437,7 +437,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -448,21 +448,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -471,7 +471,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -487,7 +487,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -573,7 +573,7 @@
     "udpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # Raw data of request to send in payload of UDP packet. It is an error if this is empty. The request data can only be ASCII.
-      "port": 42, # The UDP port number for the health check request.
+      "port": 42, # The UDP port number for the health check request. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. It is an error if this is empty. The response data can only be ASCII.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -584,21 +584,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -607,7 +607,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -623,7 +623,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.html b/docs/dyn/compute_beta.html
index 00a78a4..41259cd 100644
--- a/docs/dyn/compute_beta.html
+++ b/docs/dyn/compute_beta.html
@@ -75,6 +75,11 @@
 <h1><a href="compute_beta.html">Compute Engine API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="compute_beta.acceleratorTypes.html">acceleratorTypes()</a></code>
+</p>
+<p class="firstline">Returns the acceleratorTypes Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_beta.addresses.html">addresses()</a></code>
 </p>
 <p class="firstline">Returns the addresses Resource.</p>
@@ -95,6 +100,11 @@
 <p class="firstline">Returns the backendServices Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_beta.commitments.html">commitments()</a></code>
+</p>
+<p class="firstline">Returns the commitments Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_beta.diskTypes.html">diskTypes()</a></code>
 </p>
 <p class="firstline">Returns the diskTypes Resource.</p>
@@ -200,6 +210,11 @@
 <p class="firstline">Returns the regionBackendServices Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_beta.regionCommitments.html">regionCommitments()</a></code>
+</p>
+<p class="firstline">Returns the regionCommitments Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_beta.regionInstanceGroupManagers.html">regionInstanceGroupManagers()</a></code>
 </p>
 <p class="firstline">Returns the regionInstanceGroupManagers Resource.</p>
@@ -270,6 +285,11 @@
 <p class="firstline">Returns the targetSslProxies Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_beta.targetTcpProxies.html">targetTcpProxies()</a></code>
+</p>
+<p class="firstline">Returns the targetTcpProxies Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_beta.targetVpnGateways.html">targetVpnGateways()</a></code>
 </p>
 <p class="firstline">Returns the targetVpnGateways Resource.</p>
diff --git a/docs/dyn/compute_beta.httpHealthChecks.html b/docs/dyn/compute_beta.httpHealthChecks.html
index 32ac2f3..ac3ffa8 100644
--- a/docs/dyn/compute_beta.httpHealthChecks.html
+++ b/docs/dyn/compute_beta.httpHealthChecks.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -217,7 +217,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +272,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -359,7 +359,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -463,7 +463,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.httpsHealthChecks.html b/docs/dyn/compute_beta.httpsHealthChecks.html
index 87cae5f..07dfe49 100644
--- a/docs/dyn/compute_beta.httpsHealthChecks.html
+++ b/docs/dyn/compute_beta.httpsHealthChecks.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -217,7 +217,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +272,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -359,7 +359,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -463,7 +463,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.images.html b/docs/dyn/compute_beta.images.html
index 1f3efe3..d627a84 100644
--- a/docs/dyn/compute_beta.images.html
+++ b/docs/dyn/compute_beta.images.html
@@ -116,7 +116,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -187,7 +187,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -271,7 +271,7 @@
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
           # To see the latest fingerprint, make a get() request to retrieve an image.
-      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
@@ -356,7 +356,7 @@
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
           # To see the latest fingerprint, make a get() request to retrieve an image.
-      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
@@ -439,7 +439,7 @@
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
         # To see the latest fingerprint, make a get() request to retrieve an image.
-    "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
@@ -490,7 +490,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -545,7 +545,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -592,7 +592,7 @@
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
               # To see the latest fingerprint, make a get() request to retrieve an image.
-          "labels": { # Labels to apply to this image. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
@@ -680,7 +680,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.instanceGroupManagers.html b/docs/dyn/compute_beta.instanceGroupManagers.html
index 1cb21a2..e633eda 100644
--- a/docs/dyn/compute_beta.instanceGroupManagers.html
+++ b/docs/dyn/compute_beta.instanceGroupManagers.html
@@ -105,6 +105,9 @@
   <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, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
+<p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
 <p class="toc_element">
@@ -125,6 +128,9 @@
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</code>
@@ -150,7 +156,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -205,7 +211,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -318,7 +324,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -386,7 +392,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -550,7 +556,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -606,7 +612,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -737,6 +743,113 @@
 </div>
 
 <div class="method">
+    <code class="details" id="patch">patch(project, zone, instanceGroupManager, body)</code>
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone where you want to create the managed instance group. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Instance Group Manager resource.
+    "currentActions": { # [Output Only] The list of instance actions and the number of instances in this managed instance group that are scheduled for each of those actions.
+      "none": 42, # [Output Only] The number of instances in the managed instance group that are running and have no scheduled actions.
+      "recreating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.
+      "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
+          #
+          # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
+      "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
+      "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
+      "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
+      "creatingWithoutRetries": 42, # [Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.
+      "refreshing": 42, # [Output Only] The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance.
+    },
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "zone": "A String", # [Output Only] The URL of the zone where the managed instance group is located (for zonal resources).
+    "autoHealingPolicies": [ # The autohealing policy for this managed instance group. You can specify only one value.
+      {
+        "healthCheck": "A String", # The URL for the health check that signals autohealing.
+        "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
+      },
+    ],
+    "targetSize": 42, # The target number of running instances for this managed instance group. Deleting or abandoning instances reduces this number. Resizing the group changes this number.
+    "failoverAction": "A String", # The action to perform in case of zone failure. Only one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
+    "instanceGroup": "A String", # [Output Only] The URL of the Instance Group resource.
+    "serviceAccount": "A String", # Service account will be used as credentials for all operations performed by managed instance group on instances. The service accounts needs all permissions required to create and delete instances. When not specified, the service account {projectNumber}@cloudservices.gserviceaccount.com will be used.
+    "kind": "compute#instanceGroupManager", # [Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.
+    "targetPools": [ # The URLs for all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.
+      "A String",
+    ],
+    "baseInstanceName": "A String", # The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.
+    "fingerprint": "A String", # [Output Only] The fingerprint of the resource data. You can use this optional field for optimistic locking when you update the resource.
+    "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "instanceTemplate": "A String", # The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group.
+    "namedPorts": [ # Named ports configured for the Instance Groups complementary to this Instance Group Manager.
+      { # The named port. For example: .
+        "name": "A String", # The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.
+        "port": 42, # The port number, which can be a value between 1 and 65535.
+      },
+    ],
+    "creationTimestamp": "A String", # [Output Only] The creation timestamp for this managed instance group in RFC3339 text format.
+    "id": "A String", # [Output Only] A unique identifier for this resource type. The server generates this identifier.
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "name": "A String", # The name of the managed instance group. 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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
@@ -760,7 +873,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -820,7 +933,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -895,7 +1008,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -966,7 +1079,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1032,7 +1145,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1101,7 +1214,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1173,4 +1286,111 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="update">update(project, zone, instanceGroupManager, body)</code>
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone where you want to create the managed instance group. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Instance Group Manager resource.
+    "currentActions": { # [Output Only] The list of instance actions and the number of instances in this managed instance group that are scheduled for each of those actions.
+      "none": 42, # [Output Only] The number of instances in the managed instance group that are running and have no scheduled actions.
+      "recreating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.
+      "creating": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully.
+          #
+          # If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.
+      "restarting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.
+      "abandoning": 42, # [Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.
+      "deleting": 42, # [Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.
+      "creatingWithoutRetries": 42, # [Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.
+      "refreshing": 42, # [Output Only] The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance.
+    },
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "zone": "A String", # [Output Only] The URL of the zone where the managed instance group is located (for zonal resources).
+    "autoHealingPolicies": [ # The autohealing policy for this managed instance group. You can specify only one value.
+      {
+        "healthCheck": "A String", # The URL for the health check that signals autohealing.
+        "initialDelaySec": 42, # The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600].
+      },
+    ],
+    "targetSize": 42, # The target number of running instances for this managed instance group. Deleting or abandoning instances reduces this number. Resizing the group changes this number.
+    "failoverAction": "A String", # The action to perform in case of zone failure. Only one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
+    "instanceGroup": "A String", # [Output Only] The URL of the Instance Group resource.
+    "serviceAccount": "A String", # Service account will be used as credentials for all operations performed by managed instance group on instances. The service accounts needs all permissions required to create and delete instances. When not specified, the service account {projectNumber}@cloudservices.gserviceaccount.com will be used.
+    "kind": "compute#instanceGroupManager", # [Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.
+    "targetPools": [ # The URLs for all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.
+      "A String",
+    ],
+    "baseInstanceName": "A String", # The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.
+    "fingerprint": "A String", # [Output Only] The fingerprint of the resource data. You can use this optional field for optimistic locking when you update the resource.
+    "region": "A String", # [Output Only] The URL of the region where the managed instance group resides (for regional resources).
+    "instanceTemplate": "A String", # The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group.
+    "namedPorts": [ # Named ports configured for the Instance Groups complementary to this Instance Group Manager.
+      { # The named port. For example: .
+        "name": "A String", # The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.
+        "port": 42, # The port number, which can be a value between 1 and 65535.
+      },
+    ],
+    "creationTimestamp": "A String", # [Output Only] The creation timestamp for this managed instance group in RFC3339 text format.
+    "id": "A String", # [Output Only] A unique identifier for this resource type. The server generates this identifier.
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
+    "name": "A String", # The name of the managed instance group. 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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_beta.instanceGroups.html b/docs/dyn/compute_beta.instanceGroups.html
index a2bcfac..4c2d907 100644
--- a/docs/dyn/compute_beta.instanceGroups.html
+++ b/docs/dyn/compute_beta.instanceGroups.html
@@ -140,7 +140,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -195,7 +195,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -288,7 +288,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -412,7 +412,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -468,7 +468,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -537,7 +537,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -626,7 +626,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -698,7 +698,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.instanceTemplates.html b/docs/dyn/compute_beta.instanceTemplates.html
index 9810019..2b87d92 100644
--- a/docs/dyn/compute_beta.instanceTemplates.html
+++ b/docs/dyn/compute_beta.instanceTemplates.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -266,7 +266,7 @@
               #
               # To see the latest fingerprint, make get() request to the instance.
         },
-        "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+        "labels": { # Labels to apply to instances that are created from this template.
           "a_key": "A String",
         },
         "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -285,6 +285,21 @@
         ],
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+            "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+              { # An alias IP range attached to an instance's network interface.
+                "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+              },
+            ],
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -294,18 +309,10 @@
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
@@ -437,7 +444,7 @@
             #
             # To see the latest fingerprint, make get() request to the instance.
       },
-      "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to instances that are created from this template.
         "a_key": "A String",
       },
       "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -456,6 +463,21 @@
       ],
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
+          "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+          "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+            { # An alias IP range attached to an instance's network interface.
+              "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+              "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+            },
+          ],
+          "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+              #
+              # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+              #
+              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+              # - projects/project/global/networks/network
+              # - global/networks/default
           "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -465,18 +487,10 @@
             },
           ],
           "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
               # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
               # - regions/region/subnetworks/subnetwork
-          "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-              #
-              # global/networks/default
-              #
-              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-              # - projects/project/global/networks/network
-              # - global/networks/default
+          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
       "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
@@ -501,7 +515,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -556,7 +570,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -678,7 +692,7 @@
                   #
                   # To see the latest fingerprint, make get() request to the instance.
             },
-            "labels": { # Labels to apply to instances that are created from this template. Each label key/value pair must comply with RFC1035. Label values may be empty.
+            "labels": { # Labels to apply to instances that are created from this template.
               "a_key": "A String",
             },
             "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
@@ -697,6 +711,21 @@
             ],
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+                "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+                  { # An alias IP range attached to an instance's network interface.
+                    "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                    "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+                  },
+                ],
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -706,18 +735,10 @@
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
diff --git a/docs/dyn/compute_beta.instances.html b/docs/dyn/compute_beta.instances.html
index 2b85832..3c8d2f8 100644
--- a/docs/dyn/compute_beta.instances.html
+++ b/docs/dyn/compute_beta.instances.html
@@ -120,6 +120,9 @@
   <code><a href="#setLabels">setLabels(project, zone, instance, body)</a></code></p>
 <p class="firstline">Sets labels on an instance. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
+  <code><a href="#setMachineResources">setMachineResources(project, zone, instance, body)</a></code></p>
+<p class="firstline">Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.</p>
+<p class="toc_element">
   <code><a href="#setMachineType">setMachineType(project, zone, instance, body)</a></code></p>
 <p class="firstline">Changes the machine type for a stopped instance to the machine type specified in the request.</p>
 <p class="toc_element">
@@ -130,7 +133,7 @@
 <p class="firstline">Sets an instance's scheduling options.</p>
 <p class="toc_element">
   <code><a href="#setServiceAccount">setServiceAccount(project, zone, instance, body)</a></code></p>
-<p class="firstline">Sets the service account on the instance.</p>
+<p class="firstline">Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.</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>
@@ -173,7 +176,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -228,7 +231,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -252,7 +255,7 @@
             "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
             "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
             "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
-            "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+            "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
               "a_key": "A String",
             },
             "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
@@ -358,6 +361,38 @@
               },
             ],
             "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+              { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+                "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+                  { # An alias IP range attached to an instance's network interface.
+                    "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                    "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+                  },
+                ],
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
+                "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
+                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                    "name": "A String", # Name of this access configuration.
+                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+                  },
+                ],
+                "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+                "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+                    # - regions/region/subnetworks/subnetwork
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+              },
+            ],
             "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
             "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
               "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
@@ -375,7 +410,9 @@
                 # For example: zones/us-central1-f/machineTypes/custom-4-5120
                 #
                 # For a full list of restrictions, read the Specifications for custom machine types.
-            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+                #
+                # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
                   "A String",
@@ -383,34 +420,6 @@
                 "email": "A String", # Email address of the service account.
               },
             ],
-            "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-              { # A network interface resource attached to an instance.
-                "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
-                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
-                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                  },
-                ],
-                "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-                "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-                    # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
-              },
-            ],
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-            "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
               "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
                 {
@@ -421,6 +430,15 @@
               "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
               "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             },
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+            "guestAccelerators": [
+              { # A specification of the type and number of accelerator cards attached to the instance.
+                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+              },
+            ],
           },
         ],
         "warning": { # [Output Only] Informational warning which replaces the list of instances when the list is empty.
@@ -561,7 +579,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -620,7 +638,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -681,7 +699,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -741,7 +759,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -801,7 +819,7 @@
     "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
     "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
     "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
-    "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+    "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
@@ -907,6 +925,38 @@
       },
     ],
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+      { # A network interface resource attached to an instance.
+        "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+        "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+          { # An alias IP range attached to an instance's network interface.
+            "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+            "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+          },
+        ],
+        "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+            #
+            # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+            #
+            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+            # - projects/project/global/networks/network
+            # - global/networks/default
+        "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
+            "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+            "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+            "name": "A String", # Name of this access configuration.
+            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+          },
+        ],
+        "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+        "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+            # - regions/region/subnetworks/subnetwork
+        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+      },
+    ],
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
     "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
       "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
@@ -924,7 +974,9 @@
         # For example: zones/us-central1-f/machineTypes/custom-4-5120
         #
         # For a full list of restrictions, read the Specifications for custom machine types.
-    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+        #
+        # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
       { # A service account.
         "scopes": [ # The list of scopes to be made available for this service account.
           "A String",
@@ -932,34 +984,6 @@
         "email": "A String", # Email address of the service account.
       },
     ],
-    "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-      { # A network interface resource attached to an instance.
-        "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
-            "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-            "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-            "name": "A String", # Name of this access configuration.
-            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-          },
-        ],
-        "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-        "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-            # - regions/region/subnetworks/subnetwork
-        "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-            #
-            # global/networks/default
-            #
-            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-            # - projects/project/global/networks/network
-            # - global/networks/default
-      },
-    ],
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
     "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
       "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
         {
@@ -970,6 +994,15 @@
       "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
       "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
     },
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+    "guestAccelerators": [
+      { # A specification of the type and number of accelerator cards attached to the instance.
+        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+      },
+    ],
   }</pre>
 </div>
 
@@ -981,14 +1014,14 @@
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
-  start: string, For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value that was returned in the previous call.
+  start: string, Returns output starting from a specific byte position. Use this to page through output when the output is too large to return in a single request. For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value returned in the previous call.
   port: integer, Specifies which COM or serial port to retrieve data from.
 
 Returns:
   An object of the form:
 
     { # An instance's serial console output.
-    "start": "A String", # [Output Only] The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
+    "start": "A String", # The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
     "kind": "compute#serialPortOutput", # [Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
     "contents": "A String", # [Output Only] The contents of the console output.
@@ -1010,7 +1043,7 @@
   "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
   "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
   "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
-  "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+  "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
     "a_key": "A String",
   },
   "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
@@ -1116,6 +1149,38 @@
     },
   ],
   "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+    { # A network interface resource attached to an instance.
+      "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+      "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+        { # An alias IP range attached to an instance's network interface.
+          "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+          "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+        },
+      ],
+      "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+          #
+          # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+          #
+          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+          # - projects/project/global/networks/network
+          # - global/networks/default
+      "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
+          "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+          "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+          "name": "A String", # Name of this access configuration.
+          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+        },
+      ],
+      "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+      "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+          # - regions/region/subnetworks/subnetwork
+      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+    },
+  ],
   "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
   "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
     "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
@@ -1133,7 +1198,9 @@
       # For example: zones/us-central1-f/machineTypes/custom-4-5120
       # 
       # For a full list of restrictions, read the Specifications for custom machine types.
-  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+      # 
+      # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
     { # A service account.
       "scopes": [ # The list of scopes to be made available for this service account.
         "A String",
@@ -1141,34 +1208,6 @@
       "email": "A String", # Email address of the service account.
     },
   ],
-  "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-    { # A network interface resource attached to an instance.
-      "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
-          "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-          "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-          "name": "A String", # Name of this access configuration.
-          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-        },
-      ],
-      "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-      "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-          # - regions/region/subnetworks/subnetwork
-      "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-          #
-          # global/networks/default
-          #
-          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-          # - projects/project/global/networks/network
-          # - global/networks/default
-    },
-  ],
-  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-  "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
   "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
     "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
       {
@@ -1179,6 +1218,15 @@
     "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
     "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
   },
+  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+  "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  "guestAccelerators": [
+    { # A specification of the type and number of accelerator cards attached to the instance.
+      "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+      "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+    },
+  ],
 }
 
 
@@ -1188,7 +1236,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1244,7 +1292,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -1266,7 +1314,7 @@
         "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
         "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
         "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
-        "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+        "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
           "a_key": "A String",
         },
         "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
@@ -1372,6 +1420,38 @@
           },
         ],
         "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+          { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+            "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+              { # An alias IP range attached to an instance's network interface.
+                "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+              },
+            ],
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
+            "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
+                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                "name": "A String", # Name of this access configuration.
+                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+              },
+            ],
+            "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+            "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+                # - regions/region/subnetworks/subnetwork
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+          },
+        ],
         "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
         "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
           "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
@@ -1389,7 +1469,9 @@
             # For example: zones/us-central1-f/machineTypes/custom-4-5120
             #
             # For a full list of restrictions, read the Specifications for custom machine types.
-        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+            #
+            # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
               "A String",
@@ -1397,34 +1479,6 @@
             "email": "A String", # Email address of the service account.
           },
         ],
-        "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-          { # A network interface resource attached to an instance.
-            "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
-                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
-                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-              },
-            ],
-            "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-            "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-                # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
-          },
-        ],
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-        "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
           "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
             {
@@ -1435,6 +1489,15 @@
           "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
           "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         },
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+        "guestAccelerators": [
+          { # A specification of the type and number of accelerator cards attached to the instance.
+            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+          },
+        ],
       },
     ],
     "kind": "compute#instanceList", # [Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.
@@ -1472,7 +1535,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1533,7 +1596,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1590,9 +1653,7 @@
 
 {
     "labelFingerprint": "A String", # Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.
-    "labels": { # A list of labels to apply for this instance. Changing instance labels will also change the instance tags.
-        # 
-        # Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+    "labels": {
       "a_key": "A String",
     },
   }
@@ -1604,7 +1665,78 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setMachineResources">setMachineResources(project, zone, instance, body)</code>
+  <pre>Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "guestAccelerators": [
+      { # A specification of the type and number of accelerator cards attached to the instance.
+        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1670,7 +1802,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1743,7 +1875,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1811,7 +1943,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1857,7 +1989,7 @@
 
 <div class="method">
     <code class="details" id="setServiceAccount">setServiceAccount(project, zone, instance, body)</code>
-  <pre>Sets the service account on the instance.
+  <pre>Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1880,7 +2012,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1951,7 +2083,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2010,7 +2142,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2094,7 +2226,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -2153,7 +2285,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.machineTypes.html b/docs/dyn/compute_beta.machineTypes.html
index 573ca47..161835b 100644
--- a/docs/dyn/compute_beta.machineTypes.html
+++ b/docs/dyn/compute_beta.machineTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -223,7 +223,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.networks.html b/docs/dyn/compute_beta.networks.html
index 419f3c8..af32a85 100644
--- a/docs/dyn/compute_beta.networks.html
+++ b/docs/dyn/compute_beta.networks.html
@@ -75,6 +75,9 @@
 <h1><a href="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.networks.html">networks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#addPeering">addPeering(project, network, body)</a></code></p>
+<p class="firstline">Adds a peering to the specified network.</p>
+<p class="toc_element">
   <code><a href="#delete">delete(project, network)</a></code></p>
 <p class="firstline">Deletes the specified network.</p>
 <p class="toc_element">
@@ -90,6 +93,9 @@
   <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="#removePeering">removePeering(project, network, body)</a></code></p>
+<p class="firstline">Removes a peering from the specified network.</p>
+<p class="toc_element">
   <code><a href="#switchToCustomMode">switchToCustomMode(project, network)</a></code></p>
 <p class="firstline">Switches the network mode from auto subnet mode to custom subnet mode.</p>
 <p class="toc_element">
@@ -97,6 +103,73 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="addPeering">addPeering(project, network, body)</code>
+  <pre>Adds a peering to the specified network.
+
+Args:
+  project: string, Project ID for this request. (required)
+  network: string, Name of the network resource to add peering to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "peerNetwork": "A String", # URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
+    "name": "A String", # Name of the peering, which should conform to RFC1035.
+    "autoCreateRoutes": True or False, # Whether Google Compute Engine manages the routes automatically.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="delete">delete(project, network)</code>
   <pre>Deletes the specified network.
 
@@ -110,7 +183,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -176,6 +249,15 @@
           # In "auto subnet mode", a newly created network is assigned the default CIDR of 10.128.0.0/9 and it automatically creates one subnetwork per region.
       "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
       "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+      "peerings": [ # [Output Only] List of network peerings for the resource.
+        { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
+          "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
+          "state": "A String", # [Output Only] State for the peering.
+          "stateDetails": "A String", # [Output Only] Details about the current state of the peering.
+          "name": "A String", # Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "autoCreateRoutes": True or False, # Whether full mesh connectivity is created and managed automatically. When it is set to true, Google Compute Engine will automatically create and manage the routes between two networks when the state is ACTIVE. Otherwise, user needs to create routes manually to route packets to peer network.
+        },
+      ],
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -203,6 +285,15 @@
         # In "auto subnet mode", a newly created network is assigned the default CIDR of 10.128.0.0/9 and it automatically creates one subnetwork per region.
     "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
     "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+    "peerings": [ # [Output Only] List of network peerings for the resource.
+      { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
+        "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
+        "state": "A String", # [Output Only] State for the peering.
+        "stateDetails": "A String", # [Output Only] Details about the current state of the peering.
+        "name": "A String", # Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        "autoCreateRoutes": True or False, # Whether full mesh connectivity is created and managed automatically. When it is set to true, Google Compute Engine will automatically create and manage the routes between two networks when the state is ACTIVE. Otherwise, user needs to create routes manually to route packets to peer network.
+      },
+    ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -216,7 +307,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -271,7 +362,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -300,6 +391,15 @@
               # In "auto subnet mode", a newly created network is assigned the default CIDR of 10.128.0.0/9 and it automatically creates one subnetwork per region.
           "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
           "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+          "peerings": [ # [Output Only] List of network peerings for the resource.
+            { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
+              "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
+              "state": "A String", # [Output Only] State for the peering.
+              "stateDetails": "A String", # [Output Only] Details about the current state of the peering.
+              "name": "A String", # Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              "autoCreateRoutes": True or False, # Whether full mesh connectivity is created and managed automatically. When it is set to true, Google Compute Engine will automatically create and manage the routes between two networks when the state is ACTIVE. Otherwise, user needs to create routes manually to route packets to peer network.
+            },
+          ],
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -327,6 +427,71 @@
 </div>
 
 <div class="method">
+    <code class="details" id="removePeering">removePeering(project, network, body)</code>
+  <pre>Removes a peering from the specified network.
+
+Args:
+  project: string, Project ID for this request. (required)
+  network: string, Name of the network resource to remove peering from. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "name": "A String", # Name of the peering, which should conform to RFC1035.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="switchToCustomMode">switchToCustomMode(project, network)</code>
   <pre>Switches the network mode from auto subnet mode to custom subnet mode.
 
@@ -340,7 +505,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.projects.html b/docs/dyn/compute_beta.projects.html
index 11caddc..8afa34a 100644
--- a/docs/dyn/compute_beta.projects.html
+++ b/docs/dyn/compute_beta.projects.html
@@ -75,15 +75,36 @@
 <h1><a href="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#disableXpnHost">disableXpnHost(project)</a></code></p>
+<p class="firstline">Disable this project as an XPN host project.</p>
+<p class="toc_element">
+  <code><a href="#disableXpnResource">disableXpnResource(project, body)</a></code></p>
+<p class="firstline">Disable an XPN resource associated with this host project.</p>
+<p class="toc_element">
+  <code><a href="#enableXpnHost">enableXpnHost(project)</a></code></p>
+<p class="firstline">Enable this project as an XPN host project.</p>
+<p class="toc_element">
+  <code><a href="#enableXpnResource">enableXpnResource(project, body)</a></code></p>
+<p class="firstline">Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.</p>
+<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="#getXpnHost">getXpnHost(project)</a></code></p>
 <p class="firstline">Get the XPN host project that this project links to. May be empty if no link exists.</p>
 <p class="toc_element">
-  <code><a href="#listXpnHosts">listXpnHosts(project, body)</a></code></p>
+  <code><a href="#getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Get XPN resources associated with this host project.</p>
+<p class="toc_element">
+  <code><a href="#getXpnResources_next">getXpnResources_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="#listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">List all XPN host projects visible to the user in an organization.</p>
 <p class="toc_element">
+  <code><a href="#listXpnHosts_next">listXpnHosts_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="#moveDisk">moveDisk(project, body)</a></code></p>
 <p class="firstline">Moves a persistent disk from one zone to another.</p>
 <p class="toc_element">
@@ -97,6 +118,254 @@
 <p class="firstline">Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="disableXpnHost">disableXpnHost(project)</code>
+  <pre>Disable this project as an XPN host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="disableXpnResource">disableXpnResource(project, body)</code>
+  <pre>Disable an XPN resource associated with this host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "xpnResource": { # XpnResourceId # XPN resource ID.
+      "type": "A String", # The type of the XPN resource.
+      "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enableXpnHost">enableXpnHost(project)</code>
+  <pre>Enable this project as an XPN host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enableXpnResource">enableXpnResource(project, body)</code>
+  <pre>Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "xpnResource": { # XpnResourceId # XPN resource ID.
+      "type": "A String", # The type of the XPN resource.
+      "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(project)</code>
   <pre>Returns the specified Project resource.
 
@@ -189,7 +458,47 @@
 </div>
 
 <div class="method">
-    <code class="details" id="listXpnHosts">listXpnHosts(project, body)</code>
+    <code class="details" id="getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Get XPN resources associated with this host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "kind": "compute#projectsGetXpnResources", # [Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of XPN resources.
+    "resources": [ # XPN resources attached to this project as their XPN host.
+      { # XpnResourceId
+        "type": "A String", # The type of the XPN resource.
+        "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getXpnResources_next">getXpnResources_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="listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
   <pre>List all XPN host projects visible to the user in an organization.
 
 Args:
@@ -201,6 +510,10 @@
     "organization": "A String", # Optional organization ID managed by Cloud Resource Manager, for which to list XPN host projects. If not specified, the organization will be inferred from the project.
   }
 
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
 
 Returns:
   An object of the form:
@@ -250,6 +563,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listXpnHosts_next">listXpnHosts_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="moveDisk">moveDisk(project, body)</code>
   <pre>Moves a persistent disk from one zone to another.
 
@@ -276,7 +603,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -347,7 +674,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -418,7 +745,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -483,7 +810,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regionAutoscalers.html b/docs/dyn/compute_beta.regionAutoscalers.html
index 25815e6..9580b37 100644
--- a/docs/dyn/compute_beta.regionAutoscalers.html
+++ b/docs/dyn/compute_beta.regionAutoscalers.html
@@ -114,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -288,7 +288,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -344,7 +344,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -500,7 +500,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -640,7 +640,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regionBackendServices.html b/docs/dyn/compute_beta.regionBackendServices.html
index c3ad5ee..815734b 100644
--- a/docs/dyn/compute_beta.regionBackendServices.html
+++ b/docs/dyn/compute_beta.regionBackendServices.html
@@ -117,7 +117,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -180,11 +180,23 @@
       "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+      "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+          "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+          "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+          "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+        },
+      },
       "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
@@ -228,6 +240,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
+      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -245,7 +258,7 @@
           #
           # When the protocol is UDP, this field is not used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+      "iap": { # Identity-Aware Proxy
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
@@ -305,11 +318,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -353,6 +378,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -370,7 +396,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -387,7 +413,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -443,7 +469,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -459,7 +485,7 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
           "connectionDraining": { # Message containing connection draining configuration.
@@ -468,11 +494,23 @@
           "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+          "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+              "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+              "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+              "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+            },
+          },
           "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
@@ -516,6 +554,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
+          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -533,7 +572,7 @@
               #
               # When the protocol is UDP, this field is not used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+          "iap": { # Identity-Aware Proxy
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
@@ -581,11 +620,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -629,6 +680,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -646,7 +698,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -663,7 +715,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -753,11 +805,23 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -801,6 +865,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -818,7 +883,7 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "iap": { # Identity-Aware Proxy (Cloud Gatekeeper)
+    "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
@@ -835,7 +900,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regionCommitments.html b/docs/dyn/compute_beta.regionCommitments.html
new file mode 100644
index 0000000..85c92da
--- /dev/null
+++ b/docs/dyn/compute_beta.regionCommitments.html
@@ -0,0 +1,277 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_beta.html">Compute Engine API</a> . <a href="compute_beta.regionCommitments.html">regionCommitments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, commitment)</a></code></p>
+<p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body)</a></code></p>
+<p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves a list of commitments 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="get">get(project, region, commitment)</code>
+  <pre>Returns the specified commitment resource. Get a list of available commitments by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  commitment: string, Name of the commitment to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+    "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+    "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+    "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+      { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+        "type": "A String", # Type of resource for which this commitment applies.
+      },
+    ],
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body)</code>
+  <pre>Creates an commitment in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+  "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+  "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+  "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+  "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+  "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+  "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+  "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+  "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+  "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+  "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+    { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+      "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+      "type": "A String", # Type of resource for which this commitment applies.
+    },
+  ],
+  "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves a list of commitments contained within the specified region.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of Commitment resources.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Commitment resources.
+      { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
+        "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+        "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+        "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+        "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+        "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+        "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+          { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+            "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
+            "type": "A String", # Type of resource for which this commitment applies.
+          },
+        ],
+        "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      },
+    ],
+    "kind": "compute#commitmentList", # [Output Only] Type of resource. Always compute#commitmentList for lists of commitments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for 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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_beta.regionInstanceGroupManagers.html b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
index d2f56b6..693777d 100644
--- a/docs/dyn/compute_beta.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
@@ -147,7 +147,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -206,7 +206,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -274,7 +274,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -438,7 +438,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -494,7 +494,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -687,7 +687,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -755,7 +755,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -815,7 +815,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -886,7 +886,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -952,7 +952,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1021,7 +1021,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1156,7 +1156,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regionInstanceGroups.html b/docs/dyn/compute_beta.regionInstanceGroups.html
index bee2fa4..a12a279 100644
--- a/docs/dyn/compute_beta.regionInstanceGroups.html
+++ b/docs/dyn/compute_beta.regionInstanceGroups.html
@@ -146,7 +146,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -216,7 +216,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -307,7 +307,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regionOperations.html b/docs/dyn/compute_beta.regionOperations.html
index c5c5eb5..0bc1500 100644
--- a/docs/dyn/compute_beta.regionOperations.html
+++ b/docs/dyn/compute_beta.regionOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.regions.html b/docs/dyn/compute_beta.regions.html
index f4021c0..66b0f10 100644
--- a/docs/dyn/compute_beta.regions.html
+++ b/docs/dyn/compute_beta.regions.html
@@ -134,7 +134,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.routers.html b/docs/dyn/compute_beta.routers.html
index 487170d..1718fe6 100644
--- a/docs/dyn/compute_beta.routers.html
+++ b/docs/dyn/compute_beta.routers.html
@@ -122,7 +122,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -159,10 +159,10 @@
               "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
                 {
                   "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
                   "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
                   "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
                   "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
                 },
               ],
@@ -221,7 +221,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -294,10 +294,10 @@
       "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
         {
           "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
           "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
           "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
           "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         },
       ],
@@ -335,7 +335,7 @@
           "advertisedRoutes": [ # Routes that were advertised to the remote BGP peer
             { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
                 #
-                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
                 #
                 # Packets that do not match any route in the sending instance's routing table are dropped.
               "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -348,6 +348,7 @@
               "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
                   # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
               "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+              "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
               "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
               "network": "A String", # Fully-qualified URL of the network that this route applies to.
               "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -364,10 +365,10 @@
                   ],
                 },
               ],
-              "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+              "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
             },
           ],
@@ -380,7 +381,7 @@
       "bestRoutes": [ # Best routes for this router's network.
         { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
             #
-            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
             #
             # Packets that do not match any route in the sending instance's routing table are dropped.
           "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -393,6 +394,7 @@
           "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
               # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
           "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+          "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
           "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
           "network": "A String", # Fully-qualified URL of the network that this route applies to.
           "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -409,10 +411,10 @@
               ],
             },
           ],
-          "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         },
       ],
@@ -447,10 +449,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -468,7 +470,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -524,7 +526,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -559,10 +561,10 @@
           "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
             {
               "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
               "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
               "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
               "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
             },
           ],
@@ -621,10 +623,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -642,7 +644,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -714,10 +716,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -750,10 +752,10 @@
         "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
           {
             "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
             "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
             "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
             "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
           },
         ],
@@ -822,10 +824,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -843,7 +845,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.routes.html b/docs/dyn/compute_beta.routes.html
index df70554..bd40b0a 100644
--- a/docs/dyn/compute_beta.routes.html
+++ b/docs/dyn/compute_beta.routes.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -164,7 +164,7 @@
 
     { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
       #
-      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
       #
       # Packets that do not match any route in the sending instance's routing table are dropped.
     "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -177,6 +177,7 @@
     "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
         # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
     "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+    "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
     "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
     "network": "A String", # Fully-qualified URL of the network that this route applies to.
     "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -193,10 +194,10 @@
         ],
       },
     ],
-    "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+    "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   }</pre>
 </div>
@@ -212,7 +213,7 @@
 
 { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
     # 
-    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
     # 
     # Packets that do not match any route in the sending instance's routing table are dropped.
   "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -225,6 +226,7 @@
   "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
       # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
   "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+  "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
   "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
   "network": "A String", # Fully-qualified URL of the network that this route applies to.
   "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -241,10 +243,10 @@
       ],
     },
   ],
-  "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+  "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
   "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
   "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
 }
 
@@ -255,7 +257,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -310,7 +312,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -330,7 +332,7 @@
     "items": [ # [Output Only] A list of Route resources.
       { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
           #
-          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
           #
           # Packets that do not match any route in the sending instance's routing table are dropped.
         "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -343,6 +345,7 @@
         "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
             # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
         "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+        "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
         "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
         "network": "A String", # Fully-qualified URL of the network that this route applies to.
         "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -359,10 +362,10 @@
             ],
           },
         ],
-        "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+        "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       },
     ],
diff --git a/docs/dyn/compute_beta.snapshots.html b/docs/dyn/compute_beta.snapshots.html
index f3e7e7b..b614a6c 100644
--- a/docs/dyn/compute_beta.snapshots.html
+++ b/docs/dyn/compute_beta.snapshots.html
@@ -109,7 +109,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -200,7 +200,7 @@
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
           # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-      "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
         "a_key": "A String",
       },
       "sourceDiskId": "A String", # [Output Only] 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.
@@ -226,7 +226,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -280,7 +280,7 @@
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
               # To see the latest fingerprint, make a get() request to retrieve a snapshot.
-          "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+          "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
             "a_key": "A String",
           },
           "sourceDiskId": "A String", # [Output Only] 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.
@@ -338,7 +338,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.sslCertificates.html b/docs/dyn/compute_beta.sslCertificates.html
index 3fe340f..abff2b8 100644
--- a/docs/dyn/compute_beta.sslCertificates.html
+++ b/docs/dyn/compute_beta.sslCertificates.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -201,7 +201,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -256,7 +256,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.subnetworks.html b/docs/dyn/compute_beta.subnetworks.html
index cf8e71b..a4b3b6c 100644
--- a/docs/dyn/compute_beta.subnetworks.html
+++ b/docs/dyn/compute_beta.subnetworks.html
@@ -119,7 +119,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -144,8 +144,15 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "region": "A String", # URL of the region where the Subnetwork resides.
+              "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
+                { # Represents a secondary IP range of a subnetwork.
+                  "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
+                  "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
+                },
+              ],
               "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
               "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -200,7 +207,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -266,7 +273,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -327,8 +334,15 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "region": "A String", # URL of the region where the Subnetwork resides.
+      "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
+        { # Represents a secondary IP range of a subnetwork.
+          "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
+          "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
+        },
+      ],
       "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
       "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -359,16 +373,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -457,8 +475,15 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "region": "A String", # URL of the region where the Subnetwork resides.
+    "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
+      { # Represents a secondary IP range of a subnetwork.
+        "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
+        "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
+      },
+    ],
     "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
     "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -472,7 +497,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -528,7 +553,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -551,8 +576,15 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "region": "A String", # URL of the region where the Subnetwork resides.
+          "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
+            { # Represents a secondary IP range of a subnetwork.
+              "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
+              "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
+            },
+          ],
           "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
           "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -601,16 +633,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -698,16 +734,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
diff --git a/docs/dyn/compute_beta.targetHttpProxies.html b/docs/dyn/compute_beta.targetHttpProxies.html
index 8198d37..12c3ef3 100644
--- a/docs/dyn/compute_beta.targetHttpProxies.html
+++ b/docs/dyn/compute_beta.targetHttpProxies.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -202,7 +202,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -257,7 +257,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -326,7 +326,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.targetHttpsProxies.html b/docs/dyn/compute_beta.targetHttpsProxies.html
index e449963..07cd9f9 100644
--- a/docs/dyn/compute_beta.targetHttpsProxies.html
+++ b/docs/dyn/compute_beta.targetHttpsProxies.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -217,7 +217,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -272,7 +272,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -349,7 +349,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -414,7 +414,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.targetInstances.html b/docs/dyn/compute_beta.targetInstances.html
index b444c55..5bbc2ca 100644
--- a/docs/dyn/compute_beta.targetInstances.html
+++ b/docs/dyn/compute_beta.targetInstances.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -193,7 +193,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -297,7 +297,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -353,7 +353,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.targetPools.html b/docs/dyn/compute_beta.targetPools.html
index 5d4d2a1..a73f844 100644
--- a/docs/dyn/compute_beta.targetPools.html
+++ b/docs/dyn/compute_beta.targetPools.html
@@ -129,7 +129,7 @@
     The object takes the form of:
 
 {
-    "healthChecks": [ # A list of HttpHealthCheck resources to add to the target pool.
+    "healthChecks": [ # The HttpHealthCheck to add to the target pool.
       { # A full or valid partial URL to a health check. For example, the following are valid URLs:
           # - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
           # - projects/project-id/global/httpHealthChecks/health-check
@@ -146,7 +146,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -219,7 +219,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -274,7 +274,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -305,7 +305,7 @@
           ],
         },
         "targetPools": [ # List of target pools contained in this scope.
-          { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+          { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
               "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -326,7 +326,7 @@
                   # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-              "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+              "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
                 "A String",
               ],
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -372,7 +372,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -428,7 +428,7 @@
 Returns:
   An object of the form:
 
-    { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+    { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
       "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -449,7 +449,7 @@
           # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-      "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+      "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
         "A String",
       ],
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -501,7 +501,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+{ # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
     "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -522,7 +522,7 @@
         # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-    "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+    "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
       "A String",
     ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -538,7 +538,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -594,7 +594,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -612,7 +612,7 @@
     { # Contains a list of TargetPool resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of TargetPool resources.
-      { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+      { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
           "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -633,7 +633,7 @@
               # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-          "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+          "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
             "A String",
           ],
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -694,7 +694,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -764,7 +764,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -831,7 +831,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.targetSslProxies.html b/docs/dyn/compute_beta.targetSslProxies.html
index c44d4ee..37b5019 100644
--- a/docs/dyn/compute_beta.targetSslProxies.html
+++ b/docs/dyn/compute_beta.targetSslProxies.html
@@ -116,7 +116,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -216,7 +216,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -271,7 +271,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -344,7 +344,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -409,7 +409,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -476,7 +476,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.targetTcpProxies.html b/docs/dyn/compute_beta.targetTcpProxies.html
new file mode 100644
index 0000000..f30e5c3
--- /dev/null
+++ b/docs/dyn/compute_beta.targetTcpProxies.html
@@ -0,0 +1,441 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_beta.html">Compute Engine API</a> . <a href="compute_beta.targetTcpProxies.html">targetTcpProxies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, targetTcpProxy)</a></code></p>
+<p class="firstline">Deletes the specified TargetTcpProxy resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, targetTcpProxy)</a></code></p>
+<p class="firstline">Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a TargetTcpProxy resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of TargetTcpProxy 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="#setBackendService">setBackendService(project, targetTcpProxy, body)</a></code></p>
+<p class="firstline">Changes the BackendService for TargetTcpProxy.</p>
+<p class="toc_element">
+  <code><a href="#setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</a></code></p>
+<p class="firstline">Changes the ProxyHeaderType for TargetTcpProxy.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, targetTcpProxy)</code>
+  <pre>Deletes the specified TargetTcpProxy resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource to delete. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, targetTcpProxy)</code>
+  <pre>Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A TargetTcpProxy resource. This resource defines a TCP proxy.
+      "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "service": "A String", # URL to the BackendService resource.
+      "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a TargetTcpProxy resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A TargetTcpProxy resource. This resource defines a TCP proxy.
+    "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "service": "A String", # URL to the BackendService resource.
+    "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of TargetTcpProxy resources available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of TargetTcpProxy resources.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of TargetTcpProxy resources.
+      { # A TargetTcpProxy resource. This resource defines a TCP proxy.
+          "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "service": "A String", # URL to the BackendService resource.
+          "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#targetTcpProxyList", # Type of resource.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for 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="setBackendService">setBackendService(project, targetTcpProxy, body)</code>
+  <pre>Changes the BackendService for TargetTcpProxy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource whose BackendService resource is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "service": "A String", # The URL of the new BackendService resource for the targetTcpProxy.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</code>
+  <pre>Changes the ProxyHeaderType for TargetTcpProxy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource whose ProxyHeader is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "proxyHeader": "A String", # The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_beta.targetVpnGateways.html b/docs/dyn/compute_beta.targetVpnGateways.html
index 9cbcf15..7244759 100644
--- a/docs/dyn/compute_beta.targetVpnGateways.html
+++ b/docs/dyn/compute_beta.targetVpnGateways.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -196,7 +196,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -306,7 +306,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -362,7 +362,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_beta.urlMaps.html b/docs/dyn/compute_beta.urlMaps.html
index 4ca0cb4..42a0a5b 100644
--- a/docs/dyn/compute_beta.urlMaps.html
+++ b/docs/dyn/compute_beta.urlMaps.html
@@ -119,7 +119,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -283,7 +283,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -349,7 +349,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -404,7 +404,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -551,7 +551,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -685,7 +685,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.vpnTunnels.html b/docs/dyn/compute_beta.vpnTunnels.html
index beae6b9..a08376f 100644
--- a/docs/dyn/compute_beta.vpnTunnels.html
+++ b/docs/dyn/compute_beta.vpnTunnels.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -134,13 +134,13 @@
               "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
               "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
               "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "peerIp": "A String", # IP address of the peer VPN gateway.
+              "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
               "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -202,7 +202,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -262,13 +262,13 @@
       "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
       "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
       "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "peerIp": "A String", # IP address of the peer VPN gateway.
+      "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -297,13 +297,13 @@
     "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
     "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
     "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "peerIp": "A String", # IP address of the peer VPN gateway.
+    "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -324,7 +324,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -380,7 +380,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -402,13 +402,13 @@
           "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
           "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
           "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "peerIp": "A String", # IP address of the peer VPN gateway.
+          "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
diff --git a/docs/dyn/compute_beta.zoneOperations.html b/docs/dyn/compute_beta.zoneOperations.html
index 7de36ce..4f754e0 100644
--- a/docs/dyn/compute_beta.zoneOperations.html
+++ b/docs/dyn/compute_beta.zoneOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_beta.zones.html b/docs/dyn/compute_beta.zones.html
index a3eedd1..1a3fb91 100644
--- a/docs/dyn/compute_beta.zones.html
+++ b/docs/dyn/compute_beta.zones.html
@@ -125,7 +125,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.addresses.html b/docs/dyn/compute_v1.addresses.html
index 21b9c76..b54df50 100644
--- a/docs/dyn/compute_v1.addresses.html
+++ b/docs/dyn/compute_v1.addresses.html
@@ -107,7 +107,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -143,7 +143,7 @@
               "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-              "address": "A String", # The static external IP address represented by this resource.
+              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
@@ -190,7 +190,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -251,7 +251,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -277,7 +277,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -294,7 +294,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -350,7 +350,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -373,7 +373,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_v1.autoscalers.html b/docs/dyn/compute_v1.autoscalers.html
index d552a2f..41aaa5b 100644
--- a/docs/dyn/compute_v1.autoscalers.html
+++ b/docs/dyn/compute_v1.autoscalers.html
@@ -113,7 +113,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -224,7 +224,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -384,7 +384,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -440,7 +440,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -582,7 +582,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -687,7 +687,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.backendBuckets.html b/docs/dyn/compute_v1.backendBuckets.html
new file mode 100644
index 0000000..cd70424
--- /dev/null
+++ b/docs/dyn/compute_v1.backendBuckets.html
@@ -0,0 +1,455 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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.backendBuckets.html">backendBuckets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, backendBucket)</a></code></p>
+<p class="firstline">Deletes the specified BackendBucket resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, backendBucket)</a></code></p>
+<p class="firstline">Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a BackendBucket resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of BackendBucket 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, backendBucket, body)</a></code></p>
+<p class="firstline">Updates the specified BackendBucket resource with the data included in the request. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, backendBucket, body)</a></code></p>
+<p class="firstline">Updates the specified BackendBucket resource with the data included in the request.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, backendBucket)</code>
+  <pre>Deletes the specified BackendBucket resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to delete. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, backendBucket)</code>
+  <pre>Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
+      "kind": "compute#backendBucket", # Type of the resource.
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
+      "bucketName": "A String", # Cloud Storage bucket name.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a BackendBucket resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A BackendBucket resource. This resource defines a Cloud Storage bucket.
+    "kind": "compute#backendBucket", # Type of the resource.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
+    "bucketName": "A String", # Cloud Storage bucket name.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of BackendBucket resources available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of BackendBucket resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # A list of BackendBucket resources.
+      { # A BackendBucket resource. This resource defines a Cloud Storage bucket.
+          "kind": "compute#backendBucket", # Type of the resource.
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
+          "bucketName": "A String", # Cloud Storage bucket name.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#backendBucketList", # Type of resource.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<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, backendBucket, body)</code>
+  <pre>Updates the specified BackendBucket resource with the data included in the request. This method supports patch semantics.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A BackendBucket resource. This resource defines a Cloud Storage bucket.
+    "kind": "compute#backendBucket", # Type of the resource.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
+    "bucketName": "A String", # Cloud Storage bucket name.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, backendBucket, body)</code>
+  <pre>Updates the specified BackendBucket resource with the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A BackendBucket resource. This resource defines a Cloud Storage bucket.
+    "kind": "compute#backendBucket", # Type of the resource.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
+    "bucketName": "A String", # Cloud Storage bucket name.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.backendServices.html b/docs/dyn/compute_v1.backendServices.html
index 91d93db..c5bd197 100644
--- a/docs/dyn/compute_v1.backendServices.html
+++ b/docs/dyn/compute_v1.backendServices.html
@@ -116,7 +116,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -154,7 +154,7 @@
               "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
               "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
                   #
-                  # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+                  # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
                   #
                   # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -259,7 +259,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -321,7 +321,7 @@
       "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -438,7 +438,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -514,7 +514,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -569,7 +569,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -585,7 +585,7 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
           "connectionDraining": { # Message containing connection draining configuration.
@@ -594,7 +594,7 @@
           "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -700,7 +700,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -776,7 +776,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -837,7 +837,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -913,7 +913,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.diskTypes.html b/docs/dyn/compute_v1.diskTypes.html
index a5aeed4..b4712b6 100644
--- a/docs/dyn/compute_v1.diskTypes.html
+++ b/docs/dyn/compute_v1.diskTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -217,7 +217,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.disks.html b/docs/dyn/compute_v1.disks.html
index c3eeade..a7e50ba 100644
--- a/docs/dyn/compute_v1.disks.html
+++ b/docs/dyn/compute_v1.disks.html
@@ -81,7 +81,7 @@
   <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>
+  <code><a href="#createSnapshot">createSnapshot(project, zone, disk, body, guestFlush=None)</a></code></p>
 <p class="firstline">Creates a snapshot of a specified persistent disk.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, disk)</a></code></p>
@@ -113,7 +113,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -129,7 +129,7 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results. Acceptable values are 0 to 500, inclusive. (Default: 500)
     "items": { # [Output Only] A map of scoped disk lists.
       "a_key": { # [Output Only] Name of the scope containing this set of disks.
         "disks": [ # [Output Only] List of disks contained in this scope.
@@ -232,7 +232,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="createSnapshot">createSnapshot(project, zone, disk, body)</code>
+    <code class="details" id="createSnapshot">createSnapshot(project, zone, disk, body, guestFlush=None)</code>
   <pre>Creates a snapshot of a specified persistent disk.
 
 Args:
@@ -274,6 +274,7 @@
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  guestFlush: boolean, A parameter
 
 Returns:
   An object of the form:
@@ -281,7 +282,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -340,7 +341,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -545,7 +546,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -601,7 +602,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -617,8 +618,8 @@
   An object of the form:
 
     { # A list of Disk resources.
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": [ # [Output Only] A list of persistent disks.
+    "nextPageToken": "A String", # This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of Disk resources.
       { # A Disk resource.
           "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
@@ -685,7 +686,7 @@
         },
     ],
     "kind": "compute#diskList", # [Output Only] Type of resource. Always compute#diskList for lists of disks.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
   }</pre>
 </div>
@@ -726,7 +727,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.firewalls.html b/docs/dyn/compute_v1.firewalls.html
index 219dd84..eefea2f 100644
--- a/docs/dyn/compute_v1.firewalls.html
+++ b/docs/dyn/compute_v1.firewalls.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -171,7 +171,7 @@
       "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
         "A String",
       ],
-      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+      "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
         "A String",
       ],
       "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -215,7 +215,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -250,7 +250,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -305,7 +305,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -329,7 +329,7 @@
           "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
             "A String",
           ],
-          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+          "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
             "A String",
           ],
           "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -393,7 +393,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -428,7 +428,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -488,7 +488,7 @@
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
     ],
-    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
+    "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
     "network": "A String", # URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used:
@@ -523,7 +523,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.forwardingRules.html b/docs/dyn/compute_v1.forwardingRules.html
index d82fd34..06970a3 100644
--- a/docs/dyn/compute_v1.forwardingRules.html
+++ b/docs/dyn/compute_v1.forwardingRules.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -135,9 +135,9 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
                   #
-                  # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
                   #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
               "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
               "ports": [ # This field is not used for external load balancing.
                   #
@@ -149,8 +149,8 @@
               "network": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
                   #
                   # This field is not used for internal load balancing.
               "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -161,7 +161,7 @@
                   # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
               "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
                   #
-                  # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+                  # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
               "subnetwork": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -221,7 +221,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -282,9 +282,9 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
       "ports": [ # This field is not used for external load balancing.
           #
@@ -296,8 +296,8 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
           #
           # This field is not used for internal load balancing.
       "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -308,7 +308,7 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
           #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
       "subnetwork": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -336,9 +336,9 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
     "ports": [ # This field is not used for external load balancing.
         # 
@@ -350,8 +350,8 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
         # 
         # This field is not used for internal load balancing.
     "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -362,7 +362,7 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
         # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
     "subnetwork": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -381,7 +381,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -437,7 +437,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -460,9 +460,9 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
           "ports": [ # This field is not used for external load balancing.
               #
@@ -474,8 +474,8 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
               #
               # This field is not used for internal load balancing.
           "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -486,7 +486,7 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
               #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
           "subnetwork": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -540,7 +540,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.globalAddresses.html b/docs/dyn/compute_v1.globalAddresses.html
index 7c89c24..871b4c2 100644
--- a/docs/dyn/compute_v1.globalAddresses.html
+++ b/docs/dyn/compute_v1.globalAddresses.html
@@ -104,7 +104,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -164,7 +164,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource.
+      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -189,7 +189,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource.
+    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -206,7 +206,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -261,7 +261,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -284,7 +284,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource.
+          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_v1.globalForwardingRules.html b/docs/dyn/compute_v1.globalForwardingRules.html
index 48f2db3..a747e8b 100644
--- a/docs/dyn/compute_v1.globalForwardingRules.html
+++ b/docs/dyn/compute_v1.globalForwardingRules.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -167,9 +167,9 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
       "ports": [ # This field is not used for external load balancing.
           #
@@ -181,8 +181,8 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
           #
           # This field is not used for internal load balancing.
       "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -193,7 +193,7 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
           #
-          # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+          # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
       "subnetwork": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -220,9 +220,9 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
     "ports": [ # This field is not used for external load balancing.
         # 
@@ -234,8 +234,8 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
         # 
         # This field is not used for internal load balancing.
     "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -246,7 +246,7 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
         # 
-        # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
     "subnetwork": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -265,7 +265,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -320,7 +320,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -343,9 +343,9 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
           "ports": [ # This field is not used for external load balancing.
               #
@@ -357,8 +357,8 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
               #
               # This field is not used for internal load balancing.
           "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. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
@@ -369,7 +369,7 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
               #
-              # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
+              # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
           "subnetwork": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
@@ -422,7 +422,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.globalOperations.html b/docs/dyn/compute_v1.globalOperations.html
index 2a6bca8..d5c82c2 100644
--- a/docs/dyn/compute_v1.globalOperations.html
+++ b/docs/dyn/compute_v1.globalOperations.html
@@ -104,7 +104,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -127,7 +127,7 @@
           { # An Operation resource, used to manage asynchronous API requests.
             "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
             "clientOperationId": "A String", # [Output Only] Reserved for future use.
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
             "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
             "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -227,7 +227,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -282,7 +282,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -303,7 +303,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.healthChecks.html b/docs/dyn/compute_v1.healthChecks.html
index c5f73d6..0b1cc58 100644
--- a/docs/dyn/compute_v1.healthChecks.html
+++ b/docs/dyn/compute_v1.healthChecks.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -175,21 +175,21 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "httpHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 80.
+        "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
         "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
       },
       "httpsHealthCheck": {
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
       },
       "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -198,7 +198,7 @@
         "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
         "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
         "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-        "port": 42, # The TCP port number for the health check request. The default value is 443.
+        "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
         "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
       },
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -227,21 +227,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -250,7 +250,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -266,7 +266,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -321,7 +321,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -349,21 +349,21 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "httpHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 80.
+            "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
             "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
           },
           "httpsHealthCheck": {
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
           },
           "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -372,7 +372,7 @@
             "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
             "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
             "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-            "port": 42, # The TCP port number for the health check request. The default value is 443.
+            "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
             "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
           },
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -421,21 +421,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -444,7 +444,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -460,7 +460,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -524,21 +524,21 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "httpHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 80.
+      "port": 42, # The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTP health check request. The default value is /.
     },
     "httpsHealthCheck": {
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "host": "A String", # The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "requestPath": "A String", # The request path of the HTTPS health check request. The default value is /.
     },
     "healthyThreshold": 42, # A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.
@@ -547,7 +547,7 @@
       "portName": "A String", # Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.
       "request": "A String", # The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.
       "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
-      "port": 42, # The TCP port number for the health check request. The default value is 443.
+      "port": 42, # The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.
       "response": "A String", # The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.
     },
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in 3339 text format.
@@ -563,7 +563,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.html b/docs/dyn/compute_v1.html
index f0e6886..66df728 100644
--- a/docs/dyn/compute_v1.html
+++ b/docs/dyn/compute_v1.html
@@ -85,6 +85,11 @@
 <p class="firstline">Returns the autoscalers Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_v1.backendBuckets.html">backendBuckets()</a></code>
+</p>
+<p class="firstline">Returns the backendBuckets Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_v1.backendServices.html">backendServices()</a></code>
 </p>
 <p class="firstline">Returns the backendServices Resource.</p>
diff --git a/docs/dyn/compute_v1.httpHealthChecks.html b/docs/dyn/compute_v1.httpHealthChecks.html
index 28a7e49..7e338d1 100644
--- a/docs/dyn/compute_v1.httpHealthChecks.html
+++ b/docs/dyn/compute_v1.httpHealthChecks.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -214,7 +214,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -269,7 +269,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -356,7 +356,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -433,7 +433,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.httpsHealthChecks.html b/docs/dyn/compute_v1.httpsHealthChecks.html
index d9abfd6..c68f7bd 100644
--- a/docs/dyn/compute_v1.httpsHealthChecks.html
+++ b/docs/dyn/compute_v1.httpsHealthChecks.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -214,7 +214,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -269,7 +269,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -356,7 +356,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -433,7 +433,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.images.html b/docs/dyn/compute_v1.images.html
index 9a98b3f..8b388ea 100644
--- a/docs/dyn/compute_v1.images.html
+++ b/docs/dyn/compute_v1.images.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -181,7 +181,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -430,7 +430,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -485,7 +485,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.instanceGroupManagers.html b/docs/dyn/compute_v1.instanceGroupManagers.html
index 3b92f3c..b40ff97 100644
--- a/docs/dyn/compute_v1.instanceGroupManagers.html
+++ b/docs/dyn/compute_v1.instanceGroupManagers.html
@@ -141,7 +141,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -196,7 +196,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -301,7 +301,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -369,7 +369,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -517,7 +517,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -573,7 +573,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -719,7 +719,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -779,7 +779,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -845,7 +845,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -914,7 +914,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.instanceGroups.html b/docs/dyn/compute_v1.instanceGroups.html
index 9c294f6..1fe4730 100644
--- a/docs/dyn/compute_v1.instanceGroups.html
+++ b/docs/dyn/compute_v1.instanceGroups.html
@@ -137,7 +137,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -192,7 +192,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -285,7 +285,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -409,7 +409,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -465,7 +465,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -534,7 +534,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -623,7 +623,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -695,7 +695,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.instanceTemplates.html b/docs/dyn/compute_v1.instanceTemplates.html
index 1d04178..005319f 100644
--- a/docs/dyn/compute_v1.instanceTemplates.html
+++ b/docs/dyn/compute_v1.instanceTemplates.html
@@ -104,7 +104,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -276,6 +276,15 @@
         },
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -285,18 +294,10 @@
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
       },
@@ -431,6 +432,15 @@
       },
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
+          "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+          "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+              #
+              # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+              #
+              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+              # - projects/project/global/networks/network
+              # - global/networks/default
           "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -440,18 +450,10 @@
             },
           ],
           "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
               # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
               # - regions/region/subnetworks/subnetwork
-          "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-              #
-              # global/networks/default
-              #
-              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-              # - projects/project/global/networks/network
-              # - global/networks/default
+          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
     },
@@ -466,7 +468,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -521,7 +523,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -656,6 +658,15 @@
             },
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -665,18 +676,10 @@
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
           },
diff --git a/docs/dyn/compute_v1.instances.html b/docs/dyn/compute_v1.instances.html
index 340a16f..572cec9 100644
--- a/docs/dyn/compute_v1.instances.html
+++ b/docs/dyn/compute_v1.instances.html
@@ -126,6 +126,9 @@
   <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="#setServiceAccount">setServiceAccount(project, zone, instance, body)</a></code></p>
+<p class="firstline">Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.</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>
 <p class="toc_element">
@@ -164,7 +167,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -219,7 +222,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -347,7 +350,9 @@
                 # For example: zones/us-central1-f/machineTypes/custom-4-5120
                 #
                 # For a full list of restrictions, read the Specifications for custom machine types.
-            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+                #
+                # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
                   "A String",
@@ -357,6 +362,15 @@
             ],
             "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
               { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -366,18 +380,10 @@
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
-                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                    #
-                    # global/networks/default
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
             "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -520,7 +526,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -579,7 +585,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -640,7 +646,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -700,7 +706,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -864,7 +870,9 @@
         # For example: zones/us-central1-f/machineTypes/custom-4-5120
         #
         # For a full list of restrictions, read the Specifications for custom machine types.
-    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+        #
+        # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
       { # A service account.
         "scopes": [ # The list of scopes to be made available for this service account.
           "A String",
@@ -874,6 +882,15 @@
     ],
     "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
       { # A network interface resource attached to an instance.
+        "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+        "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+            #
+            # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+            #
+            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+            # - projects/project/global/networks/network
+            # - global/networks/default
         "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
             "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -883,18 +900,10 @@
           },
         ],
         "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
             # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
             # - regions/region/subnetworks/subnetwork
-        "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-            #
-            # global/networks/default
-            #
-            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-            # - projects/project/global/networks/network
-            # - global/networks/default
+        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
       },
     ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -921,14 +930,14 @@
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
-  start: string, For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value that was returned in the previous call.
+  start: string, Returns output starting from a specific byte position. Use this to page through output when the output is too large to return in a single request. For the initial request, leave this field unspecified. For subsequent calls, this field should be set to the next value returned in the previous call.
   port: integer, Specifies which COM or serial port to retrieve data from.
 
 Returns:
   An object of the form:
 
     { # An instance's serial console output.
-    "start": "A String", # [Output Only] The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
+    "start": "A String", # The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer, older output will be overwritten by newer content and the start values will be mismatched.
     "kind": "compute#serialPortOutput", # [Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
     "contents": "A String", # [Output Only] The contents of the console output.
@@ -1054,7 +1063,9 @@
       # For example: zones/us-central1-f/machineTypes/custom-4-5120
       # 
       # For a full list of restrictions, read the Specifications for custom machine types.
-  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+      # 
+      # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
     { # A service account.
       "scopes": [ # The list of scopes to be made available for this service account.
         "A String",
@@ -1064,6 +1075,15 @@
   ],
   "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
     { # A network interface resource attached to an instance.
+      "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+      "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+          #
+          # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+          #
+          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+          # - projects/project/global/networks/network
+          # - global/networks/default
       "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
           "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -1073,18 +1093,10 @@
         },
       ],
       "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
       "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
           # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
           # - regions/region/subnetworks/subnetwork
-      "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-          #
-          # global/networks/default
-          #
-          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-          # - projects/project/global/networks/network
-          # - global/networks/default
+      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
     },
   ],
   "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -1109,7 +1121,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1165,7 +1177,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -1291,7 +1303,9 @@
             # For example: zones/us-central1-f/machineTypes/custom-4-5120
             #
             # For a full list of restrictions, read the Specifications for custom machine types.
-        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+            #
+            # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
               "A String",
@@ -1301,6 +1315,15 @@
         ],
         "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
           { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is 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. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
@@ -1310,18 +1333,10 @@
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
-            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
-                #
-                # global/networks/default
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -1374,7 +1389,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1435,7 +1450,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1501,7 +1516,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1574,7 +1589,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1642,7 +1657,76 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setServiceAccount">setServiceAccount(project, zone, instance, body)</code>
+  <pre>Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance resource to start. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "scopes": [ # The list of scopes to be made available for this service account.
+      "A String",
+    ],
+    "email": "A String", # Email address of the service account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1713,7 +1797,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1772,7 +1856,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1850,7 +1934,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1909,7 +1993,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.machineTypes.html b/docs/dyn/compute_v1.machineTypes.html
index c1d797e..6a5cf3c 100644
--- a/docs/dyn/compute_v1.machineTypes.html
+++ b/docs/dyn/compute_v1.machineTypes.html
@@ -101,7 +101,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -235,7 +235,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.networks.html b/docs/dyn/compute_v1.networks.html
index 3e01b03..8c56ec4 100644
--- a/docs/dyn/compute_v1.networks.html
+++ b/docs/dyn/compute_v1.networks.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -213,7 +213,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -268,7 +268,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -337,7 +337,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.projects.html b/docs/dyn/compute_v1.projects.html
index a446ec9..7f9969d 100644
--- a/docs/dyn/compute_v1.projects.html
+++ b/docs/dyn/compute_v1.projects.html
@@ -162,7 +162,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -233,7 +233,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -304,7 +304,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -369,7 +369,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regionAutoscalers.html b/docs/dyn/compute_v1.regionAutoscalers.html
index c97c18b..cbd6593 100644
--- a/docs/dyn/compute_v1.regionAutoscalers.html
+++ b/docs/dyn/compute_v1.regionAutoscalers.html
@@ -111,7 +111,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -271,7 +271,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -327,7 +327,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -469,7 +469,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -574,7 +574,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regionBackendServices.html b/docs/dyn/compute_v1.regionBackendServices.html
index b5f6eba..b19db73 100644
--- a/docs/dyn/compute_v1.regionBackendServices.html
+++ b/docs/dyn/compute_v1.regionBackendServices.html
@@ -114,7 +114,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -177,7 +177,7 @@
       "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
-          # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+          # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -296,7 +296,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -372,7 +372,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -428,7 +428,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -444,7 +444,7 @@
   An object of the form:
 
     { # Contains a list of BackendService resources.
-    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend virtual machines and their serving capacity.
           "connectionDraining": { # Message containing connection draining configuration.
@@ -453,7 +453,7 @@
           "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
-              # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+              # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -560,7 +560,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -636,7 +636,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -698,7 +698,7 @@
     "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
-        # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
+        # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -774,7 +774,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regionInstanceGroupManagers.html b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
index a73e04c..14e32c5 100644
--- a/docs/dyn/compute_v1.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
@@ -135,7 +135,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -194,7 +194,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -262,7 +262,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -410,7 +410,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -466,7 +466,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -612,7 +612,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -672,7 +672,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -738,7 +738,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -807,7 +807,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regionInstanceGroups.html b/docs/dyn/compute_v1.regionInstanceGroups.html
index e098086..7d8f968 100644
--- a/docs/dyn/compute_v1.regionInstanceGroups.html
+++ b/docs/dyn/compute_v1.regionInstanceGroups.html
@@ -143,7 +143,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -213,7 +213,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -304,7 +304,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regionOperations.html b/docs/dyn/compute_v1.regionOperations.html
index 53f83c5..3d31139 100644
--- a/docs/dyn/compute_v1.regionOperations.html
+++ b/docs/dyn/compute_v1.regionOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.regions.html b/docs/dyn/compute_v1.regions.html
index 5945c8e..c520346 100644
--- a/docs/dyn/compute_v1.regions.html
+++ b/docs/dyn/compute_v1.regions.html
@@ -134,7 +134,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.routers.html b/docs/dyn/compute_v1.routers.html
index 7466d4c..3acd825 100644
--- a/docs/dyn/compute_v1.routers.html
+++ b/docs/dyn/compute_v1.routers.html
@@ -119,7 +119,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -156,10 +156,10 @@
               "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
                 {
                   "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
                   "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
                   "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+                  "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
                   "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
                 },
               ],
@@ -218,7 +218,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -291,10 +291,10 @@
       "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
         {
           "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
           "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
           "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+          "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
           "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         },
       ],
@@ -332,7 +332,7 @@
           "advertisedRoutes": [ # Routes that were advertised to the remote BGP peer
             { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
                 #
-                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+                # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
                 #
                 # Packets that do not match any route in the sending instance's routing table are dropped.
               "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -361,10 +361,10 @@
                   ],
                 },
               ],
-              "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+              "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+              "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
             },
           ],
@@ -377,7 +377,7 @@
       "bestRoutes": [ # Best routes for this router's network.
         { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
             #
-            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+            # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
             #
             # Packets that do not match any route in the sending instance's routing table are dropped.
           "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -406,10 +406,10 @@
               ],
             },
           ],
-          "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         },
       ],
@@ -444,10 +444,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -465,7 +465,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -521,7 +521,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -556,10 +556,10 @@
           "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
             {
               "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
               "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
               "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+              "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
               "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
             },
           ],
@@ -618,10 +618,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -639,7 +639,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -711,10 +711,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -747,10 +747,10 @@
         "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
           {
             "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
             "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
             "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+            "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
             "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
           },
         ],
@@ -791,10 +791,10 @@
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
         "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud.
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
-        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform.
+        "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
         "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
@@ -812,7 +812,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.routes.html b/docs/dyn/compute_v1.routes.html
index aafc04c..1152426 100644
--- a/docs/dyn/compute_v1.routes.html
+++ b/docs/dyn/compute_v1.routes.html
@@ -104,7 +104,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -161,7 +161,7 @@
 
     { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
       #
-      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+      # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
       #
       # Packets that do not match any route in the sending instance's routing table are dropped.
     "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -190,10 +190,10 @@
         ],
       },
     ],
-    "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+    "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   }</pre>
 </div>
@@ -209,7 +209,7 @@
 
 { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
     # 
-    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+    # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
     # 
     # Packets that do not match any route in the sending instance's routing table are dropped.
   "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -238,10 +238,10 @@
       ],
     },
   ],
-  "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+  "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
   "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
   "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+  "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
 }
 
@@ -252,7 +252,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -307,7 +307,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -327,7 +327,7 @@
     "items": [ # [Output Only] A list of Route resources.
       { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
           #
-          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, a instance gateway or a Google Compute Engine-operated gateway.
+          # For each packet leaving a instance, the system searches that instance'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 nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
           #
           # Packets that do not match any route in the sending instance's routing table are dropped.
         "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
@@ -356,10 +356,10 @@
             ],
           },
         ],
-        "destRange": "A String", # The destination range of outgoing packets that this route applies to.
+        "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+        "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       },
     ],
diff --git a/docs/dyn/compute_v1.snapshots.html b/docs/dyn/compute_v1.snapshots.html
index 5eeeb5c..eaeab03 100644
--- a/docs/dyn/compute_v1.snapshots.html
+++ b/docs/dyn/compute_v1.snapshots.html
@@ -103,7 +103,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -202,7 +202,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.sslCertificates.html b/docs/dyn/compute_v1.sslCertificates.html
index 79fe9fd..1561c51 100644
--- a/docs/dyn/compute_v1.sslCertificates.html
+++ b/docs/dyn/compute_v1.sslCertificates.html
@@ -104,7 +104,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -198,7 +198,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -253,7 +253,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.subnetworks.html b/docs/dyn/compute_v1.subnetworks.html
index 9ff1e95..d8bb603 100644
--- a/docs/dyn/compute_v1.subnetworks.html
+++ b/docs/dyn/compute_v1.subnetworks.html
@@ -110,7 +110,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -136,7 +136,7 @@
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "region": "A String", # URL of the region where the Subnetwork resides.
               "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
               "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -191,7 +191,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -257,7 +257,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -319,7 +319,7 @@
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "region": "A String", # URL of the region where the Subnetwork resides.
       "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
       "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -343,7 +343,7 @@
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "region": "A String", # URL of the region where the Subnetwork resides.
     "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
     "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -357,7 +357,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -413,7 +413,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -437,7 +437,7 @@
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "region": "A String", # URL of the region where the Subnetwork resides.
           "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
           "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
diff --git a/docs/dyn/compute_v1.targetHttpProxies.html b/docs/dyn/compute_v1.targetHttpProxies.html
index a5f3379..4bff28d 100644
--- a/docs/dyn/compute_v1.targetHttpProxies.html
+++ b/docs/dyn/compute_v1.targetHttpProxies.html
@@ -107,7 +107,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -199,7 +199,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -254,7 +254,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -323,7 +323,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.targetHttpsProxies.html b/docs/dyn/compute_v1.targetHttpsProxies.html
index c3b8cae..226a471 100644
--- a/docs/dyn/compute_v1.targetHttpsProxies.html
+++ b/docs/dyn/compute_v1.targetHttpsProxies.html
@@ -110,7 +110,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -214,7 +214,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -269,7 +269,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -346,7 +346,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -411,7 +411,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.targetInstances.html b/docs/dyn/compute_v1.targetInstances.html
index b89ef3d..6910312 100644
--- a/docs/dyn/compute_v1.targetInstances.html
+++ b/docs/dyn/compute_v1.targetInstances.html
@@ -107,7 +107,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -294,7 +294,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -350,7 +350,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.targetPools.html b/docs/dyn/compute_v1.targetPools.html
index dd70efb..0b77510 100644
--- a/docs/dyn/compute_v1.targetPools.html
+++ b/docs/dyn/compute_v1.targetPools.html
@@ -126,7 +126,7 @@
     The object takes the form of:
 
 {
-    "healthChecks": [ # A list of HttpHealthCheck resources to add to the target pool.
+    "healthChecks": [ # The HttpHealthCheck to add to the target pool.
       { # A full or valid partial URL to a health check. For example, the following are valid URLs:
           # - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
           # - projects/project-id/global/httpHealthChecks/health-check
@@ -143,7 +143,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -216,7 +216,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -271,7 +271,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -302,7 +302,7 @@
           ],
         },
         "targetPools": [ # List of target pools contained in this scope.
-          { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+          { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
               "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -323,7 +323,7 @@
                   # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-              "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+              "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
                 "A String",
               ],
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -369,7 +369,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -425,7 +425,7 @@
 Returns:
   An object of the form:
 
-    { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+    { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
       "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -446,7 +446,7 @@
           # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-      "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+      "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
         "A String",
       ],
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -498,7 +498,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+{ # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
     "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -519,7 +519,7 @@
         # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-    "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+    "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
       "A String",
     ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -535,7 +535,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -591,7 +591,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -609,7 +609,7 @@
     { # Contains a list of TargetPool resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of TargetPool resources.
-      { # A TargetPool resource. This resource defines a pool of instances, associated HttpHealthCheck resources, and the fallback target pool.
+      { # A TargetPool resource. This resource defines a pool of instances, an associated HttpHealthCheck resource, and the fallback target pool.
           "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 instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
@@ -630,7 +630,7 @@
               # backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances 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 instances 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 instances with the best effort, or to all instances when no instance is healthy.
-          "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member instances will be considered healthy at all times.
+          "healthChecks": [ # The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. An empty list means all member instances will be considered healthy at all times. Only HttpHealthChecks are supported. Only one health check may be specified.
             "A String",
           ],
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
@@ -691,7 +691,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -761,7 +761,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -828,7 +828,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.targetSslProxies.html b/docs/dyn/compute_v1.targetSslProxies.html
index 3002135..b1b599c 100644
--- a/docs/dyn/compute_v1.targetSslProxies.html
+++ b/docs/dyn/compute_v1.targetSslProxies.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -213,7 +213,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -268,7 +268,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -341,7 +341,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -406,7 +406,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -473,7 +473,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.targetVpnGateways.html b/docs/dyn/compute_v1.targetVpnGateways.html
index 5f8f834..da78ef8 100644
--- a/docs/dyn/compute_v1.targetVpnGateways.html
+++ b/docs/dyn/compute_v1.targetVpnGateways.html
@@ -107,7 +107,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -193,7 +193,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -303,7 +303,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -359,7 +359,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/compute_v1.urlMaps.html b/docs/dyn/compute_v1.urlMaps.html
index f41378a..812fbf1 100644
--- a/docs/dyn/compute_v1.urlMaps.html
+++ b/docs/dyn/compute_v1.urlMaps.html
@@ -116,7 +116,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -280,7 +280,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -346,7 +346,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -401,7 +401,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -548,7 +548,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -655,7 +655,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.vpnTunnels.html b/docs/dyn/compute_v1.vpnTunnels.html
index 31541f7..a359589 100644
--- a/docs/dyn/compute_v1.vpnTunnels.html
+++ b/docs/dyn/compute_v1.vpnTunnels.html
@@ -107,7 +107,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -131,13 +131,13 @@
               "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
               "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
               "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "peerIp": "A String", # IP address of the peer VPN gateway.
+              "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
               "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+              "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
                 "A String",
               ],
               "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -199,7 +199,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -259,13 +259,13 @@
       "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
       "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
       "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "peerIp": "A String", # IP address of the peer VPN gateway.
+      "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
       "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+      "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
         "A String",
       ],
       "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -294,13 +294,13 @@
     "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
     "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
     "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "peerIp": "A String", # IP address of the peer VPN gateway.
+    "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
     "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+    "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
       "A String",
     ],
     "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
@@ -321,7 +321,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -377,7 +377,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -399,13 +399,13 @@
           "detailedStatus": "A String", # [Output Only] Detailed status message for the VPN tunnel.
           "ikeVersion": 42, # IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.
           "kind": "compute#vpnTunnel", # [Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.
-          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "remoteTrafficSelector": [ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "peerIp": "A String", # IP address of the peer VPN gateway.
+          "peerIp": "A String", # IP address of the peer VPN gateway. Only IPv4 is supported.
           "region": "A String", # [Output Only] URL of the region where the VPN tunnel resides.
-          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint.
+          "localTrafficSelector": [ # Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.
             "A String",
           ],
           "targetVpnGateway": "A String", # URL of the VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.
diff --git a/docs/dyn/compute_v1.zoneOperations.html b/docs/dyn/compute_v1.zoneOperations.html
index 7988522..02e0a45 100644
--- a/docs/dyn/compute_v1.zoneOperations.html
+++ b/docs/dyn/compute_v1.zoneOperations.html
@@ -113,7 +113,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -190,7 +190,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/compute_v1.zones.html b/docs/dyn/compute_v1.zones.html
index f34034f..d1f7b2e 100644
--- a/docs/dyn/compute_v1.zones.html
+++ b/docs/dyn/compute_v1.zones.html
@@ -125,7 +125,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/container_v1.projects.zones.clusters.html b/docs/dyn/container_v1.projects.zones.clusters.html
index 2f8e954..897c181 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.html
@@ -119,6 +119,7 @@
       "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
         "A String",
       ],
+      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
       "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
       "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
       "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
@@ -138,28 +139,51 @@
         "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
         "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
       },
+      "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-      "nodePools": [ # The node pools associated with this cluster. When creating a new cluster, only a single node pool should be specified. This field should not be set if "node_config" or "initial_node_count" are specified.
+      "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
         { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
-          "status": "A String", # The status of the nodes in this pool instance.
+          "status": "A String", # [Output only] The status of the nodes in this pool instance.
           "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
           "name": "A String", # The name of the node pool.
           "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
             "A String",
           ],
-          "version": "A String", # The version of the Kubernetes of this node.
+          "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+            "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+            "enabled": True or False, # Is autoscaling enabled for this node pool.
+            "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+          },
+          "version": "A String", # [Output only] The version of the Kubernetes of this node.
           "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+          "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+            "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+              "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+              "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+            },
+            "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+          },
           "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-            "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
             "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+            "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+              "A String",
+            ],
+            "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+            "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+              "a_key": "A String",
+            },
+            "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
             "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
               "A String",
             ],
+            "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+            "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+            "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
             "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
               "a_key": "A String",
             },
           },
-          "selfLink": "A String", # Server-defined URL for the resource.
+          "selfLink": "A String", # [Output only] Server-defined URL for the resource.
         },
       ],
       "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
@@ -169,11 +193,21 @@
       "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
       "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
       "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
         "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+          "A String",
+        ],
+        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+          "a_key": "A String",
+        },
+        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
         "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
           "A String",
         ],
+        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+        "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+        "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
         "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
           "a_key": "A String",
         },
@@ -252,6 +286,7 @@
     "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
       "A String",
     ],
+    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
     "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
     "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
     "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
@@ -271,28 +306,51 @@
       "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
       "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
     },
+    "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-    "nodePools": [ # The node pools associated with this cluster. When creating a new cluster, only a single node pool should be specified. This field should not be set if "node_config" or "initial_node_count" are specified.
+    "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
       { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
-        "status": "A String", # The status of the nodes in this pool instance.
+        "status": "A String", # [Output only] The status of the nodes in this pool instance.
         "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
         "name": "A String", # The name of the node pool.
         "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
           "A String",
         ],
-        "version": "A String", # The version of the Kubernetes of this node.
+        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+          "enabled": True or False, # Is autoscaling enabled for this node pool.
+          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+        },
+        "version": "A String", # [Output only] The version of the Kubernetes of this node.
         "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+        "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+            "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+          },
+          "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+        },
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
           "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+            "A String",
+          ],
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+            "a_key": "A String",
+          },
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
           "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
             "A String",
           ],
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
           "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
         },
-        "selfLink": "A String", # Server-defined URL for the resource.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
       },
     ],
     "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
@@ -302,11 +360,21 @@
     "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
     "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
     "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
       "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+        "A String",
+      ],
+      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+        "a_key": "A String",
+      },
+      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
       "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
         "A String",
       ],
+      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+      "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+      "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
       "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
         "a_key": "A String",
       },
@@ -344,6 +412,7 @@
         "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
           "A String",
         ],
+        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
         "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
         "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
         "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
@@ -363,28 +432,51 @@
           "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
           "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
         },
+        "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
         "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-        "nodePools": [ # The node pools associated with this cluster. When creating a new cluster, only a single node pool should be specified. This field should not be set if "node_config" or "initial_node_count" are specified.
+        "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
           { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
-            "status": "A String", # The status of the nodes in this pool instance.
+            "status": "A String", # [Output only] The status of the nodes in this pool instance.
             "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
             "name": "A String", # The name of the node pool.
             "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
               "A String",
             ],
-            "version": "A String", # The version of the Kubernetes of this node.
+            "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+              "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+              "enabled": True or False, # Is autoscaling enabled for this node pool.
+              "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+            },
+            "version": "A String", # [Output only] The version of the Kubernetes of this node.
             "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+            "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+              "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+                "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+                "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+              },
+              "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+            },
             "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-              "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
               "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+              "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+                "A String",
+              ],
+              "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+              "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+                "a_key": "A String",
+              },
+              "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
               "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
                 "A String",
               ],
+              "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+              "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+              "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
               "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
                 "a_key": "A String",
               },
             },
-            "selfLink": "A String", # Server-defined URL for the resource.
+            "selfLink": "A String", # [Output only] Server-defined URL for the resource.
           },
         ],
         "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
@@ -394,11 +486,21 @@
         "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
         "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
         "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
           "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+            "A String",
+          ],
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+            "a_key": "A String",
+          },
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
           "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
             "A String",
           ],
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
           "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
@@ -427,10 +529,9 @@
 
 { # UpdateClusterRequest updates the settings of a cluster.
     "update": { # ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided. # A description of the update.
-      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the latest supported version. Use "-" to have the server automatically select the latest version.
-      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if the "desired_node_version" or "desired_image_family" is specified and there is more than one node pool on the cluster.
-      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an upgrade). Use `-` to upgrade to the latest version supported by the server.
-      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com" - the Google Cloud Monitoring service * "none" - no metrics will be exported from the cluster
+      "desiredLocations": [ # The desired list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located. Changing the locations a cluster is in will result in nodes being either created or removed from the cluster, depending on whether locations are being added or removed. This list must always include the cluster's primary zone.
+        "A String",
+      ],
       "desiredAddonsConfig": { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
         "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
           "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.
@@ -439,6 +540,16 @@
           "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.
         },
       },
+      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the latest supported version. Use "-" to have the server automatically select the latest version.
+      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if "desired_node_version", "desired_image_family" or "desired_node_pool_autoscaling" is specified and there is more than one node pool on the cluster.
+      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an upgrade). Use `-` to upgrade to the latest version supported by the server.
+      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com" - the Google Cloud Monitoring service * "none" - no metrics will be exported from the cluster
+      "desiredNodePoolAutoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool.
+        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+        "enabled": True or False, # Is autoscaling enabled for this node pool.
+        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+      },
+      "desiredImageType": "A String", # The desired image type for the node pool. NOTE: Set the "desired_node_pool" field as well.
     },
   }
 
diff --git a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
index f8308e1..e897e8c 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
@@ -86,6 +86,12 @@
 <p class="toc_element">
   <code><a href="#list">list(projectId, zone, clusterId, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the node pools for a cluster.</p>
+<p class="toc_element">
+  <code><a href="#rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Roll back the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.</p>
+<p class="toc_element">
+  <code><a href="#setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the NodeManagement options for a node pool.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(projectId, zone, clusterId, body, x__xgafv=None)</code>
@@ -100,25 +106,47 @@
 
 { # CreateNodePoolRequest creates a node pool for a cluster.
     "nodePool": { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload. # The node pool to create.
-      "status": "A String", # The status of the nodes in this pool instance.
+      "status": "A String", # [Output only] The status of the nodes in this pool instance.
       "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
       "name": "A String", # The name of the node pool.
       "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
         "A String",
       ],
-      "version": "A String", # The version of the Kubernetes of this node.
+      "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+        "enabled": True or False, # Is autoscaling enabled for this node pool.
+        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+      },
+      "version": "A String", # [Output only] The version of the Kubernetes of this node.
       "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+      "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+        "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+          "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+          "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        },
+        "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+      },
       "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
         "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+          "A String",
+        ],
+        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+          "a_key": "A String",
+        },
+        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
         "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
           "A String",
         ],
+        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+        "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+        "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
         "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
           "a_key": "A String",
         },
       },
-      "selfLink": "A String", # Server-defined URL for the resource.
+      "selfLink": "A String", # [Output only] Server-defined URL for the resource.
     },
   }
 
@@ -180,25 +208,47 @@
   An object of the form:
 
     { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
-    "status": "A String", # The status of the nodes in this pool instance.
+    "status": "A String", # [Output only] The status of the nodes in this pool instance.
     "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
     "name": "A String", # The name of the node pool.
     "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
       "A String",
     ],
-    "version": "A String", # The version of the Kubernetes of this node.
+    "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+      "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+      "enabled": True or False, # Is autoscaling enabled for this node pool.
+      "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+    },
+    "version": "A String", # [Output only] The version of the Kubernetes of this node.
     "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+    "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+        "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+      },
+      "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+    },
     "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
       "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+        "A String",
+      ],
+      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+        "a_key": "A String",
+      },
+      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
       "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
         "A String",
       ],
+      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+      "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+      "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
       "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
         "a_key": "A String",
       },
     },
-    "selfLink": "A String", # Server-defined URL for the resource.
+    "selfLink": "A String", # [Output only] Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -218,28 +268,121 @@
     { # ListNodePoolsResponse is the result of ListNodePoolsRequest.
     "nodePools": [ # A list of node pools for a cluster.
       { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
-        "status": "A String", # The status of the nodes in this pool instance.
+        "status": "A String", # [Output only] The status of the nodes in this pool instance.
         "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
         "name": "A String", # The name of the node pool.
         "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
           "A String",
         ],
-        "version": "A String", # The version of the Kubernetes of this node.
+        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
+          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+          "enabled": True or False, # Is autoscaling enabled for this node pool.
+          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+        },
+        "version": "A String", # [Output only] The version of the Kubernetes of this node.
         "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
+        "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
+          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+            "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+          },
+          "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+        },
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
           "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+            "A String",
+          ],
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+            "a_key": "A String",
+          },
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
           "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
             "A String",
           ],
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
           "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are 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 or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
         },
-        "selfLink": "A String", # Server-defined URL for the resource.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
       },
     ],
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+  <pre>Roll back the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  clusterId: string, The name of the cluster to rollback. (required)
+  nodePoolId: string, The name of the node pool to rollback. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.
+  }
+
+  x__xgafv: string, V1 error format.
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "selfLink": "A String", # Server-defined URL for the resource.
+    "operationType": "A String", # The operation type.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+  <pre>Sets the NodeManagement options for a node pool.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  clusterId: string, The name of the cluster to update. (required)
+  nodePoolId: string, The name of the node pool to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # SetNodePoolManagementRequest sets the node management properties of a node pool.
+    "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for the node pool.
+      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
+        "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
+        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+      },
+      "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "selfLink": "A String", # Server-defined URL for the resource.
+    "operationType": "A String", # The operation type.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1.projects.zones.html b/docs/dyn/container_v1.projects.zones.html
index b840f4c..47dc6f2 100644
--- a/docs/dyn/container_v1.projects.zones.html
+++ b/docs/dyn/container_v1.projects.zones.html
@@ -105,10 +105,13 @@
     "validNodeVersions": [ # List of valid node upgrade target versions.
       "A String",
     ],
-    "defaultImageFamily": "A String", # Default image family.
-    "validImageFamilies": [ # List of valid image families.
+    "validImageTypes": [ # List of valid image types.
       "A String",
     ],
+    "validMasterVersions": [ # List of valid master versions.
+      "A String",
+    ],
+    "defaultImageType": "A String", # Default image type.
   }</pre>
 </div>
 
diff --git a/docs/dyn/container_v1.projects.zones.operations.html b/docs/dyn/container_v1.projects.zones.operations.html
index cbade27..0ef563a 100644
--- a/docs/dyn/container_v1.projects.zones.operations.html
+++ b/docs/dyn/container_v1.projects.zones.operations.html
@@ -75,6 +75,9 @@
 <h1><a href="container_v1.html">Google Container Engine API</a> . <a href="container_v1.projects.html">projects</a> . <a href="container_v1.projects.zones.html">zones</a> . <a href="container_v1.projects.zones.operations.html">operations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#cancel">cancel(projectId, zone, operationId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Cancels the specified operation.</p>
+<p class="toc_element">
   <code><a href="#get">get(projectId, zone, operationId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the specified operation.</p>
 <p class="toc_element">
@@ -82,6 +85,29 @@
 <p class="firstline">Lists all operations in a project in a specific zone or all zones.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="cancel">cancel(projectId, zone, operationId, body, x__xgafv=None)</code>
+  <pre>Cancels the specified operation.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation resides. (required)
+  operationId: string, The server-assigned `name` of the operation. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # CancelOperationRequest cancels a single operation.
+  }
+
+  x__xgafv: string, V1 error format.
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(projectId, zone, operationId, x__xgafv=None)</code>
   <pre>Gets the specified operation.
 
diff --git a/docs/dyn/content_v2.accounts.html b/docs/dyn/content_v2.accounts.html
index 0a01c5f..b9cb347 100644
--- a/docs/dyn/content_v2.accounts.html
+++ b/docs/dyn/content_v2.accounts.html
@@ -97,10 +97,10 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(merchantId, accountId, body, dryRun=None)</a></code></p>
-<p class="firstline">Updates a Merchant Center account. This method can only be called for multi-client accounts. This method supports patch semantics.</p>
+<p class="firstline">Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(merchantId, accountId, body, dryRun=None)</a></code></p>
-<p class="firstline">Updates a Merchant Center account. This method can only be called for multi-client accounts.</p>
+<p class="firstline">Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="authinfo">authinfo()</code>
@@ -146,7 +146,7 @@
             "id": "A String", # Merchant Center account ID.
             "websiteUrl": "A String", # The merchant's website.
             "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-            "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+            "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
               {
                 "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
                 "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -183,7 +183,7 @@
             "id": "A String", # Merchant Center account ID.
             "websiteUrl": "A String", # The merchant's website.
             "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-            "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+            "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
               {
                 "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
                 "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -243,7 +243,7 @@
       "id": "A String", # Merchant Center account ID.
       "websiteUrl": "A String", # The merchant's website.
       "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-      "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
         {
           "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
           "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -275,7 +275,7 @@
     "id": "A String", # Merchant Center account ID.
     "websiteUrl": "A String", # The merchant's website.
     "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-    "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
       {
         "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
         "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -302,7 +302,7 @@
       "id": "A String", # Merchant Center account ID.
       "websiteUrl": "A String", # The merchant's website.
       "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-      "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
         {
           "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
           "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -341,7 +341,7 @@
           "id": "A String", # Merchant Center account ID.
           "websiteUrl": "A String", # The merchant's website.
           "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-          "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+          "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
             {
               "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
               "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -374,7 +374,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(merchantId, accountId, body, dryRun=None)</code>
-  <pre>Updates a Merchant Center account. This method can only be called for multi-client accounts. This method supports patch semantics.
+  <pre>Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
@@ -390,7 +390,7 @@
     "id": "A String", # Merchant Center account ID.
     "websiteUrl": "A String", # The merchant's website.
     "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-    "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
       {
         "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
         "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -417,7 +417,7 @@
       "id": "A String", # Merchant Center account ID.
       "websiteUrl": "A String", # The merchant's website.
       "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-      "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
         {
           "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
           "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -434,7 +434,7 @@
 
 <div class="method">
     <code class="details" id="update">update(merchantId, accountId, body, dryRun=None)</code>
-  <pre>Updates a Merchant Center account. This method can only be called for multi-client accounts.
+  <pre>Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
@@ -450,7 +450,7 @@
     "id": "A String", # Merchant Center account ID.
     "websiteUrl": "A String", # The merchant's website.
     "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-    "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
       {
         "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
         "adwordsId": "A String", # Customer ID of the AdWords account.
@@ -477,7 +477,7 @@
       "id": "A String", # Merchant Center account ID.
       "websiteUrl": "A String", # The merchant's website.
       "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
-      "adwordsLinks": [ # List of linked AdWords accounts, active or pending approval. To create a new link request, add a new link with status active to the list. It will remain is state pending until approved or rejected in the AdWords interface. To delete an active link or to cancel a link request, remove it from the list.
+      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
         {
           "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
           "adwordsId": "A String", # Customer ID of the AdWords account.
diff --git a/docs/dyn/content_v2.accountstatuses.html b/docs/dyn/content_v2.accountstatuses.html
index 88fcdd3..5472b42 100644
--- a/docs/dyn/content_v2.accountstatuses.html
+++ b/docs/dyn/content_v2.accountstatuses.html
@@ -134,6 +134,11 @@
               "severity": "A String", # Severity of the problem.
               "lastChecked": "A String", # Last time the account was checked for this issue.
               "country": "A String", # Country for which this issue is reported.
+              "detail": "A String", # A more detailed description of the issue.
+              "submittedValue": "A String", # Submitted value that causes the issue.
+              "numItems": 42, # Number of items in the account found to have the said issue.
+              "location": "A String", # The attribute name that is relevant for the issue.
+              "id": "A String", # Issue identifier.
               "exampleItems": [ # Example items featuring the issue.
                 { # An example of an item that has poor data quality. An item value on the landing page differs from what is submitted, or conflicts with a policy.
                   "itemId": "A String", # Unique item ID as specified in the uploaded product data.
@@ -143,9 +148,6 @@
                   "title": "A String", # Title of the item.
                 },
               ],
-              "submittedValue": "A String", # Submitted value that causes the issue.
-              "numItems": 42, # Number of items in the account found to have the said issue.
-              "id": "A String", # Issue identifier.
             },
           ],
           "accountId": "A String", # The ID of the account for which the status is reported.
@@ -174,6 +176,11 @@
         "severity": "A String", # Severity of the problem.
         "lastChecked": "A String", # Last time the account was checked for this issue.
         "country": "A String", # Country for which this issue is reported.
+        "detail": "A String", # A more detailed description of the issue.
+        "submittedValue": "A String", # Submitted value that causes the issue.
+        "numItems": 42, # Number of items in the account found to have the said issue.
+        "location": "A String", # The attribute name that is relevant for the issue.
+        "id": "A String", # Issue identifier.
         "exampleItems": [ # Example items featuring the issue.
           { # An example of an item that has poor data quality. An item value on the landing page differs from what is submitted, or conflicts with a policy.
             "itemId": "A String", # Unique item ID as specified in the uploaded product data.
@@ -183,9 +190,6 @@
             "title": "A String", # Title of the item.
           },
         ],
-        "submittedValue": "A String", # Submitted value that causes the issue.
-        "numItems": 42, # Number of items in the account found to have the said issue.
-        "id": "A String", # Issue identifier.
       },
     ],
     "accountId": "A String", # The ID of the account for which the status is reported.
@@ -216,6 +220,11 @@
             "severity": "A String", # Severity of the problem.
             "lastChecked": "A String", # Last time the account was checked for this issue.
             "country": "A String", # Country for which this issue is reported.
+            "detail": "A String", # A more detailed description of the issue.
+            "submittedValue": "A String", # Submitted value that causes the issue.
+            "numItems": 42, # Number of items in the account found to have the said issue.
+            "location": "A String", # The attribute name that is relevant for the issue.
+            "id": "A String", # Issue identifier.
             "exampleItems": [ # Example items featuring the issue.
               { # An example of an item that has poor data quality. An item value on the landing page differs from what is submitted, or conflicts with a policy.
                 "itemId": "A String", # Unique item ID as specified in the uploaded product data.
@@ -225,9 +234,6 @@
                 "title": "A String", # Title of the item.
               },
             ],
-            "submittedValue": "A String", # Submitted value that causes the issue.
-            "numItems": 42, # Number of items in the account found to have the said issue.
-            "id": "A String", # Issue identifier.
           },
         ],
         "accountId": "A String", # The ID of the account for which the status is reported.
diff --git a/docs/dyn/content_v2.datafeeds.html b/docs/dyn/content_v2.datafeeds.html
index 7af9439..ad527e7 100644
--- a/docs/dyn/content_v2.datafeeds.html
+++ b/docs/dyn/content_v2.datafeeds.html
@@ -114,7 +114,7 @@
         "datafeedId": "A String", # The ID of the data feed to get or delete.
         "datafeed": { # Datafeed data. # The data feed to insert.
             "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-            "contentType": "A String", # The type of data feed.
+            "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
             "name": "A String", # A descriptive name of the data feed.
             "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
             "format": { # Format of the feed file.
@@ -169,7 +169,7 @@
         },
         "datafeed": { # Datafeed data. # The requested data feed. Defined if and only if the request was successful.
             "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-            "contentType": "A String", # The type of data feed.
+            "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
             "name": "A String", # A descriptive name of the data feed.
             "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
             "format": { # Format of the feed file.
@@ -224,7 +224,7 @@
 
     { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-      "contentType": "A String", # The type of data feed.
+      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
       "name": "A String", # A descriptive name of the data feed.
       "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
       "format": { # Format of the feed file.
@@ -263,7 +263,7 @@
 
 { # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-    "contentType": "A String", # The type of data feed.
+    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
     "name": "A String", # A descriptive name of the data feed.
     "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
     "format": { # Format of the feed file.
@@ -297,7 +297,7 @@
 
     { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-      "contentType": "A String", # The type of data feed.
+      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
       "name": "A String", # A descriptive name of the data feed.
       "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
       "format": { # Format of the feed file.
@@ -343,7 +343,7 @@
     "resources": [
       { # Datafeed data.
           "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-          "contentType": "A String", # The type of data feed.
+          "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
           "name": "A String", # A descriptive name of the data feed.
           "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
           "format": { # Format of the feed file.
@@ -399,7 +399,7 @@
 
 { # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-    "contentType": "A String", # The type of data feed.
+    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
     "name": "A String", # A descriptive name of the data feed.
     "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
     "format": { # Format of the feed file.
@@ -433,7 +433,7 @@
 
     { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-      "contentType": "A String", # The type of data feed.
+      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
       "name": "A String", # A descriptive name of the data feed.
       "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
       "format": { # Format of the feed file.
@@ -473,7 +473,7 @@
 
 { # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-    "contentType": "A String", # The type of data feed.
+    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
     "name": "A String", # A descriptive name of the data feed.
     "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
     "format": { # Format of the feed file.
@@ -507,7 +507,7 @@
 
     { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
-      "contentType": "A String", # The type of data feed.
+      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
       "name": "A String", # A descriptive name of the data feed.
       "contentLanguage": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
       "format": { # Format of the feed file.
diff --git a/docs/dyn/dataflow_v1b3.projects.html b/docs/dyn/dataflow_v1b3.projects.html
index 6323230..a723b9e 100644
--- a/docs/dyn/dataflow_v1b3.projects.html
+++ b/docs/dyn/dataflow_v1b3.projects.html
@@ -105,22 +105,89 @@
 { # A request for sending worker messages to the service.
     "workerMessages": [ # The WorkerMessages to send.
       { # WorkerMessage provides information to the backend about a worker.
-        "workerHealthReport": { # WorkerHealthReport contains information about the health of a worker. The VM should be identified by the labels attached to the WorkerMessage that this health ping belongs to. # The health of a worker.
-          "pods": [ # The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod This field is used by the worker to send the status of the indvidual containers running on each worker.
+        "workerHealthReport": { # WorkerHealthReport contains information about the health of a worker. # The health of a worker.
+            #
+            # The VM should be identified by the labels attached to the WorkerMessage that
+            # this health ping belongs to.
+          "pods": [ # The pods running on the worker. See:
+              # http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
+              #
+              # This field is used by the worker to send the status of the indvidual
+              # containers running on each worker.
             {
               "a_key": "", # Properties of the object.
             },
           ],
-          "reportInterval": "A String", # The interval at which the worker is sending health reports. The default value of 0 should be interpreted as the field is not being explicitly set by the worker.
+          "reportInterval": "A String", # The interval at which the worker is sending health reports.
+              # The default value of 0 should be interpreted as the field is not being
+              # explicitly set by the worker.
           "vmStartupTime": "A String", # The time the VM was booted.
           "vmIsHealthy": True or False, # Whether the VM is healthy.
         },
-        "labels": { # Labels are used to group WorkerMessages. For example, a worker_message about a particular container might have the labels: { "JOB_ID": "2015-04-22", "WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE": "worker", "CONTAINER_ID": "ac1234def"} Label tags typically correspond to Label enum values. However, for ease of development other strings can be used as tags. LABEL_UNSPECIFIED should not be used here.
+        "labels": { # Labels are used to group WorkerMessages.
+            # For example, a worker_message about a particular container
+            # might have the labels:
+            # { "JOB_ID": "2015-04-22",
+            #   "WORKER_ID": "wordcount-vm-2015…"
+            #   "CONTAINER_TYPE": "worker",
+            #   "CONTAINER_ID": "ac1234def"}
+            # Label tags typically correspond to Label enum values. However, for ease
+            # of development other strings can be used as tags. LABEL_UNSPECIFIED should
+            # not be used here.
           "a_key": "A String",
         },
-        "workerMessageCode": { # A message code is used to report status and error messages to the service. The message codes are intended to be machine readable. The service will take care of translating these into user understandable messages if necessary. Example use cases: 1. Worker processes reporting successful startup. 2. Worker processes reporting specific errors (e.g. package staging failure). # A worker message code.
-          "code": "A String", # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. "HARNESS_STARTED" might be used to indicate the worker harness has started. 2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error downloading a GCS file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
-          "parameters": { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a "HARNESS_STARTED" message parameters might provide the name of the worker and additional data like timing information. 2. For a "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn't typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
+        "workerMetrics": { # Worker metrics exported from workers. This contains resource utilization # Resource metrics reported by workers.
+            # metrics accumulated from a variety of sources. For more information, see
+            # go/df-resource-signals.
+          "cpuTime": [ # CPU utilization samples.
+            { # Modeled after information exposed by /proc/stat.
+              "timestamp": "A String", # Timestamp of the measurement.
+              "rate": 3.14, # Average CPU utilization rate (% non-idle cpu / second) since previous
+                  # sample.
+              "totalMs": "A String", # Total active CPU time across all cores (ie., non-idle) in milliseconds
+                  # since start-up.
+            },
+          ],
+        },
+        "workerMessageCode": { # A message code is used to report status and error messages to the service. # A worker message code.
+            # The message codes are intended to be machine readable. The service will
+            # take care of translating these into user understandable messages if
+            # necessary.
+            #
+            # Example use cases:
+            #   1. Worker processes reporting successful startup.
+            #   2. Worker processes reporting specific errors (e.g. package staging
+            #      failure).
+          "code": "A String", # The code is a string intended for consumption by a machine that identifies
+              # the type of message being sent.
+              # Examples:
+              #  1. "HARNESS_STARTED" might be used to indicate the worker harness has
+              #      started.
+              #  2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error downloading
+              #     a GCS file as part of the boot process of one of the worker containers.
+              #
+              # This is a string and not an enum to make it easy to add new codes without
+              # waiting for an API change.
+          "parameters": { # Parameters contains specific information about the code.
+              #
+              # This is a struct to allow parameters of different types.
+              #
+              # Examples:
+              #  1. For a "HARNESS_STARTED" message parameters might provide the name
+              #     of the worker and additional data like timing information.
+              #  2. For a "GCS_DOWNLOAD_ERROR" parameters might contain fields listing
+              #     the GCS objects being downloaded and fields containing errors.
+              #
+              # In general complex data structures should be avoided. If a worker
+              # needs to send a specific and complicated data structure then please
+              # consider defining a new proto and adding it to the data oneof in
+              # WorkerMessageResponse.
+              #
+              # Conventions:
+              #  Parameters should only be used for information that isn't typically passed
+              #  as a label.
+              #  hostname and other worker identifiers should almost always be passed
+              #  as labels since they will be included on most messages.
             "a_key": "", # Properties of the object.
           },
         },
@@ -130,15 +197,26 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response to the worker messages.
     "workerMessageResponses": [ # The servers response to the worker messages.
-      { # A worker_message response allows the server to pass information to the sender.
-        "workerHealthReportResponse": { # WorkerHealthReportResponse contains information returned to the worker in response to a health ping. # The service's response to a worker's health report.
-          "reportInterval": "A String", # A positive value indicates the worker should change its reporting interval to the specified value. The default value of zero means no change in report rate is requested by the server.
+      { # A worker_message response allows the server to pass information to the
+          # sender.
+        "workerHealthReportResponse": { # WorkerHealthReportResponse contains information returned to the worker # The service's response to a worker's health report.
+            # in response to a health ping.
+          "reportInterval": "A String", # A positive value indicates the worker should change its reporting interval
+              # to the specified value.
+              #
+              # The default value of zero means no change in report rate is requested by
+              # the server.
+        },
+        "workerMetricsResponse": { # Service-side response to WorkerMessage reporting resource utilization. # Service's response to reporting worker metrics (currently empty).
         },
       },
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.debug.html b/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
index 1ae8560..6435170 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
@@ -93,10 +93,14 @@
 
 { # Request to get updated debug configuration for component.
     "workerId": "A String", # The worker id, i.e., VM hostname.
-    "componentId": "A String", # The internal component id for which debug configuration is requested.
+    "componentId": "A String", # The internal component id for which debug configuration is
+        # requested.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -123,11 +127,15 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response to a send capture request. nothing
+    { # Response to a send capture request.
+      # nothing
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.html b/docs/dyn/dataflow_v1b3.projects.jobs.html
index 767ca76..0c87e36 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.html
@@ -91,161 +91,504 @@
 
 <p class="toc_element">
   <code><a href="#create">create(projectId, body, location=None, x__xgafv=None, replaceJobId=None, view=None)</a></code></p>
-<p class="firstline">Creates a dataflow job.</p>
+<p class="firstline">Creates a Cloud Dataflow job.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, jobId, location=None, x__xgafv=None, view=None)</a></code></p>
-<p class="firstline">Gets the state of the specified dataflow job.</p>
+<p class="firstline">Gets the state of the specified Cloud Dataflow job.</p>
 <p class="toc_element">
   <code><a href="#getMetrics">getMetrics(projectId, jobId, startTime=None, location=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Request the job status.</p>
 <p class="toc_element">
   <code><a href="#list">list(projectId, pageSize=None, x__xgafv=None, pageToken=None, location=None, filter=None, view=None)</a></code></p>
-<p class="firstline">List the jobs of a project</p>
+<p class="firstline">List the jobs of a project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#update">update(projectId, jobId, body, location=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the state of an existing dataflow job.</p>
+<p class="firstline">Updates the state of an existing Cloud Dataflow job.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(projectId, body, location=None, x__xgafv=None, replaceJobId=None, view=None)</code>
-  <pre>Creates a dataflow job.
+  <pre>Creates a Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Defines a job to be run by the Dataflow service.
-    "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-    "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-    "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-    "location": "A String", # The location which contains this job.
-    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-    "projectId": "A String", # The project which owns the job.
-    "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+{ # Defines a job to be run by the Cloud Dataflow service.
+    "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+        # If this field is set, the service will ensure its uniqueness.
+        # The request to create a job will fail if the service has knowledge of a
+        # previously submitted job with the same client's ID and job name.
+        # The caller may use this field to ensure idempotence of job
+        # creation across retried attempts to create a job.
+        # By default, the field is empty and, in that case, the service ignores it.
+    "requestedState": "A String", # The job's requested state.
+        # 
+        # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+        # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+        # also be used to directly set a job's requested state to
+        # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+        # job if it has not already reached a terminal state.
+    "name": "A String", # The user-specified Cloud Dataflow job name.
+        # 
+        # Only one Job with a given name may exist in a project at any
+        # given time. If a caller attempts to create a Job with the same
+        # name as an already-existing Job, the attempt returns the
+        # existing Job.
+        # 
+        # The name must match the regular expression
+        # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+        # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+    "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "labels": { # User-defined labels for this job.
+        # 
+        # The labels map can contain no more than 64 entries.  Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
       "a_key": "A String",
     },
-    "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+    "location": "A String", # The location that contains this job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
+    "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+        # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
-    "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-    "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-      "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+    "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+      "version": { # A structure describing which components and their versions of the service
+          # are required in order to run the job.
         "a_key": "", # Properties of the object.
       },
-      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+          # storage.  The system will append the suffix "/temp-{JOBNAME} to
+          # this resource prefix, where {JOBNAME} is the value of the
+          # job_name field.  The resulting bucket and object prefix is used
+          # as the prefix of the resources used to store temporary data
+          # needed during the job execution.  NOTE: This will override the
+          # value in taskrunner_settings.
+          # The supported resource type is:
+          #
+          # Google Cloud Storage:
+          #
+          #   storage.googleapis.com/{bucket}/{object}
+          #   bucket.storage.googleapis.com/{object}
       "internalExperiments": { # Experimental settings.
         "a_key": "", # Properties of the object. Contains field @type with type URL.
       },
-      "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+      "dataset": "A String", # The dataset for the current project where various workflow
+          # related tables are stored.
+          #
+          # The supported resource type is:
+          #
+          # Google BigQuery:
+          #   bigquery.googleapis.com/{dataset}
       "experiments": [ # The list of experiments to enable.
         "A String",
       ],
       "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-      "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+      "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+          # options are passed through the service and are used to recreate the
+          # SDK pipeline options on the worker in a language agnostic and platform
+          # independent way.
         "a_key": "", # Properties of the object.
       },
       "userAgent": { # A description of the process that generated the request.
         "a_key": "", # Properties of the object.
       },
-      "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-      "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-        { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+      "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+          # unspecified, the service will attempt to choose a reasonable
+          # default.  This should be in the form of the API service name,
+          # e.g. "compute.googleapis.com".
+      "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+          # specified in order for the job to have workers.
+        { # Describes one particular pool of Cloud Dataflow workers to be
+            # instantiated by the Cloud Dataflow service in order to perform the
+            # computations required by a job.  Note that a workflow job may use
+            # multiple pools, in order to match the various computational
+            # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-            "workflowFileName": "A String", # Store the workflow in this file.
-            "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-              "reportingEnabled": True or False, # Send work progress updates to service.
-              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-              "workerId": "A String", # ID of the worker running this pipeline.
-              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            },
-            "vmId": "A String", # ID string of VM.
-            "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-            "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-              "A String",
-            ],
-            "languageHint": "A String", # Suggested backend language.
-            "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-            "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-            "logDir": "A String", # Directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-            "harnessCommand": "A String", # Command to launch the worker harness.
-            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-          },
-          "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
           "ipConfiguration": "A String", # Configuration for VM IPs.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-          "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "metadata": { # Metadata to set on the Google Compute Engine VMs.
             "a_key": "A String",
           },
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
           "poolArgs": { # Extra arguments for this worker pool.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-          "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-          "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+              # using the standard Dataflow task runner.  Users should ignore
+              # this field.
+            "workflowFileName": "A String", # The file to store the workflow in.
+            "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                # will not be uploaded.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "vmId": "A String", # The ID string of the VM.
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+              "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                  # "shuffle/v1beta1".
+              "workerId": "A String", # The ID of the worker running this pipeline.
+              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+              "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                  # "dataflow/v1b3/projects".
+              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                  # storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+            },
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "harnessCommand": "A String", # The command to launch the worker harness.
+            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                # temporary storage.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                #
+                # When workers access Google Cloud APIs, they logically do so via
+                # relative URLs.  If this field is specified, it supplies the base
+                # URL to use for resolving these relative URLs.  The normative
+                # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                # Locators".
+                #
+                # If not specified, the default value is "http://www.googleapis.com/"
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
           "packages": [ # Packages to be installed on workers.
-            { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
               "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
             },
           ],
           "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             "algorithm": "A String", # The algorithm to use for autoscaling.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
           },
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
-              "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                  # /zones//diskTypes/pd-standard
+              "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                  # must be a disk type appropriate to the project and zone in which
+                  # the workers will run.  If unknown or unspecified, the service
+                  # will attempt to choose a reasonable default.
+                  #
+                  # For example, the standard persistent disk type is a resource name
+                  # typically ending in "pd-standard".  If SSD persistent disks are
+                  # available, the resource name typically ends with "pd-ssd".  The
+                  # actual valid values are defined the Google Compute Engine API,
+                  # not by the Cloud Dataflow API; consult the Google Compute Engine
+                  # documentation for more information about determining the set of
+                  # available disk types for a particular project and zone.
+                  #
+                  # Google Compute Engine Disk types are local to a particular
+                  # project in a particular zone, and so the resource name will
+                  # typically look something like this:
+                  #
+                  # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+              # harness, residing in Google Container Registry.
         },
       ],
     },
-    "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+    "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+        # A description of the user pipeline and stages through which it is executed.
+        # Created by Cloud Dataflow service.  Only retrieved with
+        # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+        # form.  This data is provided by the Dataflow service for ease of visualizing
+        # the pipeline and interpretting Dataflow provided metrics.
+      "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+        { # Description of the type, names/ids, and input/outputs for a transform.
+          "kind": "A String", # Type of transform.
+          "name": "A String", # User provided name for this transform instance.
+          "inputCollectionName": [ # User names for all collection inputs to this transform.
+            "A String",
+          ],
+          "displayData": [ # Transform-specific display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+            },
+          ],
+          "outputCollectionName": [ # User  names for all collection outputs to this transform.
+            "A String",
+          ],
+          "id": "A String", # SDK generated id of this transform instance.
+        },
+      ],
+      "displayData": [ # Pipeline level display data.
+        { # Data provided with a pipeline or transform to provide descriptive info.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
+          "shortStrValue": "A String", # A possible additional shorter value to display.
+              # For example a java_class_name_value of com.mypackage.MyDoFn
+              # will be stored with MyDoFn as the short_str_value and
+              # com.mypackage.MyDoFn as the java_class_name value.
+              # short_str_value can be displayed and java_class_name_value
+              # will be displayed as a tooltip.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "url": "A String", # An optional full URL.
+          "floatValue": 3.14, # Contains value if the data is of float type.
+          "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+              # language namespace (i.e. python module) which defines the display data.
+              # This allows a dax monitoring system to specially handle the data
+              # and perform custom rendering.
+          "javaClassValue": "A String", # Contains value if the data is of java class type.
+          "label": "A String", # An optional label to display in a dax UI for the element.
+          "boolValue": True or False, # Contains value if the data is of a boolean type.
+          "strValue": "A String", # Contains value if the data is of string type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
+          "int64Value": "A String", # Contains value if the data is of int64 type.
+        },
+      ],
+      "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+        { # Description of the composing transforms, names/ids, and input/outputs of a
+            # stage of execution.  Some composing transforms and sources may have been
+            # generated by the Dataflow service during execution planning.
+          "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+            { # Description of an interstitial value between transforms in an execution
+                # stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "kind": "A String", # Type of tranform this stage is executing.
+          "name": "A String", # Dataflow service generated name for this stage.
+          "outputSource": [ # Output sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "inputSource": [ # Input sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "componentTransform": [ # Transforms that comprise this execution stage.
+            { # Description of a transform executed as part of an execution stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransform": "A String", # User name for the original user transform with which this transform is
+                  # most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "id": "A String", # Dataflow service generated id for this stage.
+        },
+      ],
+    },
     "steps": [ # The top-level steps that constitute the entire job.
-      { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-        "kind": "A String", # The kind of step in the dataflow Job.
-        "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-        "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+      { # Defines a particular step within a Cloud Dataflow job.
+          #
+          # A job consists of multiple steps, each of which performs some
+          # specific operation as part of the overall job.  Data is typically
+          # passed from one step to another as part of the job.
+          #
+          # Here's an example of a sequence of steps which together implement a
+          # Map-Reduce job:
+          #
+          #   * Read a collection of data from some source, parsing the
+          #     collection's elements.
+          #
+          #   * Validate the elements.
+          #
+          #   * Apply a user-defined function to map each element to some value
+          #     and extract an element-specific key value.
+          #
+          #   * Group elements with the same key into a single element with
+          #     that key, transforming a multiply-keyed collection into a
+          #     uniquely-keyed collection.
+          #
+          #   * Write the elements out to some data sink.
+          #
+          # Note that the Cloud Dataflow service may be used to run many different
+          # types of jobs, not just Map-Reduce.
+        "kind": "A String", # The kind of step in the Cloud Dataflow job.
+        "properties": { # Named properties associated with the step. Each kind of
+            # predefined step has its own required set of properties.
+            # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
           "a_key": "", # Properties of the object.
         },
+        "name": "A String", # The name that identifies the step. This must be unique for each
+            # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentStateTime": "A String", # The timestamp associated with the current state.
-    "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+    "tempFiles": [ # A set of files the system should be aware of that are used
+        # for temporary storage. These temporary files will be
+        # removed on job completion.
+        # No duplicates are allowed.
+        # No file patterns are supported.
+        # 
+        # The supported files are:
+        # 
+        # Google Cloud Storage:
+        # 
+        #    storage.googleapis.com/{bucket}/{object}
+        #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
-    "type": "A String", # The type of dataflow job.
-    "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-    "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-    "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+    "type": "A String", # The type of Cloud Dataflow job.
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
+        # 
+        # When sending a `CreateJobRequest`, you can update a job by specifying it
+        # here. The job named here is stopped, and its intermediate state is
+        # transferred to this job.
+    "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+        # isn't contained in the submitted job.
       "stages": { # A mapping from each stage to the information about that stage.
-        "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-          "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+        "a_key": { # Contains information about how a particular
+            # google.dataflow.v1beta3.Step will be executed.
+          "stepName": [ # The steps associated with the execution stage.
+              # Note that stages may have several steps, and that a given step
+              # might be run by more than one stage.
             "A String",
           ],
         },
@@ -253,143 +596,489 @@
     },
   }
 
-  location: string, The location which contains this job.
+  location: string, The location that contains this job.
   x__xgafv: string, V1 error format.
-  replaceJobId: string, DEPRECATED. This field is now on the Job message.
-  view: string, Level of information requested in response.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  replaceJobId: string, Deprecated. This field is now in the Job message.
+  view: string, The level of information requested in response.
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
@@ -400,147 +1089,493 @@
 
 <div class="method">
     <code class="details" id="get">get(projectId, jobId, location=None, x__xgafv=None, view=None)</code>
-  <pre>Gets the state of the specified dataflow job.
+  <pre>Gets the state of the specified Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
-  jobId: string, Identifies a single job. (required)
-  location: string, The location which contains this job.
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
+  jobId: string, The job ID. (required)
+  location: string, The location that contains this job.
   x__xgafv: string, V1 error format.
-  view: string, Level of information requested in response.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, The level of information requested in response.
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
@@ -556,32 +1591,69 @@
 Args:
   projectId: string, A project id. (required)
   jobId: string, The job to get messages for. (required)
-  startTime: string, Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.
+  startTime: string, Return only metric data that has changed since this time.
+Default is to return all information about all metrics for the job.
   location: string, The location which contains the job specified by job_id.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # JobMetrics contains a collection of metrics descibing the detailed progress of a Dataflow job. Metrics correspond to user-defined and system-defined metrics in the job. This resource captures only the most recent values of each metric; time-series data can be queried for them (under the same metric names) from Cloud Monitoring.
+    { # JobMetrics contains a collection of metrics descibing the detailed progress
+      # of a Dataflow job. Metrics correspond to user-defined and system-defined
+      # metrics in the job.
+      #
+      # This resource captures only the most recent values of each metric;
+      # time-series data can be queried for them (under the same metric names)
+      # from Cloud Monitoring.
     "metrics": [ # All metrics for this job.
       { # Describes the state of a metric.
-        "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the count of the aggregated values and is used in combination with mean_sum above to obtain the actual mean aggregate value. The only possible value type is Long.
-        "kind": "A String", # Metric aggregation kind. The possible metric aggregation kinds are "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified aggregation kind is case-insensitive. If omitted, this is not an aggregated value but instead a single metric sample value.
-        "set": "", # Worker-computed aggregate value for the "Set" aggregation kind. The only possible value type is a list of Values whose type can be Long, Double, or String, according to the metric's type. All Values in the list must be of the same type.
-        "name": { # Identifies a metric, by describing the source which generated the metric. # Name of the metric.
-          "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics; will be "dataflow" for metrics defined by the Dataflow service or SDK.
+        "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the count of the aggregated values and is used in combination
+            # with mean_sum above to obtain the actual mean aggregate value.
+            # The only possible value type is Long.
+        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+            # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
+            # The specified aggregation kind is case-insensitive.
+            #
+            # If omitted, this is not an aggregated value but instead
+            # a single metric sample value.
+        "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
+            # possible value type is a list of Values whose type can be Long, Double,
+            # or String, according to the metric's type.  All Values in the list must
+            # be of the same type.
+        "name": { # Identifies a metric, by describing the source which generated the # Name of the metric.
+            # metric.
+          "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics;
+              # will be "dataflow" for metrics defined by the Dataflow service or SDK.
           "name": "A String", # Worker-defined metric name.
-          "context": { # Zero or more labeled fields which identify the part of the job this metric is associated with, such as the name of a step or collection. For example, built-in counters associated with steps will have context['step'] = . Counters associated with PCollections in the SDK will have context['pcollection'] =
-              # .
+          "context": { # Zero or more labeled fields which identify the part of the job this
+              # metric is associated with, such as the name of a step or collection.
+              #
+              # For example, built-in counters associated with steps will have
+              # context['step'] = <step-name>. Counters associated with PCollections
+              # in the SDK will have context['pcollection'] = <pcollection-name>.
             "a_key": "A String",
           },
         },
-        "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this metric is reported as a delta that is not associated with any WorkItem.
-        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are reporting work progress; it will be filled in responses from the metrics API.
-        "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min", "And", and "Or". The possible value types are Long, Double, and Boolean.
-        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the sum of the aggregated values and is used in combination with mean_count below to obtain the actual mean aggregate value. The only possible value types are Long and Double.
-        "internal": "", # Worker-computed aggregate value for internal use by the Dataflow service.
+        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the sum of the aggregated values and is used in combination
+            # with mean_count below to obtain the actual mean aggregate value.
+            # The only possible value types are Long and Double.
+        "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
+            # value accumulated since the worker started working on this WorkItem.
+            # By default this is false, indicating that this metric is reported
+            # as a delta that is not associated with any WorkItem.
+        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+            # reporting work progress; it will be filled in responses from the
+            # metrics API.
+        "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
+            # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+        "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
+            # service.
       },
     ],
     "metricTime": "A String", # Timestamp as of which metric values are current.
@@ -590,157 +1662,507 @@
 
 <div class="method">
     <code class="details" id="list">list(projectId, pageSize=None, x__xgafv=None, pageToken=None, location=None, filter=None, view=None)</code>
-  <pre>List the jobs of a project
+  <pre>List the jobs of a project.
 
 Args:
   projectId: string, The project which owns the jobs. (required)
-  pageSize: integer, If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.
+  pageSize: integer, If there are many jobs, limit response to at most this many.
+The actual number of jobs returned will be the lesser of max_responses
+and an unspecified server-defined limit.
   x__xgafv: string, V1 error format.
-  pageToken: string, Set this to the 'next_page_token' field of a previous response to request additional results in a long list.
-  location: string, The location which contains this job.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Set this to the 'next_page_token' field of a previous response
+to request additional results in a long list.
+  location: string, The location that contains this job.
   filter: string, The kind of filter to use.
-  view: string, Level of information requested in response. Default is SUMMARY.
+  view: string, Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.
 
 Returns:
   An object of the form:
 
-    { # Response to a request to list Dataflow jobs. This may be a partial response, depending on the page size in the ListJobsRequest.
+    { # Response to a request to list Cloud Dataflow jobs.  This may be a partial
+      # response, depending on the page size in the ListJobsRequest.
     "nextPageToken": "A String", # Set if there may be more results than fit in this response.
     "failedLocation": [ # Zero or more messages describing locations that failed to respond.
-      { # FailedLocation indicates which location failed to respond to a request for data.
+      { # Indicates which location failed to respond to a request for data.
         "name": "A String", # The name of the failed location.
       },
     ],
     "jobs": [ # A subset of the requested job information.
-      { # Defines a job to be run by the Dataflow service.
-          "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-          "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-          "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-          "location": "A String", # The location which contains this job.
-          "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-          "projectId": "A String", # The project which owns the job.
-          "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+      { # Defines a job to be run by the Cloud Dataflow service.
+          "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+              # If this field is set, the service will ensure its uniqueness.
+              # The request to create a job will fail if the service has knowledge of a
+              # previously submitted job with the same client's ID and job name.
+              # The caller may use this field to ensure idempotence of job
+              # creation across retried attempts to create a job.
+              # By default, the field is empty and, in that case, the service ignores it.
+          "requestedState": "A String", # The job's requested state.
+              #
+              # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+              # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+              # also be used to directly set a job's requested state to
+              # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+              # job if it has not already reached a terminal state.
+          "name": "A String", # The user-specified Cloud Dataflow job name.
+              #
+              # Only one Job with a given name may exist in a project at any
+              # given time. If a caller attempts to create a Job with the same
+              # name as an already-existing Job, the attempt returns the
+              # existing Job.
+              #
+              # The name must match the regular expression
+              # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+          "currentStateTime": "A String", # The timestamp associated with the current state.
+          "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+              # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+          "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+          "labels": { # User-defined labels for this job.
+              #
+              # The labels map can contain no more than 64 entries.  Entries of the labels
+              # map are UTF8 strings that comply with the following restrictions:
+              #
+              # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+              # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+              # * Both keys and values are additionally constrained to be <= 128 bytes in
+              # size.
             "a_key": "A String",
           },
-          "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+          "location": "A String", # The location that contains this job.
+          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+              # Cloud Dataflow service.
+          "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+              # corresponding name prefixes of the new job.
             "a_key": "A String",
           },
-          "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-          "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-            "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+          "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+            "version": { # A structure describing which components and their versions of the service
+                # are required in order to run the job.
               "a_key": "", # Properties of the object.
             },
-            "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+            "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                # storage.  The system will append the suffix "/temp-{JOBNAME} to
+                # this resource prefix, where {JOBNAME} is the value of the
+                # job_name field.  The resulting bucket and object prefix is used
+                # as the prefix of the resources used to store temporary data
+                # needed during the job execution.  NOTE: This will override the
+                # value in taskrunner_settings.
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
             "internalExperiments": { # Experimental settings.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+            "dataset": "A String", # The dataset for the current project where various workflow
+                # related tables are stored.
+                #
+                # The supported resource type is:
+                #
+                # Google BigQuery:
+                #   bigquery.googleapis.com/{dataset}
             "experiments": [ # The list of experiments to enable.
               "A String",
             ],
             "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-            "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+            "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+                # options are passed through the service and are used to recreate the
+                # SDK pipeline options on the worker in a language agnostic and platform
+                # independent way.
               "a_key": "", # Properties of the object.
             },
             "userAgent": { # A description of the process that generated the request.
               "a_key": "", # Properties of the object.
             },
-            "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-            "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-              { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+            "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+                # unspecified, the service will attempt to choose a reasonable
+                # default.  This should be in the form of the API service name,
+                # e.g. "compute.googleapis.com".
+            "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+                # specified in order for the job to have workers.
+              { # Describes one particular pool of Cloud Dataflow workers to be
+                  # instantiated by the Cloud Dataflow service in order to perform the
+                  # computations required by a job.  Note that a workflow job may use
+                  # multiple pools, in order to match the various computational
+                  # requirements of the various stages of the job.
                 "diskSourceImage": "A String", # Fully qualified source image for disks.
-                "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-                  "workflowFileName": "A String", # Store the workflow in this file.
-                  "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-                  "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                    "reportingEnabled": True or False, # Send work progress updates to service.
-                    "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                    "workerId": "A String", # ID of the worker running this pipeline.
-                    "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                    "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                    "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  },
-                  "vmId": "A String", # ID string of VM.
-                  "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-                  "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-                  "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-                  "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                    "A String",
-                  ],
-                  "languageHint": "A String", # Suggested backend language.
-                  "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-                  "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-                  "logDir": "A String", # Directory on the VM to store logs.
-                  "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-                  "harnessCommand": "A String", # Command to launch the worker harness.
-                  "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-                },
-                "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-                "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-                "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-                "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
                 "ipConfiguration": "A String", # Configuration for VM IPs.
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-                "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-                "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                    # are supported.
+                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                    # service will attempt to choose a reasonable default.
+                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                    # the service will use the network "default".
+                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
                 "metadata": { # Metadata to set on the Google Compute Engine VMs.
                   "a_key": "A String",
                 },
+                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                    # Compute Engine API.
+                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                    # `TEARDOWN_NEVER`.
+                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                    # down.
+                    #
+                    # If the workers are not torn down by the service, they will
+                    # continue to run and use Google Compute Engine VM resources in the
+                    # user's project until they are explicitly terminated by the user.
+                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                    # policy except for small, manually supervised test jobs.
+                    #
+                    # If unknown or unspecified, the service will attempt to choose a reasonable
+                    # default.
+                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                    # service will choose a number of threads (according to the number of cores
+                    # on the selected machine type for batch, or 1 by convention for streaming).
+                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                    # the form "regions/REGION/subnetworks/SUBNETWORK".
                 "poolArgs": { # Extra arguments for this worker pool.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
-                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-                "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                    # execute the job.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                    # using the standard Dataflow task runner.  Users should ignore
+                    # this field.
+                  "workflowFileName": "A String", # The file to store the workflow in.
+                  "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                      # will not be uploaded.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                  "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                  "vmId": "A String", # The ID string of the VM.
+                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "wheel".
+                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "root".
+                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                      # access the Cloud Dataflow API.
+                    "A String",
+                  ],
+                  "languageHint": "A String", # The suggested backend language.
+                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                      # console.
+                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                  "logDir": "A String", # The directory on the VM to store logs.
+                  "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                    "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                    "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                        # "shuffle/v1beta1".
+                    "workerId": "A String", # The ID of the worker running this pipeline.
+                    "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                        #
+                        # When workers access Google Cloud APIs, they logically do so via
+                        # relative URLs.  If this field is specified, it supplies the base
+                        # URL to use for resolving these relative URLs.  The normative
+                        # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                        # Locators".
+                        #
+                        # If not specified, the default value is "http://www.googleapis.com/"
+                    "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                        # "dataflow/v1b3/projects".
+                    "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                        # storage.
+                        #
+                        # The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}/{object}
+                        #   bucket.storage.googleapis.com/{object}
+                  },
+                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                  "harnessCommand": "A String", # The command to launch the worker harness.
+                  "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                      # temporary storage.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                  "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                      #
+                      # When workers access Google Cloud APIs, they logically do so via
+                      # relative URLs.  If this field is specified, it supplies the base
+                      # URL to use for resolving these relative URLs.  The normative
+                      # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                      # Locators".
+                      #
+                      # If not specified, the default value is "http://www.googleapis.com/"
+                },
+                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                    # select a default set of packages which are useful to worker
+                    # harnesses written in a particular language.
                 "packages": [ # Packages to be installed on workers.
-                  { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+                  { # The packages that must be installed in order for a worker to run the
+                      # steps of the Cloud Dataflow job that will be assigned to its worker
+                      # pool.
+                      #
+                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                      # might use this to install jars containing the user's code and all of the
+                      # various dependencies (libraries, data files, etc.) required in order
+                      # for that code to run.
+                    "location": "A String", # The resource to read the package from. The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}
+                        #   bucket.storage.googleapis.com/
                     "name": "A String", # The name of the package.
-                    "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
                   },
                 ],
                 "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
                   "algorithm": "A String", # The algorithm to use for autoscaling.
+                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
                 },
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
                 "dataDisks": [ # Data disks that are used by a VM in this workflow.
                   { # Describes the data disk used by a workflow job.
                     "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                    "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                    "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                        # /zones//diskTypes/pd-standard
+                    "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                        # attempt to choose a reasonable default.
+                    "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                        # must be a disk type appropriate to the project and zone in which
+                        # the workers will run.  If unknown or unspecified, the service
+                        # will attempt to choose a reasonable default.
+                        #
+                        # For example, the standard persistent disk type is a resource name
+                        # typically ending in "pd-standard".  If SSD persistent disks are
+                        # available, the resource name typically ends with "pd-ssd".  The
+                        # actual valid values are defined the Google Compute Engine API,
+                        # not by the Cloud Dataflow API; consult the Google Compute Engine
+                        # documentation for more information about determining the set of
+                        # available disk types for a particular project and zone.
+                        #
+                        # Google Compute Engine Disk types are local to a particular
+                        # project in a particular zone, and so the resource name will
+                        # typically look something like this:
+                        #
+                        # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
+                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                    # harness, residing in Google Container Registry.
               },
             ],
           },
-          "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+          "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+              # A description of the user pipeline and stages through which it is executed.
+              # Created by Cloud Dataflow service.  Only retrieved with
+              # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+              # form.  This data is provided by the Dataflow service for ease of visualizing
+              # the pipeline and interpretting Dataflow provided metrics.
+            "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+              { # Description of the type, names/ids, and input/outputs for a transform.
+                "kind": "A String", # Type of transform.
+                "name": "A String", # User provided name for this transform instance.
+                "inputCollectionName": [ # User names for all collection inputs to this transform.
+                  "A String",
+                ],
+                "displayData": [ # Transform-specific display data.
+                  { # Data provided with a pipeline or transform to provide descriptive info.
+                    "key": "A String", # The key identifying the display data.
+                        # This is intended to be used as a label for the display data
+                        # when viewed in a dax monitoring system.
+                    "shortStrValue": "A String", # A possible additional shorter value to display.
+                        # For example a java_class_name_value of com.mypackage.MyDoFn
+                        # will be stored with MyDoFn as the short_str_value and
+                        # com.mypackage.MyDoFn as the java_class_name value.
+                        # short_str_value can be displayed and java_class_name_value
+                        # will be displayed as a tooltip.
+                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                    "url": "A String", # An optional full URL.
+                    "floatValue": 3.14, # Contains value if the data is of float type.
+                    "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                        # language namespace (i.e. python module) which defines the display data.
+                        # This allows a dax monitoring system to specially handle the data
+                        # and perform custom rendering.
+                    "javaClassValue": "A String", # Contains value if the data is of java class type.
+                    "label": "A String", # An optional label to display in a dax UI for the element.
+                    "boolValue": True or False, # Contains value if the data is of a boolean type.
+                    "strValue": "A String", # Contains value if the data is of string type.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
+                    "int64Value": "A String", # Contains value if the data is of int64 type.
+                  },
+                ],
+                "outputCollectionName": [ # User  names for all collection outputs to this transform.
+                  "A String",
+                ],
+                "id": "A String", # SDK generated id of this transform instance.
+              },
+            ],
+            "displayData": [ # Pipeline level display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+              { # Description of the composing transforms, names/ids, and input/outputs of a
+                  # stage of execution.  Some composing transforms and sources may have been
+                  # generated by the Dataflow service during execution planning.
+                "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+                  { # Description of an interstitial value between transforms in an execution
+                      # stage.
+                    "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                  },
+                ],
+                "kind": "A String", # Type of tranform this stage is executing.
+                "name": "A String", # Dataflow service generated name for this stage.
+                "outputSource": [ # Output sources for this stage.
+                  { # Description of an input or output of an execution stage.
+                    "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                    "sizeBytes": "A String", # Size of the source, if measurable.
+                  },
+                ],
+                "inputSource": [ # Input sources for this stage.
+                  { # Description of an input or output of an execution stage.
+                    "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                    "sizeBytes": "A String", # Size of the source, if measurable.
+                  },
+                ],
+                "componentTransform": [ # Transforms that comprise this execution stage.
+                  { # Description of a transform executed as part of an execution stage.
+                    "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                    "originalTransform": "A String", # User name for the original user transform with which this transform is
+                        # most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                  },
+                ],
+                "id": "A String", # Dataflow service generated id for this stage.
+              },
+            ],
+          },
           "steps": [ # The top-level steps that constitute the entire job.
-            { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-              "kind": "A String", # The kind of step in the dataflow Job.
-              "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-              "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+            { # Defines a particular step within a Cloud Dataflow job.
+                #
+                # A job consists of multiple steps, each of which performs some
+                # specific operation as part of the overall job.  Data is typically
+                # passed from one step to another as part of the job.
+                #
+                # Here's an example of a sequence of steps which together implement a
+                # Map-Reduce job:
+                #
+                #   * Read a collection of data from some source, parsing the
+                #     collection's elements.
+                #
+                #   * Validate the elements.
+                #
+                #   * Apply a user-defined function to map each element to some value
+                #     and extract an element-specific key value.
+                #
+                #   * Group elements with the same key into a single element with
+                #     that key, transforming a multiply-keyed collection into a
+                #     uniquely-keyed collection.
+                #
+                #   * Write the elements out to some data sink.
+                #
+                # Note that the Cloud Dataflow service may be used to run many different
+                # types of jobs, not just Map-Reduce.
+              "kind": "A String", # The kind of step in the Cloud Dataflow job.
+              "properties": { # Named properties associated with the step. Each kind of
+                  # predefined step has its own required set of properties.
+                  # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
                 "a_key": "", # Properties of the object.
               },
+              "name": "A String", # The name that identifies the step. This must be unique for each
+                  # step with respect to all other steps in the Cloud Dataflow job.
             },
           ],
-          "currentStateTime": "A String", # The timestamp associated with the current state.
-          "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+          "currentState": "A String", # The current state of the job.
+              #
+              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+              # specified.
+              #
+              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+              # terminal state. After a job has reached a terminal state, no
+              # further state updates may be made.
+              #
+              # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
+          "tempFiles": [ # A set of files the system should be aware of that are used
+              # for temporary storage. These temporary files will be
+              # removed on job completion.
+              # No duplicates are allowed.
+              # No file patterns are supported.
+              #
+              # The supported files are:
+              #
+              # Google Cloud Storage:
+              #
+              #    storage.googleapis.com/{bucket}/{object}
+              #    bucket.storage.googleapis.com/{object}
             "A String",
           ],
-          "type": "A String", # The type of dataflow job.
-          "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-          "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-          "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+          "type": "A String", # The type of Cloud Dataflow job.
+          "id": "A String", # The unique ID of this job.
+              #
+              # This field is set by the Cloud Dataflow service when the Job is
+              # created, and is immutable for the life of the job.
+          "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+              # of the job it replaced.
+              #
+              # When sending a `CreateJobRequest`, you can update a job by specifying it
+              # here. The job named here is stopped, and its intermediate state is
+              # transferred to this job.
+          "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+              # isn't contained in the submitted job.
             "stages": { # A mapping from each stage to the information about that stage.
-              "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-                "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+              "a_key": { # Contains information about how a particular
+                  # google.dataflow.v1beta3.Step will be executed.
+                "stepName": [ # The steps associated with the execution stage.
+                    # Note that stages may have several steps, and that a given step
+                    # might be run by more than one stage.
                   "A String",
                 ],
               },
@@ -767,143 +2189,486 @@
 
 <div class="method">
     <code class="details" id="update">update(projectId, jobId, body, location=None, x__xgafv=None)</code>
-  <pre>Updates the state of an existing dataflow job.
+  <pre>Updates the state of an existing Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
-  jobId: string, Identifies a single job. (required)
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
+  jobId: string, The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Defines a job to be run by the Dataflow service.
-    "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-    "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-    "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-    "location": "A String", # The location which contains this job.
-    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-    "projectId": "A String", # The project which owns the job.
-    "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+{ # Defines a job to be run by the Cloud Dataflow service.
+    "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+        # If this field is set, the service will ensure its uniqueness.
+        # The request to create a job will fail if the service has knowledge of a
+        # previously submitted job with the same client's ID and job name.
+        # The caller may use this field to ensure idempotence of job
+        # creation across retried attempts to create a job.
+        # By default, the field is empty and, in that case, the service ignores it.
+    "requestedState": "A String", # The job's requested state.
+        # 
+        # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+        # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+        # also be used to directly set a job's requested state to
+        # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+        # job if it has not already reached a terminal state.
+    "name": "A String", # The user-specified Cloud Dataflow job name.
+        # 
+        # Only one Job with a given name may exist in a project at any
+        # given time. If a caller attempts to create a Job with the same
+        # name as an already-existing Job, the attempt returns the
+        # existing Job.
+        # 
+        # The name must match the regular expression
+        # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+        # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+    "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "labels": { # User-defined labels for this job.
+        # 
+        # The labels map can contain no more than 64 entries.  Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
       "a_key": "A String",
     },
-    "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+    "location": "A String", # The location that contains this job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
+    "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+        # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
-    "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-    "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-      "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+    "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+      "version": { # A structure describing which components and their versions of the service
+          # are required in order to run the job.
         "a_key": "", # Properties of the object.
       },
-      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+          # storage.  The system will append the suffix "/temp-{JOBNAME} to
+          # this resource prefix, where {JOBNAME} is the value of the
+          # job_name field.  The resulting bucket and object prefix is used
+          # as the prefix of the resources used to store temporary data
+          # needed during the job execution.  NOTE: This will override the
+          # value in taskrunner_settings.
+          # The supported resource type is:
+          #
+          # Google Cloud Storage:
+          #
+          #   storage.googleapis.com/{bucket}/{object}
+          #   bucket.storage.googleapis.com/{object}
       "internalExperiments": { # Experimental settings.
         "a_key": "", # Properties of the object. Contains field @type with type URL.
       },
-      "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+      "dataset": "A String", # The dataset for the current project where various workflow
+          # related tables are stored.
+          #
+          # The supported resource type is:
+          #
+          # Google BigQuery:
+          #   bigquery.googleapis.com/{dataset}
       "experiments": [ # The list of experiments to enable.
         "A String",
       ],
       "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-      "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+      "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+          # options are passed through the service and are used to recreate the
+          # SDK pipeline options on the worker in a language agnostic and platform
+          # independent way.
         "a_key": "", # Properties of the object.
       },
       "userAgent": { # A description of the process that generated the request.
         "a_key": "", # Properties of the object.
       },
-      "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-      "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-        { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+      "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+          # unspecified, the service will attempt to choose a reasonable
+          # default.  This should be in the form of the API service name,
+          # e.g. "compute.googleapis.com".
+      "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+          # specified in order for the job to have workers.
+        { # Describes one particular pool of Cloud Dataflow workers to be
+            # instantiated by the Cloud Dataflow service in order to perform the
+            # computations required by a job.  Note that a workflow job may use
+            # multiple pools, in order to match the various computational
+            # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-            "workflowFileName": "A String", # Store the workflow in this file.
-            "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-              "reportingEnabled": True or False, # Send work progress updates to service.
-              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-              "workerId": "A String", # ID of the worker running this pipeline.
-              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            },
-            "vmId": "A String", # ID string of VM.
-            "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-            "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-              "A String",
-            ],
-            "languageHint": "A String", # Suggested backend language.
-            "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-            "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-            "logDir": "A String", # Directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-            "harnessCommand": "A String", # Command to launch the worker harness.
-            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-          },
-          "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
           "ipConfiguration": "A String", # Configuration for VM IPs.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-          "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "metadata": { # Metadata to set on the Google Compute Engine VMs.
             "a_key": "A String",
           },
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
           "poolArgs": { # Extra arguments for this worker pool.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-          "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-          "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+              # using the standard Dataflow task runner.  Users should ignore
+              # this field.
+            "workflowFileName": "A String", # The file to store the workflow in.
+            "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                # will not be uploaded.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "vmId": "A String", # The ID string of the VM.
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+              "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                  # "shuffle/v1beta1".
+              "workerId": "A String", # The ID of the worker running this pipeline.
+              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+              "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                  # "dataflow/v1b3/projects".
+              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                  # storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+            },
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "harnessCommand": "A String", # The command to launch the worker harness.
+            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                # temporary storage.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                #
+                # When workers access Google Cloud APIs, they logically do so via
+                # relative URLs.  If this field is specified, it supplies the base
+                # URL to use for resolving these relative URLs.  The normative
+                # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                # Locators".
+                #
+                # If not specified, the default value is "http://www.googleapis.com/"
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
           "packages": [ # Packages to be installed on workers.
-            { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
               "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
             },
           ],
           "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             "algorithm": "A String", # The algorithm to use for autoscaling.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
           },
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
-              "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                  # /zones//diskTypes/pd-standard
+              "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                  # must be a disk type appropriate to the project and zone in which
+                  # the workers will run.  If unknown or unspecified, the service
+                  # will attempt to choose a reasonable default.
+                  #
+                  # For example, the standard persistent disk type is a resource name
+                  # typically ending in "pd-standard".  If SSD persistent disks are
+                  # available, the resource name typically ends with "pd-ssd".  The
+                  # actual valid values are defined the Google Compute Engine API,
+                  # not by the Cloud Dataflow API; consult the Google Compute Engine
+                  # documentation for more information about determining the set of
+                  # available disk types for a particular project and zone.
+                  #
+                  # Google Compute Engine Disk types are local to a particular
+                  # project in a particular zone, and so the resource name will
+                  # typically look something like this:
+                  #
+                  # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+              # harness, residing in Google Container Registry.
         },
       ],
     },
-    "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+    "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+        # A description of the user pipeline and stages through which it is executed.
+        # Created by Cloud Dataflow service.  Only retrieved with
+        # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+        # form.  This data is provided by the Dataflow service for ease of visualizing
+        # the pipeline and interpretting Dataflow provided metrics.
+      "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+        { # Description of the type, names/ids, and input/outputs for a transform.
+          "kind": "A String", # Type of transform.
+          "name": "A String", # User provided name for this transform instance.
+          "inputCollectionName": [ # User names for all collection inputs to this transform.
+            "A String",
+          ],
+          "displayData": [ # Transform-specific display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+            },
+          ],
+          "outputCollectionName": [ # User  names for all collection outputs to this transform.
+            "A String",
+          ],
+          "id": "A String", # SDK generated id of this transform instance.
+        },
+      ],
+      "displayData": [ # Pipeline level display data.
+        { # Data provided with a pipeline or transform to provide descriptive info.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
+          "shortStrValue": "A String", # A possible additional shorter value to display.
+              # For example a java_class_name_value of com.mypackage.MyDoFn
+              # will be stored with MyDoFn as the short_str_value and
+              # com.mypackage.MyDoFn as the java_class_name value.
+              # short_str_value can be displayed and java_class_name_value
+              # will be displayed as a tooltip.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "url": "A String", # An optional full URL.
+          "floatValue": 3.14, # Contains value if the data is of float type.
+          "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+              # language namespace (i.e. python module) which defines the display data.
+              # This allows a dax monitoring system to specially handle the data
+              # and perform custom rendering.
+          "javaClassValue": "A String", # Contains value if the data is of java class type.
+          "label": "A String", # An optional label to display in a dax UI for the element.
+          "boolValue": True or False, # Contains value if the data is of a boolean type.
+          "strValue": "A String", # Contains value if the data is of string type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
+          "int64Value": "A String", # Contains value if the data is of int64 type.
+        },
+      ],
+      "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+        { # Description of the composing transforms, names/ids, and input/outputs of a
+            # stage of execution.  Some composing transforms and sources may have been
+            # generated by the Dataflow service during execution planning.
+          "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+            { # Description of an interstitial value between transforms in an execution
+                # stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "kind": "A String", # Type of tranform this stage is executing.
+          "name": "A String", # Dataflow service generated name for this stage.
+          "outputSource": [ # Output sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "inputSource": [ # Input sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "componentTransform": [ # Transforms that comprise this execution stage.
+            { # Description of a transform executed as part of an execution stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransform": "A String", # User name for the original user transform with which this transform is
+                  # most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "id": "A String", # Dataflow service generated id for this stage.
+        },
+      ],
+    },
     "steps": [ # The top-level steps that constitute the entire job.
-      { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-        "kind": "A String", # The kind of step in the dataflow Job.
-        "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-        "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+      { # Defines a particular step within a Cloud Dataflow job.
+          #
+          # A job consists of multiple steps, each of which performs some
+          # specific operation as part of the overall job.  Data is typically
+          # passed from one step to another as part of the job.
+          #
+          # Here's an example of a sequence of steps which together implement a
+          # Map-Reduce job:
+          #
+          #   * Read a collection of data from some source, parsing the
+          #     collection's elements.
+          #
+          #   * Validate the elements.
+          #
+          #   * Apply a user-defined function to map each element to some value
+          #     and extract an element-specific key value.
+          #
+          #   * Group elements with the same key into a single element with
+          #     that key, transforming a multiply-keyed collection into a
+          #     uniquely-keyed collection.
+          #
+          #   * Write the elements out to some data sink.
+          #
+          # Note that the Cloud Dataflow service may be used to run many different
+          # types of jobs, not just Map-Reduce.
+        "kind": "A String", # The kind of step in the Cloud Dataflow job.
+        "properties": { # Named properties associated with the step. Each kind of
+            # predefined step has its own required set of properties.
+            # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
           "a_key": "", # Properties of the object.
         },
+        "name": "A String", # The name that identifies the step. This must be unique for each
+            # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentStateTime": "A String", # The timestamp associated with the current state.
-    "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+    "tempFiles": [ # A set of files the system should be aware of that are used
+        # for temporary storage. These temporary files will be
+        # removed on job completion.
+        # No duplicates are allowed.
+        # No file patterns are supported.
+        # 
+        # The supported files are:
+        # 
+        # Google Cloud Storage:
+        # 
+        #    storage.googleapis.com/{bucket}/{object}
+        #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
-    "type": "A String", # The type of dataflow job.
-    "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-    "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-    "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+    "type": "A String", # The type of Cloud Dataflow job.
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
+        # 
+        # When sending a `CreateJobRequest`, you can update a job by specifying it
+        # here. The job named here is stopped, and its intermediate state is
+        # transferred to this job.
+    "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+        # isn't contained in the submitted job.
       "stages": { # A mapping from each stage to the information about that stage.
-        "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-          "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+        "a_key": { # Contains information about how a particular
+            # google.dataflow.v1beta3.Step will be executed.
+          "stepName": [ # The steps associated with the execution stage.
+              # Note that stages may have several steps, and that a given step
+              # might be run by more than one stage.
             "A String",
           ],
         },
@@ -911,141 +2676,487 @@
     },
   }
 
-  location: string, The location which contains this job.
+  location: string, The location that contains this job.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.messages.html b/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
index 86bed2f..3861e84 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
@@ -88,13 +88,22 @@
 Args:
   projectId: string, A project id. (required)
   jobId: string, The job to get messages about. (required)
-  startTime: string, If specified, return only messages with timestamps >= start_time. The default is the job creation time (i.e. beginning of messages).
-  pageSize: integer, If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.
+  startTime: string, If specified, return only messages with timestamps >= start_time.
+The default is the job creation time (i.e. beginning of messages).
+  pageSize: integer, If specified, determines the maximum number of messages to
+return.  If unspecified, the service may choose an appropriate
+default, or may return an arbitrarily large number of results.
   x__xgafv: string, V1 error format.
-  pageToken: string, If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, If supplied, this should be the value of next_page_token returned
+by an earlier call. This will cause the next page of results to
+be returned.
   location: string, The location which contains the job specified by job_id.
   minimumImportance: string, Filter to only get messages with importance >= level
-  endTime: string, Return only messages with timestamps < end_time. The default is now (i.e. return up to the latest messages available).
+  endTime: string, Return only messages with timestamps < end_time. The default is now
+(i.e. return up to the latest messages available).
 
 Returns:
   An object of the form:
@@ -105,7 +114,8 @@
       { # A particular message pertaining to a Dataflow job.
         "messageImportance": "A String", # Importance level of the message.
         "messageText": "A String", # The text of the message.
-        "id": "A String", # Identifies the message. This is automatically generated by the service; the caller should treat it as an opaque string.
+        "id": "A String", # Identifies the message.  This is automatically generated by the
+            # service; the caller should treat it as an opaque string.
         "time": "A String", # The timestamp of the message.
       },
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
index 73d834a..e539ec3 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
@@ -95,34 +95,69 @@
     "workItemTypes": [ # Filter for WorkItem type.
       "A String",
     ],
-    "workerCapabilities": [ # Worker capabilities. WorkItems might be limited to workers with specific capabilities.
+    "workerCapabilities": [ # Worker capabilities. WorkItems might be limited to workers with specific
+        # capabilities.
       "A String",
     ],
     "requestedLeaseDuration": "A String", # The initial lease period.
-    "workerId": "A String", # Identifies the worker leasing work -- typically the ID of the virtual machine running the worker.
+    "workerId": "A String", # Identifies the worker leasing work -- typically the ID of the
+        # virtual machine running the worker.
     "currentWorkerTime": "A String", # The current timestamp at the worker.
     "location": "A String", # The location which contains the WorkItem's job.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response to a request to lease WorkItems.
     "workItems": [ # A list of the leased WorkItems.
-      { # WorkItem represents basic information about a WorkItem to be executed in the cloud.
+      { # WorkItem represents basic information about a WorkItem to be executed
+          # in the cloud.
+        "packages": [ # Any required packages that need to be fetched in order to execute
+            # this WorkItem.
+          { # The packages that must be installed in order for a worker to run the
+              # steps of the Cloud Dataflow job that will be assigned to its worker
+              # pool.
+              #
+              # This is the mechanism by which the Cloud Dataflow SDK causes code to
+              # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+              # might use this to install jars containing the user's code and all of the
+              # various dependencies (libraries, data files, etc.) required in order
+              # for that code to run.
+            "location": "A String", # The resource to read the package from. The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #
+                #   storage.googleapis.com/{bucket}
+                #   bucket.storage.googleapis.com/
+            "name": "A String", # The name of the package.
+          },
+        ],
         "reportStatusInterval": "A String", # Recommended reporting interval.
         "leaseExpireTime": "A String", # Time when the lease on this Work will expire.
         "seqMapTask": { # Describes a particular function to invoke. # Additional information for SeqMapTask WorkItems.
           "inputs": [ # Information about each of the inputs.
             { # Information about a side input of a DoFn or an input of a SeqDoFn.
-              "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+              "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                  # If more than one source, then the elements are taken from the
+                  # sources, in the specified order if order matters.
+                  # At least one source is required.
                 { # A source that records can be read and decoded from.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -130,18 +165,47 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               ],
               "kind": { # How to interpret the source element(s) as a side input value.
                 "a_key": "", # Properties of the object.
               },
-              "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+              "tag": "A String", # The id of the tag the user code will access this side input by;
+                  # this should correspond to the tag of some MultiOutputInfo.
             },
           ],
           "outputInfos": [ # Information about each of the outputs.
@@ -157,21 +221,30 @@
               },
             },
           ],
-          "stageName": "A String", # System-defined name of the stage containing the SeqDo operation. Unique across the workflow.
-          "systemName": "A String", # System-defined name of the SeqDo operation. Unique across the workflow.
+          "stageName": "A String", # System-defined name of the stage containing the SeqDo operation.
+              # Unique across the workflow.
+          "systemName": "A String", # System-defined name of the SeqDo operation.
+              # Unique across the workflow.
           "userFn": { # The user function to invoke.
             "a_key": "", # Properties of the object.
           },
           "name": "A String", # The user-provided name of the SeqDo operation.
         },
         "projectId": "A String", # Identifies the cloud project this WorkItem belongs to.
-        "sourceOperationTask": { # A work item that represents the different operations that can be performed on a user-defined Source specification. # Additional information for source operation WorkItems.
+        "sourceOperationTask": { # A work item that represents the different operations that can be # Additional information for source operation WorkItems.
+            # performed on a user-defined Source specification.
           "getMetadata": { # A request to compute the SourceMetadata of a Source. # Information about a request to get metadata about a source.
             "source": { # A source that records can be read and decoded from. # Specification of the source whose metadata should be computed.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -179,20 +252,67 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "split": { # Represents the operation to split a high-level Source specification into bundles (parts for parallel processing). At a high level, splitting of a source into bundles happens as follows: SourceSplitRequest is applied to the source. If it returns SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source is used "as is". Otherwise, splitting is applied recursively to each produced DerivedSource. As an optimization, for any Source, if its does_not_need_splitting is true, the framework assumes that splitting this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest. This applies both to the initial source being split and to bundles produced from it. # Information about a request to split a source.
+          "split": { # Represents the operation to split a high-level Source specification # Information about a request to split a source.
+              # into bundles (parts for parallel processing).
+              #
+              # At a high level, splitting of a source into bundles happens as follows:
+              # SourceSplitRequest is applied to the source. If it returns
+              # SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source
+              # is used "as is". Otherwise, splitting is applied recursively to each
+              # produced DerivedSource.
+              #
+              # As an optimization, for any Source, if its does_not_need_splitting is
+              # true, the framework assumes that splitting this source would return
+              # SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest.
+              # This applies both to the initial source being split and to bundles
+              # produced from it.
             "source": { # A source that records can be read and decoded from. # Specification of the source to be split.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -200,32 +320,76 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
-            "options": { # Hints for splitting a Source into bundles (parts for parallel processing) using SourceSplitRequest. # Hints for tuning the splitting process.
+            "options": { # Hints for splitting a Source into bundles (parts for parallel # Hints for tuning the splitting process.
+                # processing) using SourceSplitRequest.
               "desiredShardSizeBytes": "A String", # DEPRECATED in favor of desired_bundle_size_bytes.
-              "desiredBundleSizeBytes": "A String", # The source should be split into a set of bundles where the estimated size of each is approximately this many bytes.
+              "desiredBundleSizeBytes": "A String", # The source should be split into a set of bundles where the estimated size
+                  # of each is approximately this many bytes.
             },
           },
         },
         "initialReportIndex": "A String", # The initial index to use when reporting the status of the WorkItem.
-        "mapTask": { # MapTask consists of an ordered set of instructions, each of which describes one particular low-level operation for the worker to perform in order to accomplish the MapTask's WorkItem. Each instruction must appear in the list before any instructions which depends on its output. # Additional information for MapTask WorkItems.
-          "systemName": "A String", # System-defined name of this MapTask. Unique across the workflow.
-          "stageName": "A String", # System-defined name of the stage containing this MapTask. Unique across the workflow.
+        "mapTask": { # MapTask consists of an ordered set of instructions, each of which # Additional information for MapTask WorkItems.
+            # describes one particular low-level operation for the worker to
+            # perform in order to accomplish the MapTask's WorkItem.
+            #
+            # Each instruction must appear in the list before any instructions which
+            # depends on its output.
+          "systemName": "A String", # System-defined name of this MapTask.
+              # Unique across the workflow.
+          "stageName": "A String", # System-defined name of the stage containing this MapTask.
+              # Unique across the workflow.
           "instructions": [ # The instructions in the MapTask.
             { # Describes a particular operation comprising a MapTask.
               "name": "A String", # User-provided name of this operation.
-              "read": { # An instruction that reads records. Takes no inputs, produces one output. # Additional information for Read instructions.
+              "read": { # An instruction that reads records. # Additional information for Read instructions.
+                  # Takes no inputs, produces one output.
                 "source": { # A source that records can be read and decoded from. # The source to read from.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -233,35 +397,77 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
               "outputs": [ # Describes the outputs of the instruction.
                 { # An output of an instruction.
                   "name": "A String", # The user-provided name of this output.
-                  "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the key size.
+                  "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                      # should only report the key size.
                   "codec": { # The codec to use to encode data being written via this output.
                     "a_key": "", # Properties of the object.
                   },
-                  "systemName": "A String", # System-defined name of this output. Unique across the workflow.
-                  "originalName": "A String", # System-defined name for this output in the original workflow graph. Outputs that do not contribute to an original instruction do not set this.
-                  "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the value size.
+                  "systemName": "A String", # System-defined name of this output.
+                      # Unique across the workflow.
+                  "originalName": "A String", # System-defined name for this output in the original workflow graph.
+                      # Outputs that do not contribute to an original instruction do not set this.
+                  "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                      # should only report the value size.
                 },
               ],
-              "partialGroupByKey": { # An instruction that does a partial group-by-key. One input and one output. # Additional information for PartialGroupByKey instructions.
+              "partialGroupByKey": { # An instruction that does a partial group-by-key. # Additional information for PartialGroupByKey instructions.
+                  # One input and one output.
                 "sideInputs": [ # Zero or more side inputs.
                   { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                    "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                    "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                        # If more than one source, then the elements are taken from the
+                        # sources, in the specified order if order matters.
+                        # At least one source is required.
                       { # A source that records can be read and decoded from.
                         "codec": { # The codec to use to decode data read from the source.
                           "a_key": "", # Properties of the object.
                         },
-                        "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                        "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                            # as differences against another source, in order to save backend-side
+                            # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                            # To support this use case, the full set of parameters of the source
+                            # is logically obtained by taking the latest explicitly specified value
+                            # of each parameter in the order:
+                            # base_specs (later items win), spec (overrides anything in base_specs).
                           {
                             "a_key": "", # Properties of the object.
                           },
@@ -269,37 +475,77 @@
                         "spec": { # The source to read from, plus its parameters.
                           "a_key": "", # Properties of the object.
                         },
-                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                          "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                            # doesn't need splitting, and using SourceSplitRequest on it would
+                            # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                            #
+                            # E.g. a file splitter may set this to true when splitting a single file
+                            # into a set of byte ranges of appropriate size, and set this
+                            # to false when splitting a filepattern into individual files.
+                            # However, for efficiency, a file splitter may decide to produce
+                            # file subranges directly from the filepattern to avoid a splitting
+                            # round-trip.
+                            #
+                            # See SourceSplitRequest for an overview of the splitting process.
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                        "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                            # avoiding a SourceGetMetadataOperation roundtrip
+                            # (see SourceOperationRequest).
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                            # and tuning the pipeline, etc.
+                          "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                              # (this is a streaming source).
+                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                              # read from this source.  This estimate is in terms of external storage
+                              # size, before any decompression or other processing done by the reader.
+                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                              # the (encoded) keys in lexicographically sorted order.
                         },
                       },
                     ],
                     "kind": { # How to interpret the source element(s) as a side input value.
                       "a_key": "", # Properties of the object.
                     },
-                    "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                    "tag": "A String", # The id of the tag the user code will access this side input by;
+                        # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the intermediate store between the GBK and the CombineValues.
-                "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the CombineValues instruction lifted into this instruction.
+                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                    # intermediate store between the GBK and the CombineValues.
+                "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
+                    # CombineValues instruction lifted into this instruction.
                 "valueCombiningFn": { # The value combining function to invoke.
                   "a_key": "", # Properties of the object.
                 },
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # Describes the input to the partial group-by-key instruction.
+                "input": { # An input of an instruction, as a reference to an output of a # Describes the input to the partial group-by-key instruction.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
                 "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
                   "a_key": "", # Properties of the object.
                 },
               },
-              "write": { # An instruction that writes records. Takes one input, produces no outputs. # Additional information for Write instructions.
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+              "write": { # An instruction that writes records. # Additional information for Write instructions.
+                  # Takes one input, produces no outputs.
+                "input": { # An input of an instruction, as a reference to an output of a # The input.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
                 "sink": { # A sink that records can be encoded and written to. # The sink to write to.
                   "codec": { # The codec to use to encode data written to the sink.
@@ -310,25 +556,42 @@
                   },
                 },
               },
-              "systemName": "A String", # System-defined name of this operation. Unique across the workflow.
+              "systemName": "A String", # System-defined name of this operation.
+                  # Unique across the workflow.
               "flatten": { # An instruction that copies its inputs (zero or more) to its (single) output. # Additional information for Flatten instructions.
                 "inputs": [ # Describes the inputs to the flatten instruction.
-                  { # An input of an instruction, as a reference to an output of a producer instruction.
+                  { # An input of an instruction, as a reference to an output of a
+                      # producer instruction.
                     "outputNum": 42, # The output index (origin zero) within the producer.
-                    "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                    "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                        # the output to be consumed by this input.  This index is relative
+                        # to the list of instructions in this input's instruction's
+                        # containing MapTask.
                   },
                 ],
               },
               "originalName": "A String", # System-defined name for the operation in the original workflow graph.
-              "parDo": { # An instruction that does a ParDo operation. Takes one main input and zero or more side inputs, and produces zero or more outputs. Runs user code. # Additional information for ParDo instructions.
+              "parDo": { # An instruction that does a ParDo operation. # Additional information for ParDo instructions.
+                  # Takes one main input and zero or more side inputs, and produces
+                  # zero or more outputs.
+                  # Runs user code.
                 "sideInputs": [ # Zero or more side inputs.
                   { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                    "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                    "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                        # If more than one source, then the elements are taken from the
+                        # sources, in the specified order if order matters.
+                        # At least one source is required.
                       { # A source that records can be read and decoded from.
                         "codec": { # The codec to use to decode data read from the source.
                           "a_key": "", # Properties of the object.
                         },
-                        "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                        "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                            # as differences against another source, in order to save backend-side
+                            # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                            # To support this use case, the full set of parameters of the source
+                            # is logically obtained by taking the latest explicitly specified value
+                            # of each parameter in the order:
+                            # base_specs (later items win), spec (overrides anything in base_specs).
                           {
                             "a_key": "", # Properties of the object.
                           },
@@ -336,27 +599,61 @@
                         "spec": { # The source to read from, plus its parameters.
                           "a_key": "", # Properties of the object.
                         },
-                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                          "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                            # doesn't need splitting, and using SourceSplitRequest on it would
+                            # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                            #
+                            # E.g. a file splitter may set this to true when splitting a single file
+                            # into a set of byte ranges of appropriate size, and set this
+                            # to false when splitting a filepattern into individual files.
+                            # However, for efficiency, a file splitter may decide to produce
+                            # file subranges directly from the filepattern to avoid a splitting
+                            # round-trip.
+                            #
+                            # See SourceSplitRequest for an overview of the splitting process.
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                        "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                            # avoiding a SourceGetMetadataOperation roundtrip
+                            # (see SourceOperationRequest).
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                            # and tuning the pipeline, etc.
+                          "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                              # (this is a streaming source).
+                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                              # read from this source.  This estimate is in terms of external storage
+                              # size, before any decompression or other processing done by the reader.
+                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                              # the (encoded) keys in lexicographically sorted order.
                         },
                       },
                     ],
                     "kind": { # How to interpret the source element(s) as a side input value.
                       "a_key": "", # Properties of the object.
                     },
-                    "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                    "tag": "A String", # The id of the tag the user code will access this side input by;
+                        # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                "input": { # An input of an instruction, as a reference to an output of a # The input.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
-                "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a MultiDoFn.
+                "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a  MultiDoFn.
                   { # Information about an output of a multi-output DoFn.
-                    "tag": "A String", # The id of the tag the user code will emit to this output by; this should correspond to the tag of some SideInputInfo.
+                    "tag": "A String", # The id of the tag the user code will emit to this output by; this
+                        # should correspond to the tag of some SideInputInfo.
                   },
                 ],
                 "numOutputs": 42, # The number of outputs.
@@ -368,48 +665,50 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "streamingComputationTask": { # A task which describes what action should be performed for the specified streaming computation ranges. # Additional information for StreamingComputationTask WorkItems.
-          "dataDisks": [ # Describes the set of data disks this task should apply to.
-            { # Describes mounted data disk.
-              "dataDisk": "A String", # The name of the data disk. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
-            },
-          ],
-          "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
-            { # Describes full or partial data disk assignment information of the computation ranges.
-              "rangeAssignments": [ # Data disk assignments for ranges from this computation.
-                { # Data disk assignment information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.
-                  "start": "A String", # The start (inclusive) of the key range.
-                  "end": "A String", # The end (exclusive) of the key range.
-                  "dataDisk": "A String", # The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
-                },
-              ],
-              "computationId": "A String", # The ID of the computation.
-            },
-          ],
-          "taskType": "A String", # A type of streaming computation task.
-        },
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "streamingSetupTask": { # A task which initializes part of a streaming Dataflow job. # Additional information for StreamingSetupTask WorkItems.
-          "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow worker harness.
+          "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow
+              # worker harness.
           "drain": True or False, # The user has requested drain.
-          "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all computations and their sharded locations. # The global topology of the streaming Dataflow job.
+          "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all # The global topology of the streaming Dataflow job.
+              # computations and their sharded locations.
+            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
+              { # Data disk assignment for a given VM instance.
+                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
+                    # "myproject-1014-104817-4c2-harness-0".
+                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
+                    # this list defines which persistent directory the disk is mounted to, for
+                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
+                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
+                  "A String",
+                ],
+              },
+            ],
+            "persistentStateVersion": 42, # Version number for persistent state.
             "computations": [ # The computations associated with a streaming Dataflow job.
               { # All configuration data for a particular Computation.
                 "inputs": [ # The inputs to the computation.
-                  { # Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.
-                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for stage-to-stage communication. # The stream is part of another computation within the current streaming Dataflow job.
-                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow job.
+                  { # Describes a stream of data, either as input to be processed or as
+                      # output of a streaming Dataflow job.
+                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for # The stream is part of another computation within the current
+                        # streaming Dataflow job.
+                        # stage-to-stage communication.
+                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow
+                          # job.
                     },
-                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or out of a streaming Dataflow job. # The stream is a pubsub stream.
-                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.
-                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps. If left empty, record timestamps will be generated upon arrival.
+                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or # The stream is a pubsub stream.
+                        # out of a streaming Dataflow job.
+                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids.
+                          # If left empty, record deduplication will be strictly best effort.
+                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps.
+                          # If left empty, record timestamps will be generated upon arrival.
                       "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
-                      "topic": "A String", # A pubsub topic, in the form of "pubsub.googleapis.com/topics/
-                          # /"
-                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking custom time timestamps for watermark estimation.
+                      "topic": "A String", # A pubsub topic, in the form of
+                          # "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
+                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking
+                          # custom time timestamps for watermark estimation.
                       "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
-                      "subscription": "A String", # A pubsub subscription, in the form of "pubsub.googleapis.com/subscriptions/
-                          # /"
+                      "subscription": "A String", # A pubsub subscription, in the form of
+                          # "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-name>"
                     },
                     "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
                       "stateful": True or False, # Whether this source is stateful.
@@ -420,42 +719,57 @@
                     },
                   },
                 ],
-                "systemStageName": "A String", # The system stage name.
+                "outputs": [ # The outputs from the computation.
+                  { # Describes a stream of data, either as input to be processed or as
+                      # output of a streaming Dataflow job.
+                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for # The stream is part of another computation within the current
+                        # streaming Dataflow job.
+                        # stage-to-stage communication.
+                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow
+                          # job.
+                    },
+                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or # The stream is a pubsub stream.
+                        # out of a streaming Dataflow job.
+                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids.
+                          # If left empty, record deduplication will be strictly best effort.
+                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps.
+                          # If left empty, record timestamps will be generated upon arrival.
+                      "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
+                      "topic": "A String", # A pubsub topic, in the form of
+                          # "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
+                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking
+                          # custom time timestamps for watermark estimation.
+                      "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
+                      "subscription": "A String", # A pubsub subscription, in the form of
+                          # "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-name>"
+                    },
+                    "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
+                      "stateful": True or False, # Whether this source is stateful.
+                    },
+                    "sideInputLocation": { # Identifies the location of a streaming side input. # The stream is a streaming side input.
+                      "stateFamily": "A String", # Identifies the state family where this side input is stored.
+                      "tag": "A String", # Identifies the particular side input within the streaming Dataflow job.
+                    },
+                  },
+                ],
                 "keyRanges": [ # The key ranges processed by the computation.
-                  { # Location information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.
+                  { # Location information for a specific key-range of a sharded computation.
+                      # Currently we only support UTF-8 character splits to simplify encoding into
+                      # JSON.
                     "start": "A String", # The start (inclusive) of the key range.
-                    "deliveryEndpoint": "A String", # The physical location of this range assignment to be used for streaming computation cross-worker message delivery.
+                    "persistentDirectory": "A String", # The location of the persistent state for this range, as a
+                        # persistent directory in the worker local filesystem.
                     "end": "A String", # The end (exclusive) of the key range.
-                    "persistentDirectory": "A String", # The location of the persistent state for this range, as a persistent directory in the worker local filesystem.
-                    "dataDisk": "A String", # The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
+                    "deliveryEndpoint": "A String", # The physical location of this range assignment to be used for
+                        # streaming computation cross-worker message delivery.
+                    "dataDisk": "A String", # The name of the data disk where data for this range is stored.
+                        # This name is local to the Google Cloud Platform project and uniquely
+                        # identifies the disk within that project, for example
+                        # "myproject-1014-104817-4c2-harness-0-disk-1".
                   },
                 ],
                 "computationId": "A String", # The ID of the computation.
-                "outputs": [ # The outputs from the computation.
-                  { # Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.
-                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for stage-to-stage communication. # The stream is part of another computation within the current streaming Dataflow job.
-                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow job.
-                    },
-                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or out of a streaming Dataflow job. # The stream is a pubsub stream.
-                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.
-                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps. If left empty, record timestamps will be generated upon arrival.
-                      "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
-                      "topic": "A String", # A pubsub topic, in the form of "pubsub.googleapis.com/topics/
-                          # /"
-                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking custom time timestamps for watermark estimation.
-                      "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
-                      "subscription": "A String", # A pubsub subscription, in the form of "pubsub.googleapis.com/subscriptions/
-                          # /"
-                    },
-                    "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
-                      "stateful": True or False, # Whether this source is stateful.
-                    },
-                    "sideInputLocation": { # Identifies the location of a streaming side input. # The stream is a streaming side input.
-                      "stateFamily": "A String", # Identifies the state family where this side input is stored.
-                      "tag": "A String", # Identifies the particular side input within the streaming Dataflow job.
-                    },
-                  },
-                ],
+                "systemStageName": "A String", # The system stage name.
                 "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
@@ -465,22 +779,15 @@
                 ],
               },
             ],
-            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
-              { # Data disk assignment for a given VM instance.
-                "vmInstance": "A String", # VM instance name the data disks mounted to, for example "myproject-1014-104817-4c2-harness-0".
-                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in this list defines which persistent directory the disk is mounted to, for example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" }, { "myproject-1014-104817-4c2-harness-0-disk-1" }.
-                  "A String",
-                ],
-              },
-            ],
-            "persistentStateVersion": 42, # Version number for persistent state.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
             "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
           },
-          "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from other streaming computation workers.
+          "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from
+              # other streaming computation workers.
         },
+        "id": "A String", # Identifies this WorkItem.
         "streamingConfigTask": { # A task that carries configuration information for streaming computations. # Additional information for StreamingConfigTask WorkItems.
           "userStepToStateFamilyNameMap": { # Map from user step names to state families.
             "a_key": "A String",
@@ -493,12 +800,19 @@
               "instructions": [ # Instructions that comprise the computation.
                 { # Describes a particular operation comprising a MapTask.
                   "name": "A String", # User-provided name of this operation.
-                  "read": { # An instruction that reads records. Takes no inputs, produces one output. # Additional information for Read instructions.
+                  "read": { # An instruction that reads records. # Additional information for Read instructions.
+                      # Takes no inputs, produces one output.
                     "source": { # A source that records can be read and decoded from. # The source to read from.
                       "codec": { # The codec to use to decode data read from the source.
                         "a_key": "", # Properties of the object.
                       },
-                      "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                      "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                          # as differences against another source, in order to save backend-side
+                          # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                          # To support this use case, the full set of parameters of the source
+                          # is logically obtained by taking the latest explicitly specified value
+                          # of each parameter in the order:
+                          # base_specs (later items win), spec (overrides anything in base_specs).
                         {
                           "a_key": "", # Properties of the object.
                         },
@@ -506,35 +820,77 @@
                       "spec": { # The source to read from, plus its parameters.
                         "a_key": "", # Properties of the object.
                       },
-                      "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                      "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                        "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                        "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                      "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                          # doesn't need splitting, and using SourceSplitRequest on it would
+                          # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                          #
+                          # E.g. a file splitter may set this to true when splitting a single file
+                          # into a set of byte ranges of appropriate size, and set this
+                          # to false when splitting a filepattern into individual files.
+                          # However, for efficiency, a file splitter may decide to produce
+                          # file subranges directly from the filepattern to avoid a splitting
+                          # round-trip.
+                          #
+                          # See SourceSplitRequest for an overview of the splitting process.
+                          #
+                          # This field is meaningful only in the Source objects populated
+                          # by the user (e.g. when filling in a DerivedSource).
+                          # Source objects supplied by the framework to the user don't have
+                          # this field populated.
+                      "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                          # avoiding a SourceGetMetadataOperation roundtrip
+                          # (see SourceOperationRequest).
+                          #
+                          # This field is meaningful only in the Source objects populated
+                          # by the user (e.g. when filling in a DerivedSource).
+                          # Source objects supplied by the framework to the user don't have
+                          # this field populated.
+                          # and tuning the pipeline, etc.
+                        "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                            # (this is a streaming source).
+                        "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                            # read from this source.  This estimate is in terms of external storage
+                            # size, before any decompression or other processing done by the reader.
+                        "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                            # the (encoded) keys in lexicographically sorted order.
                       },
                     },
                   },
                   "outputs": [ # Describes the outputs of the instruction.
                     { # An output of an instruction.
                       "name": "A String", # The user-provided name of this output.
-                      "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the key size.
+                      "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                          # should only report the key size.
                       "codec": { # The codec to use to encode data being written via this output.
                         "a_key": "", # Properties of the object.
                       },
-                      "systemName": "A String", # System-defined name of this output. Unique across the workflow.
-                      "originalName": "A String", # System-defined name for this output in the original workflow graph. Outputs that do not contribute to an original instruction do not set this.
-                      "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the value size.
+                      "systemName": "A String", # System-defined name of this output.
+                          # Unique across the workflow.
+                      "originalName": "A String", # System-defined name for this output in the original workflow graph.
+                          # Outputs that do not contribute to an original instruction do not set this.
+                      "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                          # should only report the value size.
                     },
                   ],
-                  "partialGroupByKey": { # An instruction that does a partial group-by-key. One input and one output. # Additional information for PartialGroupByKey instructions.
+                  "partialGroupByKey": { # An instruction that does a partial group-by-key. # Additional information for PartialGroupByKey instructions.
+                      # One input and one output.
                     "sideInputs": [ # Zero or more side inputs.
                       { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                        "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                        "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                            # If more than one source, then the elements are taken from the
+                            # sources, in the specified order if order matters.
+                            # At least one source is required.
                           { # A source that records can be read and decoded from.
                             "codec": { # The codec to use to decode data read from the source.
                               "a_key": "", # Properties of the object.
                             },
-                            "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                            "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                                # as differences against another source, in order to save backend-side
+                                # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                                # To support this use case, the full set of parameters of the source
+                                # is logically obtained by taking the latest explicitly specified value
+                                # of each parameter in the order:
+                                # base_specs (later items win), spec (overrides anything in base_specs).
                               {
                                 "a_key": "", # Properties of the object.
                               },
@@ -542,37 +898,77 @@
                             "spec": { # The source to read from, plus its parameters.
                               "a_key": "", # Properties of the object.
                             },
-                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                                # doesn't need splitting, and using SourceSplitRequest on it would
+                                # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                                #
+                                # E.g. a file splitter may set this to true when splitting a single file
+                                # into a set of byte ranges of appropriate size, and set this
+                                # to false when splitting a filepattern into individual files.
+                                # However, for efficiency, a file splitter may decide to produce
+                                # file subranges directly from the filepattern to avoid a splitting
+                                # round-trip.
+                                #
+                                # See SourceSplitRequest for an overview of the splitting process.
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                            "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                                # avoiding a SourceGetMetadataOperation roundtrip
+                                # (see SourceOperationRequest).
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                                # and tuning the pipeline, etc.
+                              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                                  # (this is a streaming source).
+                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                                  # read from this source.  This estimate is in terms of external storage
+                                  # size, before any decompression or other processing done by the reader.
+                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                                  # the (encoded) keys in lexicographically sorted order.
                             },
                           },
                         ],
                         "kind": { # How to interpret the source element(s) as a side input value.
                           "a_key": "", # Properties of the object.
                         },
-                        "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                        "tag": "A String", # The id of the tag the user code will access this side input by;
+                            # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the intermediate store between the GBK and the CombineValues.
-                    "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the CombineValues instruction lifted into this instruction.
+                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                        # intermediate store between the GBK and the CombineValues.
+                    "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
+                        # CombineValues instruction lifted into this instruction.
                     "valueCombiningFn": { # The value combining function to invoke.
                       "a_key": "", # Properties of the object.
                     },
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # Describes the input to the partial group-by-key instruction.
+                    "input": { # An input of an instruction, as a reference to an output of a # Describes the input to the partial group-by-key instruction.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
                     "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
                       "a_key": "", # Properties of the object.
                     },
                   },
-                  "write": { # An instruction that writes records. Takes one input, produces no outputs. # Additional information for Write instructions.
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                  "write": { # An instruction that writes records. # Additional information for Write instructions.
+                      # Takes one input, produces no outputs.
+                    "input": { # An input of an instruction, as a reference to an output of a # The input.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
                     "sink": { # A sink that records can be encoded and written to. # The sink to write to.
                       "codec": { # The codec to use to encode data written to the sink.
@@ -583,25 +979,42 @@
                       },
                     },
                   },
-                  "systemName": "A String", # System-defined name of this operation. Unique across the workflow.
+                  "systemName": "A String", # System-defined name of this operation.
+                      # Unique across the workflow.
                   "flatten": { # An instruction that copies its inputs (zero or more) to its (single) output. # Additional information for Flatten instructions.
                     "inputs": [ # Describes the inputs to the flatten instruction.
-                      { # An input of an instruction, as a reference to an output of a producer instruction.
+                      { # An input of an instruction, as a reference to an output of a
+                          # producer instruction.
                         "outputNum": 42, # The output index (origin zero) within the producer.
-                        "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                        "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                            # the output to be consumed by this input.  This index is relative
+                            # to the list of instructions in this input's instruction's
+                            # containing MapTask.
                       },
                     ],
                   },
                   "originalName": "A String", # System-defined name for the operation in the original workflow graph.
-                  "parDo": { # An instruction that does a ParDo operation. Takes one main input and zero or more side inputs, and produces zero or more outputs. Runs user code. # Additional information for ParDo instructions.
+                  "parDo": { # An instruction that does a ParDo operation. # Additional information for ParDo instructions.
+                      # Takes one main input and zero or more side inputs, and produces
+                      # zero or more outputs.
+                      # Runs user code.
                     "sideInputs": [ # Zero or more side inputs.
                       { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                        "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                        "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                            # If more than one source, then the elements are taken from the
+                            # sources, in the specified order if order matters.
+                            # At least one source is required.
                           { # A source that records can be read and decoded from.
                             "codec": { # The codec to use to decode data read from the source.
                               "a_key": "", # Properties of the object.
                             },
-                            "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                            "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                                # as differences against another source, in order to save backend-side
+                                # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                                # To support this use case, the full set of parameters of the source
+                                # is logically obtained by taking the latest explicitly specified value
+                                # of each parameter in the order:
+                                # base_specs (later items win), spec (overrides anything in base_specs).
                               {
                                 "a_key": "", # Properties of the object.
                               },
@@ -609,27 +1022,61 @@
                             "spec": { # The source to read from, plus its parameters.
                               "a_key": "", # Properties of the object.
                             },
-                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                                # doesn't need splitting, and using SourceSplitRequest on it would
+                                # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                                #
+                                # E.g. a file splitter may set this to true when splitting a single file
+                                # into a set of byte ranges of appropriate size, and set this
+                                # to false when splitting a filepattern into individual files.
+                                # However, for efficiency, a file splitter may decide to produce
+                                # file subranges directly from the filepattern to avoid a splitting
+                                # round-trip.
+                                #
+                                # See SourceSplitRequest for an overview of the splitting process.
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                            "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                                # avoiding a SourceGetMetadataOperation roundtrip
+                                # (see SourceOperationRequest).
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                                # and tuning the pipeline, etc.
+                              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                                  # (this is a streaming source).
+                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                                  # read from this source.  This estimate is in terms of external storage
+                                  # size, before any decompression or other processing done by the reader.
+                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                                  # the (encoded) keys in lexicographically sorted order.
                             },
                           },
                         ],
                         "kind": { # How to interpret the source element(s) as a side input value.
                           "a_key": "", # Properties of the object.
                         },
-                        "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                        "tag": "A String", # The id of the tag the user code will access this side input by;
+                            # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                    "input": { # An input of an instruction, as a reference to an output of a # The input.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
-                    "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a MultiDoFn.
+                    "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a  MultiDoFn.
                       { # Information about an output of a multi-output DoFn.
-                        "tag": "A String", # The id of the tag the user code will emit to this output by; this should correspond to the tag of some SideInputInfo.
+                        "tag": "A String", # The id of the tag the user code will emit to this output by; this
+                            # should correspond to the tag of some SideInputInfo.
                       },
                     ],
                     "numOutputs": 42, # The number of outputs.
@@ -642,17 +1089,42 @@
             },
           ],
         },
-        "packages": [ # Any required packages that need to be fetched in order to execute this WorkItem.
-          { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
-            "name": "A String", # The name of the package.
-            "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
-          },
-        ],
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
           "command": "A String", # The shell command to run.
           "exitCode": 42, # Exit code for the task.
         },
-        "id": "A String", # Identifies this WorkItem.
+        "streamingComputationTask": { # A task which describes what action should be performed for the specified # Additional information for StreamingComputationTask WorkItems.
+            # streaming computation ranges.
+          "taskType": "A String", # A type of streaming computation task.
+          "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
+            { # Describes full or partial data disk assignment information of the computation
+                # ranges.
+              "rangeAssignments": [ # Data disk assignments for ranges from this computation.
+                { # Data disk assignment information for a specific key-range of a sharded
+                    # computation.
+                    # Currently we only support UTF-8 character splits to simplify encoding into
+                    # JSON.
+                  "start": "A String", # The start (inclusive) of the key range.
+                  "end": "A String", # The end (exclusive) of the key range.
+                  "dataDisk": "A String", # The name of the data disk where data for this range is stored.
+                      # This name is local to the Google Cloud Platform project and uniquely
+                      # identifies the disk within that project, for example
+                      # "myproject-1014-104817-4c2-harness-0-disk-1".
+                },
+              ],
+              "computationId": "A String", # The ID of the computation.
+            },
+          ],
+          "dataDisks": [ # Describes the set of data disks this task should apply to.
+            { # Describes mounted data disk.
+              "dataDisk": "A String", # The name of the data disk.
+                  # This name is local to the Google Cloud Platform project and uniquely
+                  # identifies the disk within that project, for example
+                  # "myproject-1014-104817-4c2-harness-0-disk-1".
+            },
+          ],
+        },
       },
     ],
   }</pre>
@@ -669,40 +1141,135 @@
     The object takes the form of:
 
 { # Request to report the status of WorkItems.
-    "workerId": "A String", # The ID of the worker reporting the WorkItem status. If this does not match the ID of the worker which the Dataflow service believes currently has the lease on the WorkItem, the report will be dropped (with an error response).
+    "workerId": "A String", # The ID of the worker reporting the WorkItem status.  If this
+        # does not match the ID of the worker which the Dataflow service
+        # believes currently has the lease on the WorkItem, the report
+        # will be dropped (with an error response).
     "currentWorkerTime": "A String", # The current timestamp at the worker.
-    "workItemStatuses": [ # The order is unimportant, except that the order of the WorkItemServiceState messages in the ReportWorkItemStatusResponse corresponds to the order of WorkItemStatus messages here.
+    "workItemStatuses": [ # The order is unimportant, except that the order of the
+        # WorkItemServiceState messages in the ReportWorkItemStatusResponse
+        # corresponds to the order of WorkItemStatus messages here.
       { # Conveys a worker's progress through the work described by a WorkItem.
-        "reportIndex": "A String", # The report index. When a WorkItem is leased, the lease will contain an initial report index. When a WorkItem's status is reported to the system, the report should be sent with that report index, and the response will contain the index the worker should use for the next report. Reports received with unexpected index values will be rejected by the service. In order to preserve idempotency, the worker should not alter the contents of a report, even if the worker must submit the same report multiple times before getting back a response. The worker should not submit a subsequent report until the response for the previous report had been received from the service.
-        "errors": [ # Specifies errors which occurred during processing. If errors are provided, and completed = true, then the WorkItem is considered to have failed.
-          { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.
-            "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+        "reportIndex": "A String", # The report index.  When a WorkItem is leased, the lease will
+            # contain an initial report index.  When a WorkItem's status is
+            # reported to the system, the report should be sent with
+            # that report index, and the response will contain the index the
+            # worker should use for the next report.  Reports received with
+            # unexpected index values will be rejected by the service.
+            #
+            # In order to preserve idempotency, the worker should not alter the
+            # contents of a report, even if the worker must submit the same
+            # report multiple times before getting back a response.  The worker
+            # should not submit a subsequent report until the response for the
+            # previous report had been received from the service.
+        "errors": [ # Specifies errors which occurred during processing.  If errors are
+            # provided, and completed = true, then the WorkItem is considered
+            # to have failed.
+          { # The `Status` type defines a logical error model that is suitable for different
+              # programming environments, including REST APIs and RPC APIs. It is used by
+              # [gRPC](https://github.com/grpc). The error model is designed to be:
+              #
+              # - Simple to use and understand for most users
+              # - Flexible enough to meet unexpected needs
+              #
+              # # Overview
+              #
+              # The `Status` message contains three pieces of data: error code, error message,
+              # and error details. The error code should be an enum value of
+              # google.rpc.Code, but it may accept additional error codes if needed.  The
+              # error message should be a developer-facing English message that helps
+              # developers *understand* and *resolve* the error. If a localized user-facing
+              # error message is needed, put the localized message in the error details or
+              # localize it in the client. The optional error details may contain arbitrary
+              # information about the error. There is a predefined set of error detail types
+              # in the package `google.rpc` which can be used for common error conditions.
+              #
+              # # Language mapping
+              #
+              # The `Status` message is the logical representation of the error model, but it
+              # is not necessarily the actual wire format. When the `Status` message is
+              # exposed in different client libraries and different wire protocols, it can be
+              # mapped differently. For example, it will likely be mapped to some exceptions
+              # in Java, but more likely mapped to some error codes in C.
+              #
+              # # Other uses
+              #
+              # The error model and the `Status` message can be used in a variety of
+              # environments, either with or without APIs, to provide a
+              # consistent developer experience across different environments.
+              #
+              # Example uses of this error model include:
+              #
+              # - Partial errors. If a service needs to return partial errors to the client,
+              #     it may embed the `Status` in the normal response to indicate the partial
+              #     errors.
+              #
+              # - Workflow errors. A typical workflow has multiple steps. Each step may
+              #     have a `Status` message for error reporting purpose.
+              #
+              # - Batch operations. If a client uses batch request and batch response, the
+              #     `Status` message should be used directly inside batch response, one for
+              #     each error sub-response.
+              #
+              # - Asynchronous operations. If an API call embeds asynchronous operation
+              #     results in its response, the status of those operations should be
+              #     represented directly using the `Status` message.
+              #
+              # - Logging. If some API errors are stored in logs, the message `Status` could
+              #     be used directly after any stripping needed for security/privacy reasons.
+            "message": "A String", # A developer-facing error message, which should be in English. Any
+                # user-facing error message should be localized and sent in the
+                # google.rpc.Status.details field, or localized by the client.
             "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-            "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+            "details": [ # A list of messages that carry the error details.  There will be a
+                # common set of message types for APIs to use.
               {
                 "a_key": "", # Properties of the object. Contains field @type with type URL.
               },
             ],
           },
         ],
-        "sourceOperationResponse": { # The result of a SourceOperationRequest, specified in ReportWorkItemStatusRequest.source_operation when the work item is completed. # If the work item represented a SourceOperationRequest, and the work is completed, contains the result of the operation.
+        "sourceOperationResponse": { # The result of a SourceOperationRequest, specified in # If the work item represented a SourceOperationRequest, and the work
+            # is completed, contains the result of the operation.
+            # ReportWorkItemStatusRequest.source_operation when the work item
+            # is completed.
           "getMetadata": { # The result of a SourceGetMetadataOperation. # A response to a request to get metadata about a source.
-            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # The computed metadata.
-              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+            "metadata": { # Metadata about a Source useful for automatically optimizing # The computed metadata.
+                # and tuning the pipeline, etc.
+              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                  # (this is a streaming source).
+              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                  # read from this source.  This estimate is in terms of external storage
+                  # size, before any decompression or other processing done by the reader.
+              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                  # the (encoded) keys in lexicographically sorted order.
             },
           },
           "split": { # The response to a SourceSplitRequest. # A response to a request to split a source.
-            "outcome": "A String", # Indicates whether splitting happened and produced a list of bundles. If this is USE_CURRENT_SOURCE_AS_IS, the current source should be processed "as is" without splitting. "bundles" is ignored in this case. If this is SPLITTING_HAPPENED, then "bundles" contains a list of bundles into which the source was split.
-            "bundles": [ # If outcome is SPLITTING_HAPPENED, then this is a list of bundles into which the source was split. Otherwise this field is ignored. This list can be empty, which means the source represents an empty input.
-              { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split.
+            "outcome": "A String", # Indicates whether splitting happened and produced a list of bundles.
+                # If this is USE_CURRENT_SOURCE_AS_IS, the current source should
+                # be processed "as is" without splitting. "bundles" is ignored in this case.
+                # If this is SPLITTING_HAPPENED, then "bundles" contains a list of
+                # bundles into which the source was split.
+            "bundles": [ # If outcome is SPLITTING_HAPPENED, then this is a list of bundles
+                # into which the source was split. Otherwise this field is ignored.
+                # This list can be empty, which means the source represents an empty input.
+              { # Specification of one of the bundles produced as a result of splitting
+                  # a Source (e.g. when executing a SourceSplitRequest, or when
+                  # splitting an active task using WorkItemStatus.dynamic_source_split),
+                  # relative to the source being split.
                 "derivationMode": "A String", # What source to base the produced source on (if any).
                 "source": { # A source that records can be read and decoded from. # Specification of the source.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -710,11 +1277,39 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
@@ -726,7 +1321,13 @@
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -734,36 +1335,108 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
             ],
           },
         },
-        "stopPosition": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A worker may split an active map task in two parts, "primary" and "residual", continuing to process the primary part and returning the residual part into the pool of available work. This event is called a "dynamic split" and is critical to the dynamic work rebalancing feature. The two obtained sub-tasks are called "parts" of the split. The parts, if concatenated, must represent the same input as would be read by the current task if the split did not happen. The exact way in which the original task is decomposed into the two parts is specified either as a position demarcating them (stop_position), or explicitly as two DerivedSources, if this task consumes a user-defined source type (dynamic_source_split). The "current" task is adjusted as a result of the split: after a task with range [A, B) sends a stop_position update at C, its range is considered to be [A, C), e.g.: * Progress should be interpreted relative to the new range, e.g. "75% completed" means "75% of [A, C) completed" * The worker should interpret proposed_stop_position relative to the new range, e.g. "split at 68%" should be interpreted as "split at 68% of [A, C)". * If the worker chooses to split again using stop_position, only stop_positions in [A, C) will be accepted. * Etc. dynamic_source_split has similar semantics: e.g., if a task with source S splits using dynamic_source_split into {P, R} (where P and R must be together equivalent to S), then subsequent progress and proposed_stop_position should be interpreted relative to P, and in a potential subsequent dynamic_source_split into {P', R'}, P' and R' must be together equivalent to P, etc.
-          "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "stopPosition": { # Position defines a position within a collection of data.  The value # A worker may split an active map task in two parts, "primary" and
+            # "residual", continuing to process the primary part and returning the
+            # residual part into the pool of available work.
+            # This event is called a "dynamic split" and is critical to the dynamic
+            # work rebalancing feature. The two obtained sub-tasks are called
+            # "parts" of the split.
+            # The parts, if concatenated, must represent the same input as would
+            # be read by the current task if the split did not happen.
+            # The exact way in which the original task is decomposed into the two
+            # parts is specified either as a position demarcating them
+            # (stop_position), or explicitly as two DerivedSources, if this
+            # task consumes a user-defined source type (dynamic_source_split).
+            #
+            # The "current" task is adjusted as a result of the split: after a task
+            # with range [A, B) sends a stop_position update at C, its range is
+            # considered to be [A, C), e.g.:
+            # * Progress should be interpreted relative to the new range, e.g.
+            #   "75% completed" means "75% of [A, C) completed"
+            # * The worker should interpret proposed_stop_position relative to the
+            #   new range, e.g. "split at 68%" should be interpreted as
+            #   "split at 68% of [A, C)".
+            # * If the worker chooses to split again using stop_position, only
+            #   stop_positions in [A, C) will be accepted.
+            # * Etc.
+            # dynamic_source_split has similar semantics: e.g., if a task with
+            # source S splits using dynamic_source_split into {P, R}
+            # (where P and R must be together equivalent to S), then subsequent
+            # progress and proposed_stop_position should be interpreted relative
+            # to P, and in a potential subsequent dynamic_source_split into {P', R'},
+            # P' and R' must be together equivalent to P, etc.
+            # can be either the end position, a key (used with ordered
+            # collections), a byte offset, or a record index.
+          "end": True or False, # Position is past all other positions. Also useful for the end
+              # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
           "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
-          "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+          "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+              # position. A ConcatPosition can be used by a reader of a source that
+              # encapsulates a set of other sources.
             "index": 42, # Index of the inner source.
             "position": # Object with schema name: Position # Position within the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
         "sourceFork": { # DEPRECATED in favor of DynamicSourceSplit. # DEPRECATED in favor of dynamic_source_split.
-          "residualSource": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # DEPRECATED
+          "residualSource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -771,21 +1444,58 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "primarySource": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # DEPRECATED
+          "primarySource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -793,11 +1503,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -807,7 +1545,13 @@
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -815,11 +1559,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -829,7 +1601,13 @@
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -837,11 +1615,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -849,14 +1655,26 @@
         "requestedLeaseDuration": "A String", # Amount of time the worker requests for its lease.
         "completed": True or False, # True if the WorkItem was completed (successfully or unsuccessfully).
         "workItemId": "A String", # Identifies the WorkItem.
-        "dynamicSourceSplit": { # When a task splits using WorkItemStatus.dynamic_source_split, this message describes the two parts of the split relative to the description of the current task's input. # See documentation of stop_position.
-          "primary": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # Primary part (continued to be processed by worker). Specified relative to the previously-current source. Becomes current.
+        "dynamicSourceSplit": { # When a task splits using WorkItemStatus.dynamic_source_split, this # See documentation of stop_position.
+            # message describes the two parts of the split relative to the
+            # description of the current task's input.
+          "residual": { # Specification of one of the bundles produced as a result of splitting # Residual part (returned to the pool of work).
+              # Specified relative to the previously-current source.
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -864,21 +1682,60 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "residual": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # Residual part (returned to the pool of work). Specified relative to the previously-current source.
+          "primary": { # Specification of one of the bundles produced as a result of splitting # Primary part (continued to be processed by worker).
+              # Specified relative to the previously-current source.
+              # Becomes current.
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -886,11 +1743,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -904,42 +1789,61 @@
             },
             "floatingPoint": 3.14, # Floating point value for Sum, Max, Min.
             "integerMean": { # A representation of an integer mean metric contribution. # Integer mean aggregation value for Mean.
-              "count": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The number of values being aggregated.
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
-              "sum": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The sum of all values being aggregated.
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # The sum of all values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
             "integerList": { # A metric value representing a list of integers. # List of integers, for Set.
               "elements": [ # Elements of the list.
-                { # A representation of an int64, n, that is immune to precision loss when encoded in JSON.
+                { # A representation of an int64, n, that is immune to precision loss when
+                    # encoded in JSON.
                   "lowBits": 42, # The low order bits: n & 0xffffffff.
                   "highBits": 42, # The high order bits, including the sign: n >> 32.
                 },
               ],
             },
-            "cumulative": True or False, # True if this counter is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this counter is reported as a delta.
+            "cumulative": True or False, # True if this counter is reported as the total cumulative aggregate
+                # value accumulated since the worker started working on this WorkItem.
+                # By default this is false, indicating that this counter is reported
+                # as a delta.
+            "shortId": "A String", # The service-generated short identifier for this counter.
+                # The short_id -> (name, metadata) mapping is constant for the lifetime of
+                # a job.
+            "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
+              "elements": [ # Elements of the list.
+                "A String",
+              ],
+            },
             "floatingPointMean": { # A representation of a floating point mean metric contribution. # Floating point mean aggregation value for Mean.
-              "count": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The number of values being aggregated.
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
               "sum": 3.14, # The sum of all values being aggregated.
             },
-            "shortId": "A String", # The service-generated short identifier for this counter. The short_id -> (name, metadata) mapping is constant for the lifetime of a job.
             "boolean": True or False, # Boolean value for And, Or.
-            "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given counter. # Counter structured name and metadata.
-              "name": { # Identifies a counter within a per-job namespace. Counters whose structured names are the same get merged into a single value for the job. # Structured name of the counter.
+            "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given # Counter structured name and metadata.
+                # counter.
+              "name": { # Identifies a counter within a per-job namespace. Counters whose structured # Structured name of the counter.
+                  # names are the same get merged into a single value for the job.
+                "origin": "A String", # One of the standard Origins defined above.
                 "executionStepName": "A String", # Name of the stage. An execution step contains multiple component steps.
-                "name": "A String", # Counter name. Not necessarily globally-unique, but unique within the context of the other fields. Required.
+                "name": "A String", # Counter name. Not necessarily globally-unique, but unique within the
+                    # context of the other fields.
+                    # Required.
                 "workerId": "A String", # ID of a particular worker.
-                "originalStepName": "A String", # System generated name of the original step in the user's graph, before optimization.
-                "standardOrigin": "A String", # One of the standard Origins defined above.
+                "originalStepName": "A String", # System generated name of the original step in the user's graph, before
+                    # optimization.
+                "originNamespace": "A String", # A string containing a more specific namespace of the counter's origin.
                 "portion": "A String", # Portion of this counter, either key or value.
-                "otherOrigin": "A String", # A string containing the origin of the counter.
                 "componentStepName": "A String", # Name of the optimized step being executed by the workers.
               },
               "metadata": { # CounterMetadata includes all static non-name non-value counter attributes. # Metadata associated with a counter
@@ -949,8 +1853,8 @@
                 "otherUnits": "A String", # A string referring to the unit type.
               },
             },
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
-            "integer": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # Integer value for Sum, Max, Min.
+            "integer": { # A representation of an int64, n, that is immune to precision loss when # Integer value for Sum, Max, Min.
+                # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
               "highBits": 42, # The high order bits, including the sign: n >> 32.
             },
@@ -958,67 +1862,168 @@
               "kind": "A String", # Counter aggregation kind.
               "name": "A String", # Name of the counter.
             },
-            "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
-              "elements": [ # Elements of the list.
-                "A String",
-              ],
+            "distribution": { # A metric value representing a distribution. # Distribution data
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The count of the number of elements present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
+                  # problem we can detect it and use an additional int64 or a double.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "min": { # A representation of an int64, n, that is immune to precision loss when # The minimum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
             },
+            "internal": "", # Value for internally-defined counters used by the Dataflow service.
           },
         ],
         "progress": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of reported_progress.
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "position": { # Position defines a position within a collection of data.  The value # Obsolete.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
         },
         "metricUpdates": [ # DEPRECATED in favor of counter_updates.
           { # Describes the state of a metric.
-            "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the count of the aggregated values and is used in combination with mean_sum above to obtain the actual mean aggregate value. The only possible value type is Long.
-            "kind": "A String", # Metric aggregation kind. The possible metric aggregation kinds are "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified aggregation kind is case-insensitive. If omitted, this is not an aggregated value but instead a single metric sample value.
-            "set": "", # Worker-computed aggregate value for the "Set" aggregation kind. The only possible value type is a list of Values whose type can be Long, Double, or String, according to the metric's type. All Values in the list must be of the same type.
-            "name": { # Identifies a metric, by describing the source which generated the metric. # Name of the metric.
-              "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics; will be "dataflow" for metrics defined by the Dataflow service or SDK.
+            "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the count of the aggregated values and is used in combination
+                # with mean_sum above to obtain the actual mean aggregate value.
+                # The only possible value type is Long.
+            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+                # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
+                # The specified aggregation kind is case-insensitive.
+                #
+                # If omitted, this is not an aggregated value but instead
+                # a single metric sample value.
+            "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
+                # possible value type is a list of Values whose type can be Long, Double,
+                # or String, according to the metric's type.  All Values in the list must
+                # be of the same type.
+            "name": { # Identifies a metric, by describing the source which generated the # Name of the metric.
+                # metric.
+              "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics;
+                  # will be "dataflow" for metrics defined by the Dataflow service or SDK.
               "name": "A String", # Worker-defined metric name.
-              "context": { # Zero or more labeled fields which identify the part of the job this metric is associated with, such as the name of a step or collection. For example, built-in counters associated with steps will have context['step'] = . Counters associated with PCollections in the SDK will have context['pcollection'] =
-                  # .
+              "context": { # Zero or more labeled fields which identify the part of the job this
+                  # metric is associated with, such as the name of a step or collection.
+                  #
+                  # For example, built-in counters associated with steps will have
+                  # context['step'] = <step-name>. Counters associated with PCollections
+                  # in the SDK will have context['pcollection'] = <pcollection-name>.
                 "a_key": "A String",
               },
             },
-            "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this metric is reported as a delta that is not associated with any WorkItem.
-            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are reporting work progress; it will be filled in responses from the metrics API.
-            "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min", "And", and "Or". The possible value types are Long, Double, and Boolean.
-            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the sum of the aggregated values and is used in combination with mean_count below to obtain the actual mean aggregate value. The only possible value types are Long and Double.
-            "internal": "", # Worker-computed aggregate value for internal use by the Dataflow service.
+            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the sum of the aggregated values and is used in combination
+                # with mean_count below to obtain the actual mean aggregate value.
+                # The only possible value types are Long and Double.
+            "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
+                # value accumulated since the worker started working on this WorkItem.
+                # By default this is false, indicating that this metric is reported
+                # as a delta that is not associated with any WorkItem.
+            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+                # reporting work progress; it will be filled in responses from the
+                # metrics API.
+            "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
+                # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+            "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
+                # service.
           },
         ],
         "reportedProgress": { # A progress measurement of a WorkItem by a worker. # The worker's progress through this WorkItem.
-          "fractionConsumed": 3.14, # Completion as fraction of the input consumed, from 0.0 (beginning, nothing consumed), to 1.0 (end of the input, entire input consumed).
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A Position within the work to represent a progress.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "fractionConsumed": 3.14, # Completion as fraction of the input consumed, from 0.0 (beginning, nothing
+              # consumed), to 1.0 (end of the input, entire input consumed).
+          "position": { # Position defines a position within a collection of data.  The value # A Position within the work to represent a progress.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
-          "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, reported by the worker. # Total amount of parallelism in the input of this task that remains, (i.e. can be delegated to this task and any new tasks via dynamic splitting). Always at least 1 for non-finished work items and 0 for finished. "Amount of parallelism" refers to how many non-empty parts of the input can be read in parallel. This does not necessarily equal number of records. An input that can be read in parallel down to the individual records is called "perfectly splittable". An example of non-perfectly parallelizable input is a block-compressed file format where a block of records has to be read as a whole, but different blocks can be read in parallel. Examples: * If we are processing record #30 (starting at 1) out of 50 in a perfectly splittable 50-record input, this value should be 21 (20 remaining + 1 current). * If we are reading through block 3 in a block-compressed file consisting of 5 blocks, this value should be 3 (since blocks 4 and 5 can be processed in parallel by new tasks via dynamic splitting and the current task remains processing block 3). * If we are reading through the last block in a block-compressed file, or reading or processing the last record in a perfectly splittable input, this value should be 1, because apart from the current task, no additional remainder can be split off.
-            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is ignored. Infinite parallelism means the service will assume that the work item can always be split into more non-empty work items by dynamic splitting. This is a work-around for lack of support for infinity by the current JSON-based Java RPC stack.
+          "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the input of this task that remains,
+              # (i.e. can be delegated to this task and any new tasks via dynamic
+              # splitting). Always at least 1 for non-finished work items and 0 for
+              # finished.
+              #
+              # "Amount of parallelism" refers to how many non-empty parts of the input
+              # can be read in parallel. This does not necessarily equal number
+              # of records. An input that can be read in parallel down to the
+              # individual records is called "perfectly splittable".
+              # An example of non-perfectly parallelizable input is a block-compressed
+              # file format where a block of records has to be read as a whole,
+              # but different blocks can be read in parallel.
+              #
+              # Examples:
+              # * If we are processing record #30 (starting at 1) out of 50 in a perfectly
+              #   splittable 50-record input, this value should be 21 (20 remaining + 1
+              #   current).
+              # * If we are reading through block 3 in a block-compressed file consisting
+              #   of 5 blocks, this value should be 3 (since blocks 4 and 5 can be
+              #   processed in parallel by new tasks via dynamic splitting and the current
+              #   task remains processing block 3).
+              # * If we are reading through the last block in a block-compressed file,
+              #   or reading or processing the last record in a perfectly splittable
+              #   input, this value should be 1, because apart from the current task, no
+              #   additional remainder can be split off.
+              # reported by the worker.
+            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is
+                # ignored.
+                # Infinite parallelism means the service will assume that the work item
+                # can always be split into more non-empty work items by dynamic splitting.
+                # This is a work-around for lack of support for infinity by the current
+                # JSON-based Java RPC stack.
             "value": 3.14, # Specifies the level of parallelism in case it is finite.
           },
-          "consumedParallelism": { # Represents the level of parallelism in a WorkItem's input, reported by the worker. # Total amount of parallelism in the portion of input of this task that has already been consumed and is no longer active. In the first two examples above (see remaining_parallelism), the value should be 29 or 2 respectively. The sum of remaining_parallelism and consumed_parallelism should equal the total amount of parallelism in this work item. If specified, must be finite.
-            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is ignored. Infinite parallelism means the service will assume that the work item can always be split into more non-empty work items by dynamic splitting. This is a work-around for lack of support for infinity by the current JSON-based Java RPC stack.
+          "consumedParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the portion of input of this task that has
+              # already been consumed and is no longer active. In the first two examples
+              # above (see remaining_parallelism), the value should be 29 or 2
+              # respectively.  The sum of remaining_parallelism and consumed_parallelism
+              # should equal the total amount of parallelism in this work item.  If
+              # specified, must be finite.
+              # reported by the worker.
+            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is
+                # ignored.
+                # Infinite parallelism means the service will assume that the work item
+                # can always be split into more non-empty work items by dynamic splitting.
+                # This is a work-around for lack of support for infinity by the current
+                # JSON-based Java RPC stack.
             "value": 3.14, # Specifies the level of parallelism in case it is finite.
           },
         },
@@ -1028,61 +2033,98 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response from a request to report the status of WorkItems.
-    "workItemServiceStates": [ # A set of messages indicating the service-side state for each WorkItem whose status was reported, in the same order as the WorkItemStatus messages in the ReportWorkItemStatusRequest which resulting in this response.
-      { # The Dataflow service's idea of the current state of a WorkItem being processed by a worker.
+    "workItemServiceStates": [ # A set of messages indicating the service-side state for each
+        # WorkItem whose status was reported, in the same order as the
+        # WorkItemStatus messages in the ReportWorkItemStatusRequest which
+        # resulting in this response.
+      { # The Dataflow service's idea of the current state of a WorkItem
+          # being processed by a worker.
         "reportStatusInterval": "A String", # New recommended reporting interval.
-        "suggestedStopPosition": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete, always empty.
-          "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "suggestedStopPosition": { # Position defines a position within a collection of data.  The value # Obsolete, always empty.
+            # can be either the end position, a key (used with ordered
+            # collections), a byte offset, or a record index.
+          "end": True or False, # Position is past all other positions. Also useful for the end
+              # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
           "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
-          "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+          "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+              # position. A ConcatPosition can be used by a reader of a source that
+              # encapsulates a set of other sources.
             "index": 42, # Index of the inner source.
             "position": # Object with schema name: Position # Position within the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
-        "harnessData": { # Other data returned by the service, specific to the particular worker harness.
+        "leaseExpireTime": "A String", # Time at which the current lease will expire.
+        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
+            # Note: If the report call fails for whatever reason, the worker should
+            # reuse this index for subsequent report attempts.
+        "harnessData": { # Other data returned by the service, specific to the particular
+            # worker harness.
           "a_key": "", # Properties of the object.
         },
-        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker. Note: If the report call fails for whatever reason, the worker should reuse this index for subsequent report attempts.
-        "leaseExpireTime": "A String", # Time at which the current lease will expire.
-        "metricShortId": [ # The short ids that workers should use in subsequent metric updates. Workers should strive to use short ids whenever possible, but it is ok to request the short_id again if a worker lost track of it (e.g. if the worker is recovering from a crash). NOTE: it is possible that the response may have short ids for a subset of the metrics.
-          { # The metric short id is returned to the user alongside an offset into ReportWorkItemStatusRequest
+        "metricShortId": [ # The short ids that workers should use in subsequent metric updates.
+            # Workers should strive to use short ids whenever possible, but it is ok
+            # to request the short_id again if a worker lost track of it
+            # (e.g. if the worker is recovering from a crash).
+            # NOTE: it is possible that the response may have short ids for a subset
+            # of the metrics.
+          { # The metric short id is returned to the user alongside an offset into
+              # ReportWorkItemStatusRequest
             "shortId": "A String", # The service-generated short identifier for the metric.
-            "metricIndex": 42, # The index of the corresponding metric in the ReportWorkItemStatusRequest. Required.
+            "metricIndex": 42, # The index of the corresponding metric in
+                # the ReportWorkItemStatusRequest. Required.
           },
         ],
-        "splitRequest": { # A suggestion by the service to the worker to dynamically split the WorkItem. # The progress point in the WorkItem where the Dataflow service suggests that the worker truncate the task.
-          "fractionConsumed": 3.14, # A fraction at which to split the work item, from 0.0 (beginning of the input) to 1.0 (end of the input).
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A Position at which to split the work item.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "splitRequest": { # A suggestion by the service to the worker to dynamically split the WorkItem. # The progress point in the WorkItem where the Dataflow service
+            # suggests that the worker truncate the task.
+          "fractionConsumed": 3.14, # A fraction at which to split the work item, from 0.0 (beginning of the
+              # input) to 1.0 (end of the input).
+          "position": { # Position defines a position within a collection of data.  The value # A Position at which to split the work item.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "position": { # Position defines a position within a collection of data.  The value # Obsolete.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
index 0382ca7..a098380 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
@@ -86,162 +86,505 @@
 
 <p class="toc_element">
   <code><a href="#create">create(projectId, location, body, x__xgafv=None, replaceJobId=None, view=None)</a></code></p>
-<p class="firstline">Creates a dataflow job.</p>
+<p class="firstline">Creates a Cloud Dataflow job.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, location, jobId, x__xgafv=None, view=None)</a></code></p>
-<p class="firstline">Gets the state of the specified dataflow job.</p>
+<p class="firstline">Gets the state of the specified Cloud Dataflow job.</p>
 <p class="toc_element">
   <code><a href="#getMetrics">getMetrics(projectId, location, jobId, startTime=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Request the job status.</p>
 <p class="toc_element">
   <code><a href="#list">list(projectId, location, pageSize=None, x__xgafv=None, pageToken=None, filter=None, view=None)</a></code></p>
-<p class="firstline">List the jobs of a project</p>
+<p class="firstline">List the jobs of a project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#update">update(projectId, location, jobId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the state of an existing dataflow job.</p>
+<p class="firstline">Updates the state of an existing Cloud Dataflow job.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(projectId, location, body, x__xgafv=None, replaceJobId=None, view=None)</code>
-  <pre>Creates a dataflow job.
+  <pre>Creates a Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
-  location: string, The location which contains this job. (required)
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location that contains this job. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Defines a job to be run by the Dataflow service.
-    "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-    "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-    "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-    "location": "A String", # The location which contains this job.
-    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-    "projectId": "A String", # The project which owns the job.
-    "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+{ # Defines a job to be run by the Cloud Dataflow service.
+    "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+        # If this field is set, the service will ensure its uniqueness.
+        # The request to create a job will fail if the service has knowledge of a
+        # previously submitted job with the same client's ID and job name.
+        # The caller may use this field to ensure idempotence of job
+        # creation across retried attempts to create a job.
+        # By default, the field is empty and, in that case, the service ignores it.
+    "requestedState": "A String", # The job's requested state.
+        # 
+        # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+        # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+        # also be used to directly set a job's requested state to
+        # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+        # job if it has not already reached a terminal state.
+    "name": "A String", # The user-specified Cloud Dataflow job name.
+        # 
+        # Only one Job with a given name may exist in a project at any
+        # given time. If a caller attempts to create a Job with the same
+        # name as an already-existing Job, the attempt returns the
+        # existing Job.
+        # 
+        # The name must match the regular expression
+        # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+        # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+    "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "labels": { # User-defined labels for this job.
+        # 
+        # The labels map can contain no more than 64 entries.  Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
       "a_key": "A String",
     },
-    "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+    "location": "A String", # The location that contains this job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
+    "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+        # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
-    "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-    "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-      "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+    "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+      "version": { # A structure describing which components and their versions of the service
+          # are required in order to run the job.
         "a_key": "", # Properties of the object.
       },
-      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+          # storage.  The system will append the suffix "/temp-{JOBNAME} to
+          # this resource prefix, where {JOBNAME} is the value of the
+          # job_name field.  The resulting bucket and object prefix is used
+          # as the prefix of the resources used to store temporary data
+          # needed during the job execution.  NOTE: This will override the
+          # value in taskrunner_settings.
+          # The supported resource type is:
+          #
+          # Google Cloud Storage:
+          #
+          #   storage.googleapis.com/{bucket}/{object}
+          #   bucket.storage.googleapis.com/{object}
       "internalExperiments": { # Experimental settings.
         "a_key": "", # Properties of the object. Contains field @type with type URL.
       },
-      "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+      "dataset": "A String", # The dataset for the current project where various workflow
+          # related tables are stored.
+          #
+          # The supported resource type is:
+          #
+          # Google BigQuery:
+          #   bigquery.googleapis.com/{dataset}
       "experiments": [ # The list of experiments to enable.
         "A String",
       ],
       "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-      "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+      "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+          # options are passed through the service and are used to recreate the
+          # SDK pipeline options on the worker in a language agnostic and platform
+          # independent way.
         "a_key": "", # Properties of the object.
       },
       "userAgent": { # A description of the process that generated the request.
         "a_key": "", # Properties of the object.
       },
-      "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-      "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-        { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+      "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+          # unspecified, the service will attempt to choose a reasonable
+          # default.  This should be in the form of the API service name,
+          # e.g. "compute.googleapis.com".
+      "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+          # specified in order for the job to have workers.
+        { # Describes one particular pool of Cloud Dataflow workers to be
+            # instantiated by the Cloud Dataflow service in order to perform the
+            # computations required by a job.  Note that a workflow job may use
+            # multiple pools, in order to match the various computational
+            # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-            "workflowFileName": "A String", # Store the workflow in this file.
-            "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-              "reportingEnabled": True or False, # Send work progress updates to service.
-              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-              "workerId": "A String", # ID of the worker running this pipeline.
-              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            },
-            "vmId": "A String", # ID string of VM.
-            "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-            "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-              "A String",
-            ],
-            "languageHint": "A String", # Suggested backend language.
-            "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-            "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-            "logDir": "A String", # Directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-            "harnessCommand": "A String", # Command to launch the worker harness.
-            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-          },
-          "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
           "ipConfiguration": "A String", # Configuration for VM IPs.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-          "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "metadata": { # Metadata to set on the Google Compute Engine VMs.
             "a_key": "A String",
           },
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
           "poolArgs": { # Extra arguments for this worker pool.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-          "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-          "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+              # using the standard Dataflow task runner.  Users should ignore
+              # this field.
+            "workflowFileName": "A String", # The file to store the workflow in.
+            "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                # will not be uploaded.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "vmId": "A String", # The ID string of the VM.
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+              "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                  # "shuffle/v1beta1".
+              "workerId": "A String", # The ID of the worker running this pipeline.
+              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+              "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                  # "dataflow/v1b3/projects".
+              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                  # storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+            },
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "harnessCommand": "A String", # The command to launch the worker harness.
+            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                # temporary storage.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                #
+                # When workers access Google Cloud APIs, they logically do so via
+                # relative URLs.  If this field is specified, it supplies the base
+                # URL to use for resolving these relative URLs.  The normative
+                # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                # Locators".
+                #
+                # If not specified, the default value is "http://www.googleapis.com/"
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
           "packages": [ # Packages to be installed on workers.
-            { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
               "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
             },
           ],
           "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             "algorithm": "A String", # The algorithm to use for autoscaling.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
           },
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
-              "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                  # /zones//diskTypes/pd-standard
+              "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                  # must be a disk type appropriate to the project and zone in which
+                  # the workers will run.  If unknown or unspecified, the service
+                  # will attempt to choose a reasonable default.
+                  #
+                  # For example, the standard persistent disk type is a resource name
+                  # typically ending in "pd-standard".  If SSD persistent disks are
+                  # available, the resource name typically ends with "pd-ssd".  The
+                  # actual valid values are defined the Google Compute Engine API,
+                  # not by the Cloud Dataflow API; consult the Google Compute Engine
+                  # documentation for more information about determining the set of
+                  # available disk types for a particular project and zone.
+                  #
+                  # Google Compute Engine Disk types are local to a particular
+                  # project in a particular zone, and so the resource name will
+                  # typically look something like this:
+                  #
+                  # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+              # harness, residing in Google Container Registry.
         },
       ],
     },
-    "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+    "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+        # A description of the user pipeline and stages through which it is executed.
+        # Created by Cloud Dataflow service.  Only retrieved with
+        # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+        # form.  This data is provided by the Dataflow service for ease of visualizing
+        # the pipeline and interpretting Dataflow provided metrics.
+      "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+        { # Description of the type, names/ids, and input/outputs for a transform.
+          "kind": "A String", # Type of transform.
+          "name": "A String", # User provided name for this transform instance.
+          "inputCollectionName": [ # User names for all collection inputs to this transform.
+            "A String",
+          ],
+          "displayData": [ # Transform-specific display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+            },
+          ],
+          "outputCollectionName": [ # User  names for all collection outputs to this transform.
+            "A String",
+          ],
+          "id": "A String", # SDK generated id of this transform instance.
+        },
+      ],
+      "displayData": [ # Pipeline level display data.
+        { # Data provided with a pipeline or transform to provide descriptive info.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
+          "shortStrValue": "A String", # A possible additional shorter value to display.
+              # For example a java_class_name_value of com.mypackage.MyDoFn
+              # will be stored with MyDoFn as the short_str_value and
+              # com.mypackage.MyDoFn as the java_class_name value.
+              # short_str_value can be displayed and java_class_name_value
+              # will be displayed as a tooltip.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "url": "A String", # An optional full URL.
+          "floatValue": 3.14, # Contains value if the data is of float type.
+          "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+              # language namespace (i.e. python module) which defines the display data.
+              # This allows a dax monitoring system to specially handle the data
+              # and perform custom rendering.
+          "javaClassValue": "A String", # Contains value if the data is of java class type.
+          "label": "A String", # An optional label to display in a dax UI for the element.
+          "boolValue": True or False, # Contains value if the data is of a boolean type.
+          "strValue": "A String", # Contains value if the data is of string type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
+          "int64Value": "A String", # Contains value if the data is of int64 type.
+        },
+      ],
+      "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+        { # Description of the composing transforms, names/ids, and input/outputs of a
+            # stage of execution.  Some composing transforms and sources may have been
+            # generated by the Dataflow service during execution planning.
+          "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+            { # Description of an interstitial value between transforms in an execution
+                # stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "kind": "A String", # Type of tranform this stage is executing.
+          "name": "A String", # Dataflow service generated name for this stage.
+          "outputSource": [ # Output sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "inputSource": [ # Input sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "componentTransform": [ # Transforms that comprise this execution stage.
+            { # Description of a transform executed as part of an execution stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransform": "A String", # User name for the original user transform with which this transform is
+                  # most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "id": "A String", # Dataflow service generated id for this stage.
+        },
+      ],
+    },
     "steps": [ # The top-level steps that constitute the entire job.
-      { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-        "kind": "A String", # The kind of step in the dataflow Job.
-        "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-        "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+      { # Defines a particular step within a Cloud Dataflow job.
+          #
+          # A job consists of multiple steps, each of which performs some
+          # specific operation as part of the overall job.  Data is typically
+          # passed from one step to another as part of the job.
+          #
+          # Here's an example of a sequence of steps which together implement a
+          # Map-Reduce job:
+          #
+          #   * Read a collection of data from some source, parsing the
+          #     collection's elements.
+          #
+          #   * Validate the elements.
+          #
+          #   * Apply a user-defined function to map each element to some value
+          #     and extract an element-specific key value.
+          #
+          #   * Group elements with the same key into a single element with
+          #     that key, transforming a multiply-keyed collection into a
+          #     uniquely-keyed collection.
+          #
+          #   * Write the elements out to some data sink.
+          #
+          # Note that the Cloud Dataflow service may be used to run many different
+          # types of jobs, not just Map-Reduce.
+        "kind": "A String", # The kind of step in the Cloud Dataflow job.
+        "properties": { # Named properties associated with the step. Each kind of
+            # predefined step has its own required set of properties.
+            # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
           "a_key": "", # Properties of the object.
         },
+        "name": "A String", # The name that identifies the step. This must be unique for each
+            # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentStateTime": "A String", # The timestamp associated with the current state.
-    "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+    "tempFiles": [ # A set of files the system should be aware of that are used
+        # for temporary storage. These temporary files will be
+        # removed on job completion.
+        # No duplicates are allowed.
+        # No file patterns are supported.
+        # 
+        # The supported files are:
+        # 
+        # Google Cloud Storage:
+        # 
+        #    storage.googleapis.com/{bucket}/{object}
+        #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
-    "type": "A String", # The type of dataflow job.
-    "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-    "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-    "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+    "type": "A String", # The type of Cloud Dataflow job.
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
+        # 
+        # When sending a `CreateJobRequest`, you can update a job by specifying it
+        # here. The job named here is stopped, and its intermediate state is
+        # transferred to this job.
+    "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+        # isn't contained in the submitted job.
       "stages": { # A mapping from each stage to the information about that stage.
-        "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-          "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+        "a_key": { # Contains information about how a particular
+            # google.dataflow.v1beta3.Step will be executed.
+          "stepName": [ # The steps associated with the execution stage.
+              # Note that stages may have several steps, and that a given step
+              # might be run by more than one stage.
             "A String",
           ],
         },
@@ -250,141 +593,487 @@
   }
 
   x__xgafv: string, V1 error format.
-  replaceJobId: string, DEPRECATED. This field is now on the Job message.
-  view: string, Level of information requested in response.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  replaceJobId: string, Deprecated. This field is now in the Job message.
+  view: string, The level of information requested in response.
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
@@ -395,147 +1084,493 @@
 
 <div class="method">
     <code class="details" id="get">get(projectId, location, jobId, x__xgafv=None, view=None)</code>
-  <pre>Gets the state of the specified dataflow job.
+  <pre>Gets the state of the specified Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
-  location: string, The location which contains this job. (required)
-  jobId: string, Identifies a single job. (required)
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location that contains this job. (required)
+  jobId: string, The job ID. (required)
   x__xgafv: string, V1 error format.
-  view: string, Level of information requested in response.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, The level of information requested in response.
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
@@ -552,31 +1587,68 @@
   projectId: string, A project id. (required)
   location: string, The location which contains the job specified by job_id. (required)
   jobId: string, The job to get messages for. (required)
-  startTime: string, Return only metric data that has changed since this time. Default is to return all information about all metrics for the job.
+  startTime: string, Return only metric data that has changed since this time.
+Default is to return all information about all metrics for the job.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # JobMetrics contains a collection of metrics descibing the detailed progress of a Dataflow job. Metrics correspond to user-defined and system-defined metrics in the job. This resource captures only the most recent values of each metric; time-series data can be queried for them (under the same metric names) from Cloud Monitoring.
+    { # JobMetrics contains a collection of metrics descibing the detailed progress
+      # of a Dataflow job. Metrics correspond to user-defined and system-defined
+      # metrics in the job.
+      #
+      # This resource captures only the most recent values of each metric;
+      # time-series data can be queried for them (under the same metric names)
+      # from Cloud Monitoring.
     "metrics": [ # All metrics for this job.
       { # Describes the state of a metric.
-        "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the count of the aggregated values and is used in combination with mean_sum above to obtain the actual mean aggregate value. The only possible value type is Long.
-        "kind": "A String", # Metric aggregation kind. The possible metric aggregation kinds are "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified aggregation kind is case-insensitive. If omitted, this is not an aggregated value but instead a single metric sample value.
-        "set": "", # Worker-computed aggregate value for the "Set" aggregation kind. The only possible value type is a list of Values whose type can be Long, Double, or String, according to the metric's type. All Values in the list must be of the same type.
-        "name": { # Identifies a metric, by describing the source which generated the metric. # Name of the metric.
-          "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics; will be "dataflow" for metrics defined by the Dataflow service or SDK.
+        "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the count of the aggregated values and is used in combination
+            # with mean_sum above to obtain the actual mean aggregate value.
+            # The only possible value type is Long.
+        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+            # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
+            # The specified aggregation kind is case-insensitive.
+            #
+            # If omitted, this is not an aggregated value but instead
+            # a single metric sample value.
+        "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
+            # possible value type is a list of Values whose type can be Long, Double,
+            # or String, according to the metric's type.  All Values in the list must
+            # be of the same type.
+        "name": { # Identifies a metric, by describing the source which generated the # Name of the metric.
+            # metric.
+          "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics;
+              # will be "dataflow" for metrics defined by the Dataflow service or SDK.
           "name": "A String", # Worker-defined metric name.
-          "context": { # Zero or more labeled fields which identify the part of the job this metric is associated with, such as the name of a step or collection. For example, built-in counters associated with steps will have context['step'] = . Counters associated with PCollections in the SDK will have context['pcollection'] =
-              # .
+          "context": { # Zero or more labeled fields which identify the part of the job this
+              # metric is associated with, such as the name of a step or collection.
+              #
+              # For example, built-in counters associated with steps will have
+              # context['step'] = <step-name>. Counters associated with PCollections
+              # in the SDK will have context['pcollection'] = <pcollection-name>.
             "a_key": "A String",
           },
         },
-        "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this metric is reported as a delta that is not associated with any WorkItem.
-        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are reporting work progress; it will be filled in responses from the metrics API.
-        "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min", "And", and "Or". The possible value types are Long, Double, and Boolean.
-        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the sum of the aggregated values and is used in combination with mean_count below to obtain the actual mean aggregate value. The only possible value types are Long and Double.
-        "internal": "", # Worker-computed aggregate value for internal use by the Dataflow service.
+        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the sum of the aggregated values and is used in combination
+            # with mean_count below to obtain the actual mean aggregate value.
+            # The only possible value types are Long and Double.
+        "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
+            # value accumulated since the worker started working on this WorkItem.
+            # By default this is false, indicating that this metric is reported
+            # as a delta that is not associated with any WorkItem.
+        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+            # reporting work progress; it will be filled in responses from the
+            # metrics API.
+        "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
+            # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+        "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
+            # service.
       },
     ],
     "metricTime": "A String", # Timestamp as of which metric values are current.
@@ -585,157 +1657,507 @@
 
 <div class="method">
     <code class="details" id="list">list(projectId, location, pageSize=None, x__xgafv=None, pageToken=None, filter=None, view=None)</code>
-  <pre>List the jobs of a project
+  <pre>List the jobs of a project.
 
 Args:
   projectId: string, The project which owns the jobs. (required)
-  location: string, The location which contains this job. (required)
-  pageSize: integer, If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.
+  location: string, The location that contains this job. (required)
+  pageSize: integer, If there are many jobs, limit response to at most this many.
+The actual number of jobs returned will be the lesser of max_responses
+and an unspecified server-defined limit.
   x__xgafv: string, V1 error format.
-  pageToken: string, Set this to the 'next_page_token' field of a previous response to request additional results in a long list.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Set this to the 'next_page_token' field of a previous response
+to request additional results in a long list.
   filter: string, The kind of filter to use.
-  view: string, Level of information requested in response. Default is SUMMARY.
+  view: string, Level of information requested in response. Default is `JOB_VIEW_SUMMARY`.
 
 Returns:
   An object of the form:
 
-    { # Response to a request to list Dataflow jobs. This may be a partial response, depending on the page size in the ListJobsRequest.
+    { # Response to a request to list Cloud Dataflow jobs.  This may be a partial
+      # response, depending on the page size in the ListJobsRequest.
     "nextPageToken": "A String", # Set if there may be more results than fit in this response.
     "failedLocation": [ # Zero or more messages describing locations that failed to respond.
-      { # FailedLocation indicates which location failed to respond to a request for data.
+      { # Indicates which location failed to respond to a request for data.
         "name": "A String", # The name of the failed location.
       },
     ],
     "jobs": [ # A subset of the requested job information.
-      { # Defines a job to be run by the Dataflow service.
-          "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-          "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-          "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-          "location": "A String", # The location which contains this job.
-          "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-          "projectId": "A String", # The project which owns the job.
-          "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+      { # Defines a job to be run by the Cloud Dataflow service.
+          "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+              # If this field is set, the service will ensure its uniqueness.
+              # The request to create a job will fail if the service has knowledge of a
+              # previously submitted job with the same client's ID and job name.
+              # The caller may use this field to ensure idempotence of job
+              # creation across retried attempts to create a job.
+              # By default, the field is empty and, in that case, the service ignores it.
+          "requestedState": "A String", # The job's requested state.
+              #
+              # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+              # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+              # also be used to directly set a job's requested state to
+              # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+              # job if it has not already reached a terminal state.
+          "name": "A String", # The user-specified Cloud Dataflow job name.
+              #
+              # Only one Job with a given name may exist in a project at any
+              # given time. If a caller attempts to create a Job with the same
+              # name as an already-existing Job, the attempt returns the
+              # existing Job.
+              #
+              # The name must match the regular expression
+              # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+          "currentStateTime": "A String", # The timestamp associated with the current state.
+          "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+              # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+          "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+          "labels": { # User-defined labels for this job.
+              #
+              # The labels map can contain no more than 64 entries.  Entries of the labels
+              # map are UTF8 strings that comply with the following restrictions:
+              #
+              # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+              # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+              # * Both keys and values are additionally constrained to be <= 128 bytes in
+              # size.
             "a_key": "A String",
           },
-          "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+          "location": "A String", # The location that contains this job.
+          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+              # Cloud Dataflow service.
+          "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+              # corresponding name prefixes of the new job.
             "a_key": "A String",
           },
-          "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-          "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-            "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+          "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+            "version": { # A structure describing which components and their versions of the service
+                # are required in order to run the job.
               "a_key": "", # Properties of the object.
             },
-            "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+            "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                # storage.  The system will append the suffix "/temp-{JOBNAME} to
+                # this resource prefix, where {JOBNAME} is the value of the
+                # job_name field.  The resulting bucket and object prefix is used
+                # as the prefix of the resources used to store temporary data
+                # needed during the job execution.  NOTE: This will override the
+                # value in taskrunner_settings.
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
             "internalExperiments": { # Experimental settings.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+            "dataset": "A String", # The dataset for the current project where various workflow
+                # related tables are stored.
+                #
+                # The supported resource type is:
+                #
+                # Google BigQuery:
+                #   bigquery.googleapis.com/{dataset}
             "experiments": [ # The list of experiments to enable.
               "A String",
             ],
             "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-            "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+            "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+                # options are passed through the service and are used to recreate the
+                # SDK pipeline options on the worker in a language agnostic and platform
+                # independent way.
               "a_key": "", # Properties of the object.
             },
             "userAgent": { # A description of the process that generated the request.
               "a_key": "", # Properties of the object.
             },
-            "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-            "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-              { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+            "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+                # unspecified, the service will attempt to choose a reasonable
+                # default.  This should be in the form of the API service name,
+                # e.g. "compute.googleapis.com".
+            "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+                # specified in order for the job to have workers.
+              { # Describes one particular pool of Cloud Dataflow workers to be
+                  # instantiated by the Cloud Dataflow service in order to perform the
+                  # computations required by a job.  Note that a workflow job may use
+                  # multiple pools, in order to match the various computational
+                  # requirements of the various stages of the job.
                 "diskSourceImage": "A String", # Fully qualified source image for disks.
-                "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-                  "workflowFileName": "A String", # Store the workflow in this file.
-                  "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-                  "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                    "reportingEnabled": True or False, # Send work progress updates to service.
-                    "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                    "workerId": "A String", # ID of the worker running this pipeline.
-                    "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                    "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                    "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  },
-                  "vmId": "A String", # ID string of VM.
-                  "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-                  "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-                  "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-                  "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                    "A String",
-                  ],
-                  "languageHint": "A String", # Suggested backend language.
-                  "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-                  "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-                  "logDir": "A String", # Directory on the VM to store logs.
-                  "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-                  "harnessCommand": "A String", # Command to launch the worker harness.
-                  "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-                  "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-                },
-                "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-                "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-                "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-                "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
                 "ipConfiguration": "A String", # Configuration for VM IPs.
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-                "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-                "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                    # are supported.
+                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                    # service will attempt to choose a reasonable default.
+                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                    # the service will use the network "default".
+                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
                 "metadata": { # Metadata to set on the Google Compute Engine VMs.
                   "a_key": "A String",
                 },
+                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                    # Compute Engine API.
+                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                    # `TEARDOWN_NEVER`.
+                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                    # down.
+                    #
+                    # If the workers are not torn down by the service, they will
+                    # continue to run and use Google Compute Engine VM resources in the
+                    # user's project until they are explicitly terminated by the user.
+                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                    # policy except for small, manually supervised test jobs.
+                    #
+                    # If unknown or unspecified, the service will attempt to choose a reasonable
+                    # default.
+                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                    # service will choose a number of threads (according to the number of cores
+                    # on the selected machine type for batch, or 1 by convention for streaming).
+                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                    # the form "regions/REGION/subnetworks/SUBNETWORK".
                 "poolArgs": { # Extra arguments for this worker pool.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
-                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-                "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                    # execute the job.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                    # using the standard Dataflow task runner.  Users should ignore
+                    # this field.
+                  "workflowFileName": "A String", # The file to store the workflow in.
+                  "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                      # will not be uploaded.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                  "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                  "vmId": "A String", # The ID string of the VM.
+                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "wheel".
+                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "root".
+                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                      # access the Cloud Dataflow API.
+                    "A String",
+                  ],
+                  "languageHint": "A String", # The suggested backend language.
+                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                      # console.
+                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                  "logDir": "A String", # The directory on the VM to store logs.
+                  "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                    "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                    "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                        # "shuffle/v1beta1".
+                    "workerId": "A String", # The ID of the worker running this pipeline.
+                    "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                        #
+                        # When workers access Google Cloud APIs, they logically do so via
+                        # relative URLs.  If this field is specified, it supplies the base
+                        # URL to use for resolving these relative URLs.  The normative
+                        # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                        # Locators".
+                        #
+                        # If not specified, the default value is "http://www.googleapis.com/"
+                    "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                        # "dataflow/v1b3/projects".
+                    "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                        # storage.
+                        #
+                        # The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}/{object}
+                        #   bucket.storage.googleapis.com/{object}
+                  },
+                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                  "harnessCommand": "A String", # The command to launch the worker harness.
+                  "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                      # temporary storage.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                  "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                      #
+                      # When workers access Google Cloud APIs, they logically do so via
+                      # relative URLs.  If this field is specified, it supplies the base
+                      # URL to use for resolving these relative URLs.  The normative
+                      # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                      # Locators".
+                      #
+                      # If not specified, the default value is "http://www.googleapis.com/"
+                },
+                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                    # select a default set of packages which are useful to worker
+                    # harnesses written in a particular language.
                 "packages": [ # Packages to be installed on workers.
-                  { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+                  { # The packages that must be installed in order for a worker to run the
+                      # steps of the Cloud Dataflow job that will be assigned to its worker
+                      # pool.
+                      #
+                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                      # might use this to install jars containing the user's code and all of the
+                      # various dependencies (libraries, data files, etc.) required in order
+                      # for that code to run.
+                    "location": "A String", # The resource to read the package from. The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}
+                        #   bucket.storage.googleapis.com/
                     "name": "A String", # The name of the package.
-                    "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
                   },
                 ],
                 "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
                   "algorithm": "A String", # The algorithm to use for autoscaling.
+                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
                 },
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
                 "dataDisks": [ # Data disks that are used by a VM in this workflow.
                   { # Describes the data disk used by a workflow job.
                     "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                    "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                    "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                        # /zones//diskTypes/pd-standard
+                    "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                        # attempt to choose a reasonable default.
+                    "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                        # must be a disk type appropriate to the project and zone in which
+                        # the workers will run.  If unknown or unspecified, the service
+                        # will attempt to choose a reasonable default.
+                        #
+                        # For example, the standard persistent disk type is a resource name
+                        # typically ending in "pd-standard".  If SSD persistent disks are
+                        # available, the resource name typically ends with "pd-ssd".  The
+                        # actual valid values are defined the Google Compute Engine API,
+                        # not by the Cloud Dataflow API; consult the Google Compute Engine
+                        # documentation for more information about determining the set of
+                        # available disk types for a particular project and zone.
+                        #
+                        # Google Compute Engine Disk types are local to a particular
+                        # project in a particular zone, and so the resource name will
+                        # typically look something like this:
+                        #
+                        # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
+                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                    # harness, residing in Google Container Registry.
               },
             ],
           },
-          "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+          "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+              # A description of the user pipeline and stages through which it is executed.
+              # Created by Cloud Dataflow service.  Only retrieved with
+              # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+              # form.  This data is provided by the Dataflow service for ease of visualizing
+              # the pipeline and interpretting Dataflow provided metrics.
+            "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+              { # Description of the type, names/ids, and input/outputs for a transform.
+                "kind": "A String", # Type of transform.
+                "name": "A String", # User provided name for this transform instance.
+                "inputCollectionName": [ # User names for all collection inputs to this transform.
+                  "A String",
+                ],
+                "displayData": [ # Transform-specific display data.
+                  { # Data provided with a pipeline or transform to provide descriptive info.
+                    "key": "A String", # The key identifying the display data.
+                        # This is intended to be used as a label for the display data
+                        # when viewed in a dax monitoring system.
+                    "shortStrValue": "A String", # A possible additional shorter value to display.
+                        # For example a java_class_name_value of com.mypackage.MyDoFn
+                        # will be stored with MyDoFn as the short_str_value and
+                        # com.mypackage.MyDoFn as the java_class_name value.
+                        # short_str_value can be displayed and java_class_name_value
+                        # will be displayed as a tooltip.
+                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                    "url": "A String", # An optional full URL.
+                    "floatValue": 3.14, # Contains value if the data is of float type.
+                    "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                        # language namespace (i.e. python module) which defines the display data.
+                        # This allows a dax monitoring system to specially handle the data
+                        # and perform custom rendering.
+                    "javaClassValue": "A String", # Contains value if the data is of java class type.
+                    "label": "A String", # An optional label to display in a dax UI for the element.
+                    "boolValue": True or False, # Contains value if the data is of a boolean type.
+                    "strValue": "A String", # Contains value if the data is of string type.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
+                    "int64Value": "A String", # Contains value if the data is of int64 type.
+                  },
+                ],
+                "outputCollectionName": [ # User  names for all collection outputs to this transform.
+                  "A String",
+                ],
+                "id": "A String", # SDK generated id of this transform instance.
+              },
+            ],
+            "displayData": [ # Pipeline level display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+              { # Description of the composing transforms, names/ids, and input/outputs of a
+                  # stage of execution.  Some composing transforms and sources may have been
+                  # generated by the Dataflow service during execution planning.
+                "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+                  { # Description of an interstitial value between transforms in an execution
+                      # stage.
+                    "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                  },
+                ],
+                "kind": "A String", # Type of tranform this stage is executing.
+                "name": "A String", # Dataflow service generated name for this stage.
+                "outputSource": [ # Output sources for this stage.
+                  { # Description of an input or output of an execution stage.
+                    "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                    "sizeBytes": "A String", # Size of the source, if measurable.
+                  },
+                ],
+                "inputSource": [ # Input sources for this stage.
+                  { # Description of an input or output of an execution stage.
+                    "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                    "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                        # source is most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                    "sizeBytes": "A String", # Size of the source, if measurable.
+                  },
+                ],
+                "componentTransform": [ # Transforms that comprise this execution stage.
+                  { # Description of a transform executed as part of an execution stage.
+                    "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                    "originalTransform": "A String", # User name for the original user transform with which this transform is
+                        # most closely associated.
+                    "name": "A String", # Dataflow service generated name for this source.
+                  },
+                ],
+                "id": "A String", # Dataflow service generated id for this stage.
+              },
+            ],
+          },
           "steps": [ # The top-level steps that constitute the entire job.
-            { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-              "kind": "A String", # The kind of step in the dataflow Job.
-              "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-              "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+            { # Defines a particular step within a Cloud Dataflow job.
+                #
+                # A job consists of multiple steps, each of which performs some
+                # specific operation as part of the overall job.  Data is typically
+                # passed from one step to another as part of the job.
+                #
+                # Here's an example of a sequence of steps which together implement a
+                # Map-Reduce job:
+                #
+                #   * Read a collection of data from some source, parsing the
+                #     collection's elements.
+                #
+                #   * Validate the elements.
+                #
+                #   * Apply a user-defined function to map each element to some value
+                #     and extract an element-specific key value.
+                #
+                #   * Group elements with the same key into a single element with
+                #     that key, transforming a multiply-keyed collection into a
+                #     uniquely-keyed collection.
+                #
+                #   * Write the elements out to some data sink.
+                #
+                # Note that the Cloud Dataflow service may be used to run many different
+                # types of jobs, not just Map-Reduce.
+              "kind": "A String", # The kind of step in the Cloud Dataflow job.
+              "properties": { # Named properties associated with the step. Each kind of
+                  # predefined step has its own required set of properties.
+                  # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
                 "a_key": "", # Properties of the object.
               },
+              "name": "A String", # The name that identifies the step. This must be unique for each
+                  # step with respect to all other steps in the Cloud Dataflow job.
             },
           ],
-          "currentStateTime": "A String", # The timestamp associated with the current state.
-          "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+          "currentState": "A String", # The current state of the job.
+              #
+              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+              # specified.
+              #
+              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+              # terminal state. After a job has reached a terminal state, no
+              # further state updates may be made.
+              #
+              # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
+          "tempFiles": [ # A set of files the system should be aware of that are used
+              # for temporary storage. These temporary files will be
+              # removed on job completion.
+              # No duplicates are allowed.
+              # No file patterns are supported.
+              #
+              # The supported files are:
+              #
+              # Google Cloud Storage:
+              #
+              #    storage.googleapis.com/{bucket}/{object}
+              #    bucket.storage.googleapis.com/{object}
             "A String",
           ],
-          "type": "A String", # The type of dataflow job.
-          "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-          "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-          "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+          "type": "A String", # The type of Cloud Dataflow job.
+          "id": "A String", # The unique ID of this job.
+              #
+              # This field is set by the Cloud Dataflow service when the Job is
+              # created, and is immutable for the life of the job.
+          "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+              # of the job it replaced.
+              #
+              # When sending a `CreateJobRequest`, you can update a job by specifying it
+              # here. The job named here is stopped, and its intermediate state is
+              # transferred to this job.
+          "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+              # isn't contained in the submitted job.
             "stages": { # A mapping from each stage to the information about that stage.
-              "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-                "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+              "a_key": { # Contains information about how a particular
+                  # google.dataflow.v1beta3.Step will be executed.
+                "stepName": [ # The steps associated with the execution stage.
+                    # Note that stages may have several steps, and that a given step
+                    # might be run by more than one stage.
                   "A String",
                 ],
               },
@@ -762,144 +2184,487 @@
 
 <div class="method">
     <code class="details" id="update">update(projectId, location, jobId, body, x__xgafv=None)</code>
-  <pre>Updates the state of an existing dataflow job.
+  <pre>Updates the state of an existing Cloud Dataflow job.
 
 Args:
-  projectId: string, The project which owns the job. (required)
-  location: string, The location which contains this job. (required)
-  jobId: string, Identifies a single job. (required)
+  projectId: string, The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location that contains this job. (required)
+  jobId: string, The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Defines a job to be run by the Dataflow service.
-    "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-    "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-    "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-    "location": "A String", # The location which contains this job.
-    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-    "projectId": "A String", # The project which owns the job.
-    "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+{ # Defines a job to be run by the Cloud Dataflow service.
+    "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+        # If this field is set, the service will ensure its uniqueness.
+        # The request to create a job will fail if the service has knowledge of a
+        # previously submitted job with the same client's ID and job name.
+        # The caller may use this field to ensure idempotence of job
+        # creation across retried attempts to create a job.
+        # By default, the field is empty and, in that case, the service ignores it.
+    "requestedState": "A String", # The job's requested state.
+        # 
+        # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+        # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+        # also be used to directly set a job's requested state to
+        # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+        # job if it has not already reached a terminal state.
+    "name": "A String", # The user-specified Cloud Dataflow job name.
+        # 
+        # Only one Job with a given name may exist in a project at any
+        # given time. If a caller attempts to create a Job with the same
+        # name as an already-existing Job, the attempt returns the
+        # existing Job.
+        # 
+        # The name must match the regular expression
+        # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+        # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+    "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "labels": { # User-defined labels for this job.
+        # 
+        # The labels map can contain no more than 64 entries.  Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
       "a_key": "A String",
     },
-    "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+    "location": "A String", # The location that contains this job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
+    "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+        # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
-    "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-    "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-      "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+    "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+      "version": { # A structure describing which components and their versions of the service
+          # are required in order to run the job.
         "a_key": "", # Properties of the object.
       },
-      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+          # storage.  The system will append the suffix "/temp-{JOBNAME} to
+          # this resource prefix, where {JOBNAME} is the value of the
+          # job_name field.  The resulting bucket and object prefix is used
+          # as the prefix of the resources used to store temporary data
+          # needed during the job execution.  NOTE: This will override the
+          # value in taskrunner_settings.
+          # The supported resource type is:
+          #
+          # Google Cloud Storage:
+          #
+          #   storage.googleapis.com/{bucket}/{object}
+          #   bucket.storage.googleapis.com/{object}
       "internalExperiments": { # Experimental settings.
         "a_key": "", # Properties of the object. Contains field @type with type URL.
       },
-      "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+      "dataset": "A String", # The dataset for the current project where various workflow
+          # related tables are stored.
+          #
+          # The supported resource type is:
+          #
+          # Google BigQuery:
+          #   bigquery.googleapis.com/{dataset}
       "experiments": [ # The list of experiments to enable.
         "A String",
       ],
       "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-      "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+      "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+          # options are passed through the service and are used to recreate the
+          # SDK pipeline options on the worker in a language agnostic and platform
+          # independent way.
         "a_key": "", # Properties of the object.
       },
       "userAgent": { # A description of the process that generated the request.
         "a_key": "", # Properties of the object.
       },
-      "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-      "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-        { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+      "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+          # unspecified, the service will attempt to choose a reasonable
+          # default.  This should be in the form of the API service name,
+          # e.g. "compute.googleapis.com".
+      "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+          # specified in order for the job to have workers.
+        { # Describes one particular pool of Cloud Dataflow workers to be
+            # instantiated by the Cloud Dataflow service in order to perform the
+            # computations required by a job.  Note that a workflow job may use
+            # multiple pools, in order to match the various computational
+            # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-            "workflowFileName": "A String", # Store the workflow in this file.
-            "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-              "reportingEnabled": True or False, # Send work progress updates to service.
-              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-              "workerId": "A String", # ID of the worker running this pipeline.
-              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            },
-            "vmId": "A String", # ID string of VM.
-            "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-            "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-              "A String",
-            ],
-            "languageHint": "A String", # Suggested backend language.
-            "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-            "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-            "logDir": "A String", # Directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-            "harnessCommand": "A String", # Command to launch the worker harness.
-            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-            "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-          },
-          "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
           "ipConfiguration": "A String", # Configuration for VM IPs.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-          "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "metadata": { # Metadata to set on the Google Compute Engine VMs.
             "a_key": "A String",
           },
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
           "poolArgs": { # Extra arguments for this worker pool.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-          "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-          "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+              # using the standard Dataflow task runner.  Users should ignore
+              # this field.
+            "workflowFileName": "A String", # The file to store the workflow in.
+            "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                # will not be uploaded.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "vmId": "A String", # The ID string of the VM.
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+              "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+              "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                  # "shuffle/v1beta1".
+              "workerId": "A String", # The ID of the worker running this pipeline.
+              "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+              "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                  # "dataflow/v1b3/projects".
+              "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                  # storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+            },
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "harnessCommand": "A String", # The command to launch the worker harness.
+            "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                # temporary storage.
+                #
+                # The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #   storage.googleapis.com/{bucket}/{object}
+                #   bucket.storage.googleapis.com/{object}
+            "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                #
+                # When workers access Google Cloud APIs, they logically do so via
+                # relative URLs.  If this field is specified, it supplies the base
+                # URL to use for resolving these relative URLs.  The normative
+                # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                # Locators".
+                #
+                # If not specified, the default value is "http://www.googleapis.com/"
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
           "packages": [ # Packages to be installed on workers.
-            { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
               "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
             },
           ],
           "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             "algorithm": "A String", # The algorithm to use for autoscaling.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
           },
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
-              "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                  # /zones//diskTypes/pd-standard
+              "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                  # must be a disk type appropriate to the project and zone in which
+                  # the workers will run.  If unknown or unspecified, the service
+                  # will attempt to choose a reasonable default.
+                  #
+                  # For example, the standard persistent disk type is a resource name
+                  # typically ending in "pd-standard".  If SSD persistent disks are
+                  # available, the resource name typically ends with "pd-ssd".  The
+                  # actual valid values are defined the Google Compute Engine API,
+                  # not by the Cloud Dataflow API; consult the Google Compute Engine
+                  # documentation for more information about determining the set of
+                  # available disk types for a particular project and zone.
+                  #
+                  # Google Compute Engine Disk types are local to a particular
+                  # project in a particular zone, and so the resource name will
+                  # typically look something like this:
+                  #
+                  # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+              # harness, residing in Google Container Registry.
         },
       ],
     },
-    "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+    "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+        # A description of the user pipeline and stages through which it is executed.
+        # Created by Cloud Dataflow service.  Only retrieved with
+        # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+        # form.  This data is provided by the Dataflow service for ease of visualizing
+        # the pipeline and interpretting Dataflow provided metrics.
+      "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+        { # Description of the type, names/ids, and input/outputs for a transform.
+          "kind": "A String", # Type of transform.
+          "name": "A String", # User provided name for this transform instance.
+          "inputCollectionName": [ # User names for all collection inputs to this transform.
+            "A String",
+          ],
+          "displayData": [ # Transform-specific display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+            },
+          ],
+          "outputCollectionName": [ # User  names for all collection outputs to this transform.
+            "A String",
+          ],
+          "id": "A String", # SDK generated id of this transform instance.
+        },
+      ],
+      "displayData": [ # Pipeline level display data.
+        { # Data provided with a pipeline or transform to provide descriptive info.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
+          "shortStrValue": "A String", # A possible additional shorter value to display.
+              # For example a java_class_name_value of com.mypackage.MyDoFn
+              # will be stored with MyDoFn as the short_str_value and
+              # com.mypackage.MyDoFn as the java_class_name value.
+              # short_str_value can be displayed and java_class_name_value
+              # will be displayed as a tooltip.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "url": "A String", # An optional full URL.
+          "floatValue": 3.14, # Contains value if the data is of float type.
+          "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+              # language namespace (i.e. python module) which defines the display data.
+              # This allows a dax monitoring system to specially handle the data
+              # and perform custom rendering.
+          "javaClassValue": "A String", # Contains value if the data is of java class type.
+          "label": "A String", # An optional label to display in a dax UI for the element.
+          "boolValue": True or False, # Contains value if the data is of a boolean type.
+          "strValue": "A String", # Contains value if the data is of string type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
+          "int64Value": "A String", # Contains value if the data is of int64 type.
+        },
+      ],
+      "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+        { # Description of the composing transforms, names/ids, and input/outputs of a
+            # stage of execution.  Some composing transforms and sources may have been
+            # generated by the Dataflow service during execution planning.
+          "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+            { # Description of an interstitial value between transforms in an execution
+                # stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "kind": "A String", # Type of tranform this stage is executing.
+          "name": "A String", # Dataflow service generated name for this stage.
+          "outputSource": [ # Output sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "inputSource": [ # Input sources for this stage.
+            { # Description of an input or output of an execution stage.
+              "userName": "A String", # Human-readable name for this source; may be user or system generated.
+              "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                  # source is most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+              "sizeBytes": "A String", # Size of the source, if measurable.
+            },
+          ],
+          "componentTransform": [ # Transforms that comprise this execution stage.
+            { # Description of a transform executed as part of an execution stage.
+              "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+              "originalTransform": "A String", # User name for the original user transform with which this transform is
+                  # most closely associated.
+              "name": "A String", # Dataflow service generated name for this source.
+            },
+          ],
+          "id": "A String", # Dataflow service generated id for this stage.
+        },
+      ],
+    },
     "steps": [ # The top-level steps that constitute the entire job.
-      { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-        "kind": "A String", # The kind of step in the dataflow Job.
-        "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-        "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+      { # Defines a particular step within a Cloud Dataflow job.
+          #
+          # A job consists of multiple steps, each of which performs some
+          # specific operation as part of the overall job.  Data is typically
+          # passed from one step to another as part of the job.
+          #
+          # Here's an example of a sequence of steps which together implement a
+          # Map-Reduce job:
+          #
+          #   * Read a collection of data from some source, parsing the
+          #     collection's elements.
+          #
+          #   * Validate the elements.
+          #
+          #   * Apply a user-defined function to map each element to some value
+          #     and extract an element-specific key value.
+          #
+          #   * Group elements with the same key into a single element with
+          #     that key, transforming a multiply-keyed collection into a
+          #     uniquely-keyed collection.
+          #
+          #   * Write the elements out to some data sink.
+          #
+          # Note that the Cloud Dataflow service may be used to run many different
+          # types of jobs, not just Map-Reduce.
+        "kind": "A String", # The kind of step in the Cloud Dataflow job.
+        "properties": { # Named properties associated with the step. Each kind of
+            # predefined step has its own required set of properties.
+            # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
           "a_key": "", # Properties of the object.
         },
+        "name": "A String", # The name that identifies the step. This must be unique for each
+            # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentStateTime": "A String", # The timestamp associated with the current state.
-    "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+    "tempFiles": [ # A set of files the system should be aware of that are used
+        # for temporary storage. These temporary files will be
+        # removed on job completion.
+        # No duplicates are allowed.
+        # No file patterns are supported.
+        # 
+        # The supported files are:
+        # 
+        # Google Cloud Storage:
+        # 
+        #    storage.googleapis.com/{bucket}/{object}
+        #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
-    "type": "A String", # The type of dataflow job.
-    "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-    "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-    "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+    "type": "A String", # The type of Cloud Dataflow job.
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
+        # 
+        # When sending a `CreateJobRequest`, you can update a job by specifying it
+        # here. The job named here is stopped, and its intermediate state is
+        # transferred to this job.
+    "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+        # isn't contained in the submitted job.
       "stages": { # A mapping from each stage to the information about that stage.
-        "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-          "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+        "a_key": { # Contains information about how a particular
+            # google.dataflow.v1beta3.Step will be executed.
+          "stepName": [ # The steps associated with the execution stage.
+              # Note that stages may have several steps, and that a given step
+              # might be run by more than one stage.
             "A String",
           ],
         },
@@ -908,139 +2673,485 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
index 330e1bb..3ff52b1 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
@@ -89,12 +89,21 @@
   projectId: string, A project id. (required)
   location: string, The location which contains the job specified by job_id. (required)
   jobId: string, The job to get messages about. (required)
-  startTime: string, If specified, return only messages with timestamps >= start_time. The default is the job creation time (i.e. beginning of messages).
-  pageSize: integer, If specified, determines the maximum number of messages to return. If unspecified, the service may choose an appropriate default, or may return an arbitrarily large number of results.
+  startTime: string, If specified, return only messages with timestamps >= start_time.
+The default is the job creation time (i.e. beginning of messages).
+  pageSize: integer, If specified, determines the maximum number of messages to
+return.  If unspecified, the service may choose an appropriate
+default, or may return an arbitrarily large number of results.
   x__xgafv: string, V1 error format.
-  pageToken: string, If supplied, this should be the value of next_page_token returned by an earlier call. This will cause the next page of results to be returned.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, If supplied, this should be the value of next_page_token returned
+by an earlier call. This will cause the next page of results to
+be returned.
   minimumImportance: string, Filter to only get messages with importance >= level
-  endTime: string, Return only messages with timestamps < end_time. The default is now (i.e. return up to the latest messages available).
+  endTime: string, Return only messages with timestamps < end_time. The default is now
+(i.e. return up to the latest messages available).
 
 Returns:
   An object of the form:
@@ -105,7 +114,8 @@
       { # A particular message pertaining to a Dataflow job.
         "messageImportance": "A String", # Importance level of the message.
         "messageText": "A String", # The text of the message.
-        "id": "A String", # Identifies the message. This is automatically generated by the service; the caller should treat it as an opaque string.
+        "id": "A String", # Identifies the message.  This is automatically generated by the
+            # service; the caller should treat it as an opaque string.
         "time": "A String", # The timestamp of the message.
       },
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
index d147bb3..1bdc4ed 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
@@ -96,34 +96,69 @@
     "workItemTypes": [ # Filter for WorkItem type.
       "A String",
     ],
-    "workerCapabilities": [ # Worker capabilities. WorkItems might be limited to workers with specific capabilities.
+    "workerCapabilities": [ # Worker capabilities. WorkItems might be limited to workers with specific
+        # capabilities.
       "A String",
     ],
     "requestedLeaseDuration": "A String", # The initial lease period.
-    "workerId": "A String", # Identifies the worker leasing work -- typically the ID of the virtual machine running the worker.
+    "workerId": "A String", # Identifies the worker leasing work -- typically the ID of the
+        # virtual machine running the worker.
     "currentWorkerTime": "A String", # The current timestamp at the worker.
     "location": "A String", # The location which contains the WorkItem's job.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response to a request to lease WorkItems.
     "workItems": [ # A list of the leased WorkItems.
-      { # WorkItem represents basic information about a WorkItem to be executed in the cloud.
+      { # WorkItem represents basic information about a WorkItem to be executed
+          # in the cloud.
+        "packages": [ # Any required packages that need to be fetched in order to execute
+            # this WorkItem.
+          { # The packages that must be installed in order for a worker to run the
+              # steps of the Cloud Dataflow job that will be assigned to its worker
+              # pool.
+              #
+              # This is the mechanism by which the Cloud Dataflow SDK causes code to
+              # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+              # might use this to install jars containing the user's code and all of the
+              # various dependencies (libraries, data files, etc.) required in order
+              # for that code to run.
+            "location": "A String", # The resource to read the package from. The supported resource type is:
+                #
+                # Google Cloud Storage:
+                #
+                #   storage.googleapis.com/{bucket}
+                #   bucket.storage.googleapis.com/
+            "name": "A String", # The name of the package.
+          },
+        ],
         "reportStatusInterval": "A String", # Recommended reporting interval.
         "leaseExpireTime": "A String", # Time when the lease on this Work will expire.
         "seqMapTask": { # Describes a particular function to invoke. # Additional information for SeqMapTask WorkItems.
           "inputs": [ # Information about each of the inputs.
             { # Information about a side input of a DoFn or an input of a SeqDoFn.
-              "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+              "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                  # If more than one source, then the elements are taken from the
+                  # sources, in the specified order if order matters.
+                  # At least one source is required.
                 { # A source that records can be read and decoded from.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -131,18 +166,47 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               ],
               "kind": { # How to interpret the source element(s) as a side input value.
                 "a_key": "", # Properties of the object.
               },
-              "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+              "tag": "A String", # The id of the tag the user code will access this side input by;
+                  # this should correspond to the tag of some MultiOutputInfo.
             },
           ],
           "outputInfos": [ # Information about each of the outputs.
@@ -158,21 +222,30 @@
               },
             },
           ],
-          "stageName": "A String", # System-defined name of the stage containing the SeqDo operation. Unique across the workflow.
-          "systemName": "A String", # System-defined name of the SeqDo operation. Unique across the workflow.
+          "stageName": "A String", # System-defined name of the stage containing the SeqDo operation.
+              # Unique across the workflow.
+          "systemName": "A String", # System-defined name of the SeqDo operation.
+              # Unique across the workflow.
           "userFn": { # The user function to invoke.
             "a_key": "", # Properties of the object.
           },
           "name": "A String", # The user-provided name of the SeqDo operation.
         },
         "projectId": "A String", # Identifies the cloud project this WorkItem belongs to.
-        "sourceOperationTask": { # A work item that represents the different operations that can be performed on a user-defined Source specification. # Additional information for source operation WorkItems.
+        "sourceOperationTask": { # A work item that represents the different operations that can be # Additional information for source operation WorkItems.
+            # performed on a user-defined Source specification.
           "getMetadata": { # A request to compute the SourceMetadata of a Source. # Information about a request to get metadata about a source.
             "source": { # A source that records can be read and decoded from. # Specification of the source whose metadata should be computed.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -180,20 +253,67 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "split": { # Represents the operation to split a high-level Source specification into bundles (parts for parallel processing). At a high level, splitting of a source into bundles happens as follows: SourceSplitRequest is applied to the source. If it returns SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source is used "as is". Otherwise, splitting is applied recursively to each produced DerivedSource. As an optimization, for any Source, if its does_not_need_splitting is true, the framework assumes that splitting this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest. This applies both to the initial source being split and to bundles produced from it. # Information about a request to split a source.
+          "split": { # Represents the operation to split a high-level Source specification # Information about a request to split a source.
+              # into bundles (parts for parallel processing).
+              #
+              # At a high level, splitting of a source into bundles happens as follows:
+              # SourceSplitRequest is applied to the source. If it returns
+              # SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the source
+              # is used "as is". Otherwise, splitting is applied recursively to each
+              # produced DerivedSource.
+              #
+              # As an optimization, for any Source, if its does_not_need_splitting is
+              # true, the framework assumes that splitting this source would return
+              # SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't initiate a SourceSplitRequest.
+              # This applies both to the initial source being split and to bundles
+              # produced from it.
             "source": { # A source that records can be read and decoded from. # Specification of the source to be split.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -201,32 +321,76 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
-            "options": { # Hints for splitting a Source into bundles (parts for parallel processing) using SourceSplitRequest. # Hints for tuning the splitting process.
+            "options": { # Hints for splitting a Source into bundles (parts for parallel # Hints for tuning the splitting process.
+                # processing) using SourceSplitRequest.
               "desiredShardSizeBytes": "A String", # DEPRECATED in favor of desired_bundle_size_bytes.
-              "desiredBundleSizeBytes": "A String", # The source should be split into a set of bundles where the estimated size of each is approximately this many bytes.
+              "desiredBundleSizeBytes": "A String", # The source should be split into a set of bundles where the estimated size
+                  # of each is approximately this many bytes.
             },
           },
         },
         "initialReportIndex": "A String", # The initial index to use when reporting the status of the WorkItem.
-        "mapTask": { # MapTask consists of an ordered set of instructions, each of which describes one particular low-level operation for the worker to perform in order to accomplish the MapTask's WorkItem. Each instruction must appear in the list before any instructions which depends on its output. # Additional information for MapTask WorkItems.
-          "systemName": "A String", # System-defined name of this MapTask. Unique across the workflow.
-          "stageName": "A String", # System-defined name of the stage containing this MapTask. Unique across the workflow.
+        "mapTask": { # MapTask consists of an ordered set of instructions, each of which # Additional information for MapTask WorkItems.
+            # describes one particular low-level operation for the worker to
+            # perform in order to accomplish the MapTask's WorkItem.
+            #
+            # Each instruction must appear in the list before any instructions which
+            # depends on its output.
+          "systemName": "A String", # System-defined name of this MapTask.
+              # Unique across the workflow.
+          "stageName": "A String", # System-defined name of the stage containing this MapTask.
+              # Unique across the workflow.
           "instructions": [ # The instructions in the MapTask.
             { # Describes a particular operation comprising a MapTask.
               "name": "A String", # User-provided name of this operation.
-              "read": { # An instruction that reads records. Takes no inputs, produces one output. # Additional information for Read instructions.
+              "read": { # An instruction that reads records. # Additional information for Read instructions.
+                  # Takes no inputs, produces one output.
                 "source": { # A source that records can be read and decoded from. # The source to read from.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -234,35 +398,77 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
               "outputs": [ # Describes the outputs of the instruction.
                 { # An output of an instruction.
                   "name": "A String", # The user-provided name of this output.
-                  "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the key size.
+                  "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                      # should only report the key size.
                   "codec": { # The codec to use to encode data being written via this output.
                     "a_key": "", # Properties of the object.
                   },
-                  "systemName": "A String", # System-defined name of this output. Unique across the workflow.
-                  "originalName": "A String", # System-defined name for this output in the original workflow graph. Outputs that do not contribute to an original instruction do not set this.
-                  "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the value size.
+                  "systemName": "A String", # System-defined name of this output.
+                      # Unique across the workflow.
+                  "originalName": "A String", # System-defined name for this output in the original workflow graph.
+                      # Outputs that do not contribute to an original instruction do not set this.
+                  "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                      # should only report the value size.
                 },
               ],
-              "partialGroupByKey": { # An instruction that does a partial group-by-key. One input and one output. # Additional information for PartialGroupByKey instructions.
+              "partialGroupByKey": { # An instruction that does a partial group-by-key. # Additional information for PartialGroupByKey instructions.
+                  # One input and one output.
                 "sideInputs": [ # Zero or more side inputs.
                   { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                    "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                    "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                        # If more than one source, then the elements are taken from the
+                        # sources, in the specified order if order matters.
+                        # At least one source is required.
                       { # A source that records can be read and decoded from.
                         "codec": { # The codec to use to decode data read from the source.
                           "a_key": "", # Properties of the object.
                         },
-                        "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                        "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                            # as differences against another source, in order to save backend-side
+                            # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                            # To support this use case, the full set of parameters of the source
+                            # is logically obtained by taking the latest explicitly specified value
+                            # of each parameter in the order:
+                            # base_specs (later items win), spec (overrides anything in base_specs).
                           {
                             "a_key": "", # Properties of the object.
                           },
@@ -270,37 +476,77 @@
                         "spec": { # The source to read from, plus its parameters.
                           "a_key": "", # Properties of the object.
                         },
-                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                          "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                            # doesn't need splitting, and using SourceSplitRequest on it would
+                            # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                            #
+                            # E.g. a file splitter may set this to true when splitting a single file
+                            # into a set of byte ranges of appropriate size, and set this
+                            # to false when splitting a filepattern into individual files.
+                            # However, for efficiency, a file splitter may decide to produce
+                            # file subranges directly from the filepattern to avoid a splitting
+                            # round-trip.
+                            #
+                            # See SourceSplitRequest for an overview of the splitting process.
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                        "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                            # avoiding a SourceGetMetadataOperation roundtrip
+                            # (see SourceOperationRequest).
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                            # and tuning the pipeline, etc.
+                          "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                              # (this is a streaming source).
+                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                              # read from this source.  This estimate is in terms of external storage
+                              # size, before any decompression or other processing done by the reader.
+                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                              # the (encoded) keys in lexicographically sorted order.
                         },
                       },
                     ],
                     "kind": { # How to interpret the source element(s) as a side input value.
                       "a_key": "", # Properties of the object.
                     },
-                    "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                    "tag": "A String", # The id of the tag the user code will access this side input by;
+                        # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the intermediate store between the GBK and the CombineValues.
-                "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the CombineValues instruction lifted into this instruction.
+                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                    # intermediate store between the GBK and the CombineValues.
+                "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
+                    # CombineValues instruction lifted into this instruction.
                 "valueCombiningFn": { # The value combining function to invoke.
                   "a_key": "", # Properties of the object.
                 },
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # Describes the input to the partial group-by-key instruction.
+                "input": { # An input of an instruction, as a reference to an output of a # Describes the input to the partial group-by-key instruction.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
                 "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
                   "a_key": "", # Properties of the object.
                 },
               },
-              "write": { # An instruction that writes records. Takes one input, produces no outputs. # Additional information for Write instructions.
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+              "write": { # An instruction that writes records. # Additional information for Write instructions.
+                  # Takes one input, produces no outputs.
+                "input": { # An input of an instruction, as a reference to an output of a # The input.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
                 "sink": { # A sink that records can be encoded and written to. # The sink to write to.
                   "codec": { # The codec to use to encode data written to the sink.
@@ -311,25 +557,42 @@
                   },
                 },
               },
-              "systemName": "A String", # System-defined name of this operation. Unique across the workflow.
+              "systemName": "A String", # System-defined name of this operation.
+                  # Unique across the workflow.
               "flatten": { # An instruction that copies its inputs (zero or more) to its (single) output. # Additional information for Flatten instructions.
                 "inputs": [ # Describes the inputs to the flatten instruction.
-                  { # An input of an instruction, as a reference to an output of a producer instruction.
+                  { # An input of an instruction, as a reference to an output of a
+                      # producer instruction.
                     "outputNum": 42, # The output index (origin zero) within the producer.
-                    "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                    "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                        # the output to be consumed by this input.  This index is relative
+                        # to the list of instructions in this input's instruction's
+                        # containing MapTask.
                   },
                 ],
               },
               "originalName": "A String", # System-defined name for the operation in the original workflow graph.
-              "parDo": { # An instruction that does a ParDo operation. Takes one main input and zero or more side inputs, and produces zero or more outputs. Runs user code. # Additional information for ParDo instructions.
+              "parDo": { # An instruction that does a ParDo operation. # Additional information for ParDo instructions.
+                  # Takes one main input and zero or more side inputs, and produces
+                  # zero or more outputs.
+                  # Runs user code.
                 "sideInputs": [ # Zero or more side inputs.
                   { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                    "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                    "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                        # If more than one source, then the elements are taken from the
+                        # sources, in the specified order if order matters.
+                        # At least one source is required.
                       { # A source that records can be read and decoded from.
                         "codec": { # The codec to use to decode data read from the source.
                           "a_key": "", # Properties of the object.
                         },
-                        "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                        "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                            # as differences against another source, in order to save backend-side
+                            # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                            # To support this use case, the full set of parameters of the source
+                            # is logically obtained by taking the latest explicitly specified value
+                            # of each parameter in the order:
+                            # base_specs (later items win), spec (overrides anything in base_specs).
                           {
                             "a_key": "", # Properties of the object.
                           },
@@ -337,27 +600,61 @@
                         "spec": { # The source to read from, plus its parameters.
                           "a_key": "", # Properties of the object.
                         },
-                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                          "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                        "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                            # doesn't need splitting, and using SourceSplitRequest on it would
+                            # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                            #
+                            # E.g. a file splitter may set this to true when splitting a single file
+                            # into a set of byte ranges of appropriate size, and set this
+                            # to false when splitting a filepattern into individual files.
+                            # However, for efficiency, a file splitter may decide to produce
+                            # file subranges directly from the filepattern to avoid a splitting
+                            # round-trip.
+                            #
+                            # See SourceSplitRequest for an overview of the splitting process.
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                        "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                            # avoiding a SourceGetMetadataOperation roundtrip
+                            # (see SourceOperationRequest).
+                            #
+                            # This field is meaningful only in the Source objects populated
+                            # by the user (e.g. when filling in a DerivedSource).
+                            # Source objects supplied by the framework to the user don't have
+                            # this field populated.
+                            # and tuning the pipeline, etc.
+                          "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                              # (this is a streaming source).
+                          "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                              # read from this source.  This estimate is in terms of external storage
+                              # size, before any decompression or other processing done by the reader.
+                          "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                              # the (encoded) keys in lexicographically sorted order.
                         },
                       },
                     ],
                     "kind": { # How to interpret the source element(s) as a side input value.
                       "a_key": "", # Properties of the object.
                     },
-                    "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                    "tag": "A String", # The id of the tag the user code will access this side input by;
+                        # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                "input": { # An input of an instruction, as a reference to an output of a # The input.
+                    # producer instruction.
                   "outputNum": 42, # The output index (origin zero) within the producer.
-                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                  "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                      # the output to be consumed by this input.  This index is relative
+                      # to the list of instructions in this input's instruction's
+                      # containing MapTask.
                 },
-                "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a MultiDoFn.
+                "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a  MultiDoFn.
                   { # Information about an output of a multi-output DoFn.
-                    "tag": "A String", # The id of the tag the user code will emit to this output by; this should correspond to the tag of some SideInputInfo.
+                    "tag": "A String", # The id of the tag the user code will emit to this output by; this
+                        # should correspond to the tag of some SideInputInfo.
                   },
                 ],
                 "numOutputs": 42, # The number of outputs.
@@ -369,48 +666,50 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "streamingComputationTask": { # A task which describes what action should be performed for the specified streaming computation ranges. # Additional information for StreamingComputationTask WorkItems.
-          "dataDisks": [ # Describes the set of data disks this task should apply to.
-            { # Describes mounted data disk.
-              "dataDisk": "A String", # The name of the data disk. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
-            },
-          ],
-          "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
-            { # Describes full or partial data disk assignment information of the computation ranges.
-              "rangeAssignments": [ # Data disk assignments for ranges from this computation.
-                { # Data disk assignment information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.
-                  "start": "A String", # The start (inclusive) of the key range.
-                  "end": "A String", # The end (exclusive) of the key range.
-                  "dataDisk": "A String", # The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
-                },
-              ],
-              "computationId": "A String", # The ID of the computation.
-            },
-          ],
-          "taskType": "A String", # A type of streaming computation task.
-        },
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "streamingSetupTask": { # A task which initializes part of a streaming Dataflow job. # Additional information for StreamingSetupTask WorkItems.
-          "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow worker harness.
+          "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow
+              # worker harness.
           "drain": True or False, # The user has requested drain.
-          "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all computations and their sharded locations. # The global topology of the streaming Dataflow job.
+          "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all # The global topology of the streaming Dataflow job.
+              # computations and their sharded locations.
+            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
+              { # Data disk assignment for a given VM instance.
+                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
+                    # "myproject-1014-104817-4c2-harness-0".
+                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
+                    # this list defines which persistent directory the disk is mounted to, for
+                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
+                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
+                  "A String",
+                ],
+              },
+            ],
+            "persistentStateVersion": 42, # Version number for persistent state.
             "computations": [ # The computations associated with a streaming Dataflow job.
               { # All configuration data for a particular Computation.
                 "inputs": [ # The inputs to the computation.
-                  { # Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.
-                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for stage-to-stage communication. # The stream is part of another computation within the current streaming Dataflow job.
-                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow job.
+                  { # Describes a stream of data, either as input to be processed or as
+                      # output of a streaming Dataflow job.
+                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for # The stream is part of another computation within the current
+                        # streaming Dataflow job.
+                        # stage-to-stage communication.
+                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow
+                          # job.
                     },
-                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or out of a streaming Dataflow job. # The stream is a pubsub stream.
-                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.
-                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps. If left empty, record timestamps will be generated upon arrival.
+                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or # The stream is a pubsub stream.
+                        # out of a streaming Dataflow job.
+                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids.
+                          # If left empty, record deduplication will be strictly best effort.
+                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps.
+                          # If left empty, record timestamps will be generated upon arrival.
                       "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
-                      "topic": "A String", # A pubsub topic, in the form of "pubsub.googleapis.com/topics/
-                          # /"
-                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking custom time timestamps for watermark estimation.
+                      "topic": "A String", # A pubsub topic, in the form of
+                          # "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
+                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking
+                          # custom time timestamps for watermark estimation.
                       "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
-                      "subscription": "A String", # A pubsub subscription, in the form of "pubsub.googleapis.com/subscriptions/
-                          # /"
+                      "subscription": "A String", # A pubsub subscription, in the form of
+                          # "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-name>"
                     },
                     "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
                       "stateful": True or False, # Whether this source is stateful.
@@ -421,42 +720,57 @@
                     },
                   },
                 ],
-                "systemStageName": "A String", # The system stage name.
+                "outputs": [ # The outputs from the computation.
+                  { # Describes a stream of data, either as input to be processed or as
+                      # output of a streaming Dataflow job.
+                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for # The stream is part of another computation within the current
+                        # streaming Dataflow job.
+                        # stage-to-stage communication.
+                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow
+                          # job.
+                    },
+                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or # The stream is a pubsub stream.
+                        # out of a streaming Dataflow job.
+                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids.
+                          # If left empty, record deduplication will be strictly best effort.
+                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps.
+                          # If left empty, record timestamps will be generated upon arrival.
+                      "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
+                      "topic": "A String", # A pubsub topic, in the form of
+                          # "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
+                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking
+                          # custom time timestamps for watermark estimation.
+                      "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
+                      "subscription": "A String", # A pubsub subscription, in the form of
+                          # "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-name>"
+                    },
+                    "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
+                      "stateful": True or False, # Whether this source is stateful.
+                    },
+                    "sideInputLocation": { # Identifies the location of a streaming side input. # The stream is a streaming side input.
+                      "stateFamily": "A String", # Identifies the state family where this side input is stored.
+                      "tag": "A String", # Identifies the particular side input within the streaming Dataflow job.
+                    },
+                  },
+                ],
                 "keyRanges": [ # The key ranges processed by the computation.
-                  { # Location information for a specific key-range of a sharded computation. Currently we only support UTF-8 character splits to simplify encoding into JSON.
+                  { # Location information for a specific key-range of a sharded computation.
+                      # Currently we only support UTF-8 character splits to simplify encoding into
+                      # JSON.
                     "start": "A String", # The start (inclusive) of the key range.
-                    "deliveryEndpoint": "A String", # The physical location of this range assignment to be used for streaming computation cross-worker message delivery.
+                    "persistentDirectory": "A String", # The location of the persistent state for this range, as a
+                        # persistent directory in the worker local filesystem.
                     "end": "A String", # The end (exclusive) of the key range.
-                    "persistentDirectory": "A String", # The location of the persistent state for this range, as a persistent directory in the worker local filesystem.
-                    "dataDisk": "A String", # The name of the data disk where data for this range is stored. This name is local to the Google Cloud Platform project and uniquely identifies the disk within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
+                    "deliveryEndpoint": "A String", # The physical location of this range assignment to be used for
+                        # streaming computation cross-worker message delivery.
+                    "dataDisk": "A String", # The name of the data disk where data for this range is stored.
+                        # This name is local to the Google Cloud Platform project and uniquely
+                        # identifies the disk within that project, for example
+                        # "myproject-1014-104817-4c2-harness-0-disk-1".
                   },
                 ],
                 "computationId": "A String", # The ID of the computation.
-                "outputs": [ # The outputs from the computation.
-                  { # Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.
-                    "streamingStageLocation": { # Identifies the location of a streaming computation stage, for stage-to-stage communication. # The stream is part of another computation within the current streaming Dataflow job.
-                      "streamId": "A String", # Identifies the particular stream within the streaming Dataflow job.
-                    },
-                    "pubsubLocation": { # Identifies a pubsub location to use for transferring data into or out of a streaming Dataflow job. # The stream is a pubsub stream.
-                      "idLabel": "A String", # If set, contains a pubsub label from which to extract record ids. If left empty, record deduplication will be strictly best effort.
-                      "timestampLabel": "A String", # If set, contains a pubsub label from which to extract record timestamps. If left empty, record timestamps will be generated upon arrival.
-                      "dropLateData": True or False, # Indicates whether the pipeline allows late-arriving data.
-                      "topic": "A String", # A pubsub topic, in the form of "pubsub.googleapis.com/topics/
-                          # /"
-                      "trackingSubscription": "A String", # If set, specifies the pubsub subscription that will be used for tracking custom time timestamps for watermark estimation.
-                      "withAttributes": True or False, # If true, then the client has requested to get pubsub attributes.
-                      "subscription": "A String", # A pubsub subscription, in the form of "pubsub.googleapis.com/subscriptions/
-                          # /"
-                    },
-                    "customSourceLocation": { # Identifies the location of a custom souce. # The stream is a custom source.
-                      "stateful": True or False, # Whether this source is stateful.
-                    },
-                    "sideInputLocation": { # Identifies the location of a streaming side input. # The stream is a streaming side input.
-                      "stateFamily": "A String", # Identifies the state family where this side input is stored.
-                      "tag": "A String", # Identifies the particular side input within the streaming Dataflow job.
-                    },
-                  },
-                ],
+                "systemStageName": "A String", # The system stage name.
                 "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
@@ -466,22 +780,15 @@
                 ],
               },
             ],
-            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
-              { # Data disk assignment for a given VM instance.
-                "vmInstance": "A String", # VM instance name the data disks mounted to, for example "myproject-1014-104817-4c2-harness-0".
-                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in this list defines which persistent directory the disk is mounted to, for example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" }, { "myproject-1014-104817-4c2-harness-0-disk-1" }.
-                  "A String",
-                ],
-              },
-            ],
-            "persistentStateVersion": 42, # Version number for persistent state.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
             "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
           },
-          "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from other streaming computation workers.
+          "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from
+              # other streaming computation workers.
         },
+        "id": "A String", # Identifies this WorkItem.
         "streamingConfigTask": { # A task that carries configuration information for streaming computations. # Additional information for StreamingConfigTask WorkItems.
           "userStepToStateFamilyNameMap": { # Map from user step names to state families.
             "a_key": "A String",
@@ -494,12 +801,19 @@
               "instructions": [ # Instructions that comprise the computation.
                 { # Describes a particular operation comprising a MapTask.
                   "name": "A String", # User-provided name of this operation.
-                  "read": { # An instruction that reads records. Takes no inputs, produces one output. # Additional information for Read instructions.
+                  "read": { # An instruction that reads records. # Additional information for Read instructions.
+                      # Takes no inputs, produces one output.
                     "source": { # A source that records can be read and decoded from. # The source to read from.
                       "codec": { # The codec to use to decode data read from the source.
                         "a_key": "", # Properties of the object.
                       },
-                      "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                      "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                          # as differences against another source, in order to save backend-side
+                          # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                          # To support this use case, the full set of parameters of the source
+                          # is logically obtained by taking the latest explicitly specified value
+                          # of each parameter in the order:
+                          # base_specs (later items win), spec (overrides anything in base_specs).
                         {
                           "a_key": "", # Properties of the object.
                         },
@@ -507,35 +821,77 @@
                       "spec": { # The source to read from, plus its parameters.
                         "a_key": "", # Properties of the object.
                       },
-                      "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                      "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                        "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                        "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                        "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                      "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                          # doesn't need splitting, and using SourceSplitRequest on it would
+                          # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                          #
+                          # E.g. a file splitter may set this to true when splitting a single file
+                          # into a set of byte ranges of appropriate size, and set this
+                          # to false when splitting a filepattern into individual files.
+                          # However, for efficiency, a file splitter may decide to produce
+                          # file subranges directly from the filepattern to avoid a splitting
+                          # round-trip.
+                          #
+                          # See SourceSplitRequest for an overview of the splitting process.
+                          #
+                          # This field is meaningful only in the Source objects populated
+                          # by the user (e.g. when filling in a DerivedSource).
+                          # Source objects supplied by the framework to the user don't have
+                          # this field populated.
+                      "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                          # avoiding a SourceGetMetadataOperation roundtrip
+                          # (see SourceOperationRequest).
+                          #
+                          # This field is meaningful only in the Source objects populated
+                          # by the user (e.g. when filling in a DerivedSource).
+                          # Source objects supplied by the framework to the user don't have
+                          # this field populated.
+                          # and tuning the pipeline, etc.
+                        "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                            # (this is a streaming source).
+                        "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                            # read from this source.  This estimate is in terms of external storage
+                            # size, before any decompression or other processing done by the reader.
+                        "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                            # the (encoded) keys in lexicographically sorted order.
                       },
                     },
                   },
                   "outputs": [ # Describes the outputs of the instruction.
                     { # An output of an instruction.
                       "name": "A String", # The user-provided name of this output.
-                      "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the key size.
+                      "onlyCountKeyBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                          # should only report the key size.
                       "codec": { # The codec to use to encode data being written via this output.
                         "a_key": "", # Properties of the object.
                       },
-                      "systemName": "A String", # System-defined name of this output. Unique across the workflow.
-                      "originalName": "A String", # System-defined name for this output in the original workflow graph. Outputs that do not contribute to an original instruction do not set this.
-                      "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions should only report the value size.
+                      "systemName": "A String", # System-defined name of this output.
+                          # Unique across the workflow.
+                      "originalName": "A String", # System-defined name for this output in the original workflow graph.
+                          # Outputs that do not contribute to an original instruction do not set this.
+                      "onlyCountValueBytes": True or False, # For system-generated byte and mean byte metrics, certain instructions
+                          # should only report the value size.
                     },
                   ],
-                  "partialGroupByKey": { # An instruction that does a partial group-by-key. One input and one output. # Additional information for PartialGroupByKey instructions.
+                  "partialGroupByKey": { # An instruction that does a partial group-by-key. # Additional information for PartialGroupByKey instructions.
+                      # One input and one output.
                     "sideInputs": [ # Zero or more side inputs.
                       { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                        "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                        "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                            # If more than one source, then the elements are taken from the
+                            # sources, in the specified order if order matters.
+                            # At least one source is required.
                           { # A source that records can be read and decoded from.
                             "codec": { # The codec to use to decode data read from the source.
                               "a_key": "", # Properties of the object.
                             },
-                            "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                            "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                                # as differences against another source, in order to save backend-side
+                                # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                                # To support this use case, the full set of parameters of the source
+                                # is logically obtained by taking the latest explicitly specified value
+                                # of each parameter in the order:
+                                # base_specs (later items win), spec (overrides anything in base_specs).
                               {
                                 "a_key": "", # Properties of the object.
                               },
@@ -543,37 +899,77 @@
                             "spec": { # The source to read from, plus its parameters.
                               "a_key": "", # Properties of the object.
                             },
-                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                                # doesn't need splitting, and using SourceSplitRequest on it would
+                                # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                                #
+                                # E.g. a file splitter may set this to true when splitting a single file
+                                # into a set of byte ranges of appropriate size, and set this
+                                # to false when splitting a filepattern into individual files.
+                                # However, for efficiency, a file splitter may decide to produce
+                                # file subranges directly from the filepattern to avoid a splitting
+                                # round-trip.
+                                #
+                                # See SourceSplitRequest for an overview of the splitting process.
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                            "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                                # avoiding a SourceGetMetadataOperation roundtrip
+                                # (see SourceOperationRequest).
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                                # and tuning the pipeline, etc.
+                              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                                  # (this is a streaming source).
+                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                                  # read from this source.  This estimate is in terms of external storage
+                                  # size, before any decompression or other processing done by the reader.
+                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                                  # the (encoded) keys in lexicographically sorted order.
                             },
                           },
                         ],
                         "kind": { # How to interpret the source element(s) as a side input value.
                           "a_key": "", # Properties of the object.
                         },
-                        "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                        "tag": "A String", # The id of the tag the user code will access this side input by;
+                            # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the intermediate store between the GBK and the CombineValues.
-                    "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the CombineValues instruction lifted into this instruction.
+                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                        # intermediate store between the GBK and the CombineValues.
+                    "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
+                        # CombineValues instruction lifted into this instruction.
                     "valueCombiningFn": { # The value combining function to invoke.
                       "a_key": "", # Properties of the object.
                     },
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # Describes the input to the partial group-by-key instruction.
+                    "input": { # An input of an instruction, as a reference to an output of a # Describes the input to the partial group-by-key instruction.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
                     "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
                       "a_key": "", # Properties of the object.
                     },
                   },
-                  "write": { # An instruction that writes records. Takes one input, produces no outputs. # Additional information for Write instructions.
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                  "write": { # An instruction that writes records. # Additional information for Write instructions.
+                      # Takes one input, produces no outputs.
+                    "input": { # An input of an instruction, as a reference to an output of a # The input.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
                     "sink": { # A sink that records can be encoded and written to. # The sink to write to.
                       "codec": { # The codec to use to encode data written to the sink.
@@ -584,25 +980,42 @@
                       },
                     },
                   },
-                  "systemName": "A String", # System-defined name of this operation. Unique across the workflow.
+                  "systemName": "A String", # System-defined name of this operation.
+                      # Unique across the workflow.
                   "flatten": { # An instruction that copies its inputs (zero or more) to its (single) output. # Additional information for Flatten instructions.
                     "inputs": [ # Describes the inputs to the flatten instruction.
-                      { # An input of an instruction, as a reference to an output of a producer instruction.
+                      { # An input of an instruction, as a reference to an output of a
+                          # producer instruction.
                         "outputNum": 42, # The output index (origin zero) within the producer.
-                        "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                        "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                            # the output to be consumed by this input.  This index is relative
+                            # to the list of instructions in this input's instruction's
+                            # containing MapTask.
                       },
                     ],
                   },
                   "originalName": "A String", # System-defined name for the operation in the original workflow graph.
-                  "parDo": { # An instruction that does a ParDo operation. Takes one main input and zero or more side inputs, and produces zero or more outputs. Runs user code. # Additional information for ParDo instructions.
+                  "parDo": { # An instruction that does a ParDo operation. # Additional information for ParDo instructions.
+                      # Takes one main input and zero or more side inputs, and produces
+                      # zero or more outputs.
+                      # Runs user code.
                     "sideInputs": [ # Zero or more side inputs.
                       { # Information about a side input of a DoFn or an input of a SeqDoFn.
-                        "sources": [ # The source(s) to read element(s) from to get the value of this side input. If more than one source, then the elements are taken from the sources, in the specified order if order matters. At least one source is required.
+                        "sources": [ # The source(s) to read element(s) from to get the value of this side input.
+                            # If more than one source, then the elements are taken from the
+                            # sources, in the specified order if order matters.
+                            # At least one source is required.
                           { # A source that records can be read and decoded from.
                             "codec": { # The codec to use to decode data read from the source.
                               "a_key": "", # Properties of the object.
                             },
-                            "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                            "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                                # as differences against another source, in order to save backend-side
+                                # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                                # To support this use case, the full set of parameters of the source
+                                # is logically obtained by taking the latest explicitly specified value
+                                # of each parameter in the order:
+                                # base_specs (later items win), spec (overrides anything in base_specs).
                               {
                                 "a_key": "", # Properties of the object.
                               },
@@ -610,27 +1023,61 @@
                             "spec": { # The source to read from, plus its parameters.
                               "a_key": "", # Properties of the object.
                             },
-                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                            "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                                # doesn't need splitting, and using SourceSplitRequest on it would
+                                # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                                #
+                                # E.g. a file splitter may set this to true when splitting a single file
+                                # into a set of byte ranges of appropriate size, and set this
+                                # to false when splitting a filepattern into individual files.
+                                # However, for efficiency, a file splitter may decide to produce
+                                # file subranges directly from the filepattern to avoid a splitting
+                                # round-trip.
+                                #
+                                # See SourceSplitRequest for an overview of the splitting process.
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                            "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                                # avoiding a SourceGetMetadataOperation roundtrip
+                                # (see SourceOperationRequest).
+                                #
+                                # This field is meaningful only in the Source objects populated
+                                # by the user (e.g. when filling in a DerivedSource).
+                                # Source objects supplied by the framework to the user don't have
+                                # this field populated.
+                                # and tuning the pipeline, etc.
+                              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                                  # (this is a streaming source).
+                              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                                  # read from this source.  This estimate is in terms of external storage
+                                  # size, before any decompression or other processing done by the reader.
+                              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                                  # the (encoded) keys in lexicographically sorted order.
                             },
                           },
                         ],
                         "kind": { # How to interpret the source element(s) as a side input value.
                           "a_key": "", # Properties of the object.
                         },
-                        "tag": "A String", # The id of the tag the user code will access this side input by; this should correspond to the tag of some MultiOutputInfo.
+                        "tag": "A String", # The id of the tag the user code will access this side input by;
+                            # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "input": { # An input of an instruction, as a reference to an output of a producer instruction. # The input.
+                    "input": { # An input of an instruction, as a reference to an output of a # The input.
+                        # producer instruction.
                       "outputNum": 42, # The output index (origin zero) within the producer.
-                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces the output to be consumed by this input. This index is relative to the list of instructions in this input's instruction's containing MapTask.
+                      "producerInstructionIndex": 42, # The index (origin zero) of the parallel instruction that produces
+                          # the output to be consumed by this input.  This index is relative
+                          # to the list of instructions in this input's instruction's
+                          # containing MapTask.
                     },
-                    "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a MultiDoFn.
+                    "multiOutputInfos": [ # Information about each of the outputs, if user_fn is a  MultiDoFn.
                       { # Information about an output of a multi-output DoFn.
-                        "tag": "A String", # The id of the tag the user code will emit to this output by; this should correspond to the tag of some SideInputInfo.
+                        "tag": "A String", # The id of the tag the user code will emit to this output by; this
+                            # should correspond to the tag of some SideInputInfo.
                       },
                     ],
                     "numOutputs": 42, # The number of outputs.
@@ -643,17 +1090,42 @@
             },
           ],
         },
-        "packages": [ # Any required packages that need to be fetched in order to execute this WorkItem.
-          { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
-            "name": "A String", # The name of the package.
-            "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
-          },
-        ],
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
           "command": "A String", # The shell command to run.
           "exitCode": 42, # Exit code for the task.
         },
-        "id": "A String", # Identifies this WorkItem.
+        "streamingComputationTask": { # A task which describes what action should be performed for the specified # Additional information for StreamingComputationTask WorkItems.
+            # streaming computation ranges.
+          "taskType": "A String", # A type of streaming computation task.
+          "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
+            { # Describes full or partial data disk assignment information of the computation
+                # ranges.
+              "rangeAssignments": [ # Data disk assignments for ranges from this computation.
+                { # Data disk assignment information for a specific key-range of a sharded
+                    # computation.
+                    # Currently we only support UTF-8 character splits to simplify encoding into
+                    # JSON.
+                  "start": "A String", # The start (inclusive) of the key range.
+                  "end": "A String", # The end (exclusive) of the key range.
+                  "dataDisk": "A String", # The name of the data disk where data for this range is stored.
+                      # This name is local to the Google Cloud Platform project and uniquely
+                      # identifies the disk within that project, for example
+                      # "myproject-1014-104817-4c2-harness-0-disk-1".
+                },
+              ],
+              "computationId": "A String", # The ID of the computation.
+            },
+          ],
+          "dataDisks": [ # Describes the set of data disks this task should apply to.
+            { # Describes mounted data disk.
+              "dataDisk": "A String", # The name of the data disk.
+                  # This name is local to the Google Cloud Platform project and uniquely
+                  # identifies the disk within that project, for example
+                  # "myproject-1014-104817-4c2-harness-0-disk-1".
+            },
+          ],
+        },
       },
     ],
   }</pre>
@@ -671,40 +1143,135 @@
     The object takes the form of:
 
 { # Request to report the status of WorkItems.
-    "workerId": "A String", # The ID of the worker reporting the WorkItem status. If this does not match the ID of the worker which the Dataflow service believes currently has the lease on the WorkItem, the report will be dropped (with an error response).
+    "workerId": "A String", # The ID of the worker reporting the WorkItem status.  If this
+        # does not match the ID of the worker which the Dataflow service
+        # believes currently has the lease on the WorkItem, the report
+        # will be dropped (with an error response).
     "currentWorkerTime": "A String", # The current timestamp at the worker.
-    "workItemStatuses": [ # The order is unimportant, except that the order of the WorkItemServiceState messages in the ReportWorkItemStatusResponse corresponds to the order of WorkItemStatus messages here.
+    "workItemStatuses": [ # The order is unimportant, except that the order of the
+        # WorkItemServiceState messages in the ReportWorkItemStatusResponse
+        # corresponds to the order of WorkItemStatus messages here.
       { # Conveys a worker's progress through the work described by a WorkItem.
-        "reportIndex": "A String", # The report index. When a WorkItem is leased, the lease will contain an initial report index. When a WorkItem's status is reported to the system, the report should be sent with that report index, and the response will contain the index the worker should use for the next report. Reports received with unexpected index values will be rejected by the service. In order to preserve idempotency, the worker should not alter the contents of a report, even if the worker must submit the same report multiple times before getting back a response. The worker should not submit a subsequent report until the response for the previous report had been received from the service.
-        "errors": [ # Specifies errors which occurred during processing. If errors are provided, and completed = true, then the WorkItem is considered to have failed.
-          { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.
-            "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+        "reportIndex": "A String", # The report index.  When a WorkItem is leased, the lease will
+            # contain an initial report index.  When a WorkItem's status is
+            # reported to the system, the report should be sent with
+            # that report index, and the response will contain the index the
+            # worker should use for the next report.  Reports received with
+            # unexpected index values will be rejected by the service.
+            #
+            # In order to preserve idempotency, the worker should not alter the
+            # contents of a report, even if the worker must submit the same
+            # report multiple times before getting back a response.  The worker
+            # should not submit a subsequent report until the response for the
+            # previous report had been received from the service.
+        "errors": [ # Specifies errors which occurred during processing.  If errors are
+            # provided, and completed = true, then the WorkItem is considered
+            # to have failed.
+          { # The `Status` type defines a logical error model that is suitable for different
+              # programming environments, including REST APIs and RPC APIs. It is used by
+              # [gRPC](https://github.com/grpc). The error model is designed to be:
+              #
+              # - Simple to use and understand for most users
+              # - Flexible enough to meet unexpected needs
+              #
+              # # Overview
+              #
+              # The `Status` message contains three pieces of data: error code, error message,
+              # and error details. The error code should be an enum value of
+              # google.rpc.Code, but it may accept additional error codes if needed.  The
+              # error message should be a developer-facing English message that helps
+              # developers *understand* and *resolve* the error. If a localized user-facing
+              # error message is needed, put the localized message in the error details or
+              # localize it in the client. The optional error details may contain arbitrary
+              # information about the error. There is a predefined set of error detail types
+              # in the package `google.rpc` which can be used for common error conditions.
+              #
+              # # Language mapping
+              #
+              # The `Status` message is the logical representation of the error model, but it
+              # is not necessarily the actual wire format. When the `Status` message is
+              # exposed in different client libraries and different wire protocols, it can be
+              # mapped differently. For example, it will likely be mapped to some exceptions
+              # in Java, but more likely mapped to some error codes in C.
+              #
+              # # Other uses
+              #
+              # The error model and the `Status` message can be used in a variety of
+              # environments, either with or without APIs, to provide a
+              # consistent developer experience across different environments.
+              #
+              # Example uses of this error model include:
+              #
+              # - Partial errors. If a service needs to return partial errors to the client,
+              #     it may embed the `Status` in the normal response to indicate the partial
+              #     errors.
+              #
+              # - Workflow errors. A typical workflow has multiple steps. Each step may
+              #     have a `Status` message for error reporting purpose.
+              #
+              # - Batch operations. If a client uses batch request and batch response, the
+              #     `Status` message should be used directly inside batch response, one for
+              #     each error sub-response.
+              #
+              # - Asynchronous operations. If an API call embeds asynchronous operation
+              #     results in its response, the status of those operations should be
+              #     represented directly using the `Status` message.
+              #
+              # - Logging. If some API errors are stored in logs, the message `Status` could
+              #     be used directly after any stripping needed for security/privacy reasons.
+            "message": "A String", # A developer-facing error message, which should be in English. Any
+                # user-facing error message should be localized and sent in the
+                # google.rpc.Status.details field, or localized by the client.
             "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-            "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+            "details": [ # A list of messages that carry the error details.  There will be a
+                # common set of message types for APIs to use.
               {
                 "a_key": "", # Properties of the object. Contains field @type with type URL.
               },
             ],
           },
         ],
-        "sourceOperationResponse": { # The result of a SourceOperationRequest, specified in ReportWorkItemStatusRequest.source_operation when the work item is completed. # If the work item represented a SourceOperationRequest, and the work is completed, contains the result of the operation.
+        "sourceOperationResponse": { # The result of a SourceOperationRequest, specified in # If the work item represented a SourceOperationRequest, and the work
+            # is completed, contains the result of the operation.
+            # ReportWorkItemStatusRequest.source_operation when the work item
+            # is completed.
           "getMetadata": { # The result of a SourceGetMetadataOperation. # A response to a request to get metadata about a source.
-            "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # The computed metadata.
-              "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+            "metadata": { # Metadata about a Source useful for automatically optimizing # The computed metadata.
+                # and tuning the pipeline, etc.
+              "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                  # (this is a streaming source).
+              "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                  # read from this source.  This estimate is in terms of external storage
+                  # size, before any decompression or other processing done by the reader.
+              "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                  # the (encoded) keys in lexicographically sorted order.
             },
           },
           "split": { # The response to a SourceSplitRequest. # A response to a request to split a source.
-            "outcome": "A String", # Indicates whether splitting happened and produced a list of bundles. If this is USE_CURRENT_SOURCE_AS_IS, the current source should be processed "as is" without splitting. "bundles" is ignored in this case. If this is SPLITTING_HAPPENED, then "bundles" contains a list of bundles into which the source was split.
-            "bundles": [ # If outcome is SPLITTING_HAPPENED, then this is a list of bundles into which the source was split. Otherwise this field is ignored. This list can be empty, which means the source represents an empty input.
-              { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split.
+            "outcome": "A String", # Indicates whether splitting happened and produced a list of bundles.
+                # If this is USE_CURRENT_SOURCE_AS_IS, the current source should
+                # be processed "as is" without splitting. "bundles" is ignored in this case.
+                # If this is SPLITTING_HAPPENED, then "bundles" contains a list of
+                # bundles into which the source was split.
+            "bundles": [ # If outcome is SPLITTING_HAPPENED, then this is a list of bundles
+                # into which the source was split. Otherwise this field is ignored.
+                # This list can be empty, which means the source represents an empty input.
+              { # Specification of one of the bundles produced as a result of splitting
+                  # a Source (e.g. when executing a SourceSplitRequest, or when
+                  # splitting an active task using WorkItemStatus.dynamic_source_split),
+                  # relative to the source being split.
                 "derivationMode": "A String", # What source to base the produced source on (if any).
                 "source": { # A source that records can be read and decoded from. # Specification of the source.
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -712,11 +1279,39 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
@@ -728,7 +1323,13 @@
                   "codec": { # The codec to use to decode data read from the source.
                     "a_key": "", # Properties of the object.
                   },
-                  "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+                  "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                      # as differences against another source, in order to save backend-side
+                      # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                      # To support this use case, the full set of parameters of the source
+                      # is logically obtained by taking the latest explicitly specified value
+                      # of each parameter in the order:
+                      # base_specs (later items win), spec (overrides anything in base_specs).
                     {
                       "a_key": "", # Properties of the object.
                     },
@@ -736,36 +1337,108 @@
                   "spec": { # The source to read from, plus its parameters.
                     "a_key": "", # Properties of the object.
                   },
-                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                  "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                    "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+                  "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                      # doesn't need splitting, and using SourceSplitRequest on it would
+                      # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                      #
+                      # E.g. a file splitter may set this to true when splitting a single file
+                      # into a set of byte ranges of appropriate size, and set this
+                      # to false when splitting a filepattern into individual files.
+                      # However, for efficiency, a file splitter may decide to produce
+                      # file subranges directly from the filepattern to avoid a splitting
+                      # round-trip.
+                      #
+                      # See SourceSplitRequest for an overview of the splitting process.
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                  "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                      # avoiding a SourceGetMetadataOperation roundtrip
+                      # (see SourceOperationRequest).
+                      #
+                      # This field is meaningful only in the Source objects populated
+                      # by the user (e.g. when filling in a DerivedSource).
+                      # Source objects supplied by the framework to the user don't have
+                      # this field populated.
+                      # and tuning the pipeline, etc.
+                    "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                        # (this is a streaming source).
+                    "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                        # read from this source.  This estimate is in terms of external storage
+                        # size, before any decompression or other processing done by the reader.
+                    "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                        # the (encoded) keys in lexicographically sorted order.
                   },
                 },
               },
             ],
           },
         },
-        "stopPosition": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A worker may split an active map task in two parts, "primary" and "residual", continuing to process the primary part and returning the residual part into the pool of available work. This event is called a "dynamic split" and is critical to the dynamic work rebalancing feature. The two obtained sub-tasks are called "parts" of the split. The parts, if concatenated, must represent the same input as would be read by the current task if the split did not happen. The exact way in which the original task is decomposed into the two parts is specified either as a position demarcating them (stop_position), or explicitly as two DerivedSources, if this task consumes a user-defined source type (dynamic_source_split). The "current" task is adjusted as a result of the split: after a task with range [A, B) sends a stop_position update at C, its range is considered to be [A, C), e.g.: * Progress should be interpreted relative to the new range, e.g. "75% completed" means "75% of [A, C) completed" * The worker should interpret proposed_stop_position relative to the new range, e.g. "split at 68%" should be interpreted as "split at 68% of [A, C)". * If the worker chooses to split again using stop_position, only stop_positions in [A, C) will be accepted. * Etc. dynamic_source_split has similar semantics: e.g., if a task with source S splits using dynamic_source_split into {P, R} (where P and R must be together equivalent to S), then subsequent progress and proposed_stop_position should be interpreted relative to P, and in a potential subsequent dynamic_source_split into {P', R'}, P' and R' must be together equivalent to P, etc.
-          "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "stopPosition": { # Position defines a position within a collection of data.  The value # A worker may split an active map task in two parts, "primary" and
+            # "residual", continuing to process the primary part and returning the
+            # residual part into the pool of available work.
+            # This event is called a "dynamic split" and is critical to the dynamic
+            # work rebalancing feature. The two obtained sub-tasks are called
+            # "parts" of the split.
+            # The parts, if concatenated, must represent the same input as would
+            # be read by the current task if the split did not happen.
+            # The exact way in which the original task is decomposed into the two
+            # parts is specified either as a position demarcating them
+            # (stop_position), or explicitly as two DerivedSources, if this
+            # task consumes a user-defined source type (dynamic_source_split).
+            #
+            # The "current" task is adjusted as a result of the split: after a task
+            # with range [A, B) sends a stop_position update at C, its range is
+            # considered to be [A, C), e.g.:
+            # * Progress should be interpreted relative to the new range, e.g.
+            #   "75% completed" means "75% of [A, C) completed"
+            # * The worker should interpret proposed_stop_position relative to the
+            #   new range, e.g. "split at 68%" should be interpreted as
+            #   "split at 68% of [A, C)".
+            # * If the worker chooses to split again using stop_position, only
+            #   stop_positions in [A, C) will be accepted.
+            # * Etc.
+            # dynamic_source_split has similar semantics: e.g., if a task with
+            # source S splits using dynamic_source_split into {P, R}
+            # (where P and R must be together equivalent to S), then subsequent
+            # progress and proposed_stop_position should be interpreted relative
+            # to P, and in a potential subsequent dynamic_source_split into {P', R'},
+            # P' and R' must be together equivalent to P, etc.
+            # can be either the end position, a key (used with ordered
+            # collections), a byte offset, or a record index.
+          "end": True or False, # Position is past all other positions. Also useful for the end
+              # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
           "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
-          "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+          "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+              # position. A ConcatPosition can be used by a reader of a source that
+              # encapsulates a set of other sources.
             "index": 42, # Index of the inner source.
             "position": # Object with schema name: Position # Position within the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
         "sourceFork": { # DEPRECATED in favor of DynamicSourceSplit. # DEPRECATED in favor of dynamic_source_split.
-          "residualSource": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # DEPRECATED
+          "residualSource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -773,21 +1446,58 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "primarySource": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # DEPRECATED
+          "primarySource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -795,11 +1505,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -809,7 +1547,13 @@
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -817,11 +1561,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -831,7 +1603,13 @@
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -839,11 +1617,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -851,14 +1657,26 @@
         "requestedLeaseDuration": "A String", # Amount of time the worker requests for its lease.
         "completed": True or False, # True if the WorkItem was completed (successfully or unsuccessfully).
         "workItemId": "A String", # Identifies the WorkItem.
-        "dynamicSourceSplit": { # When a task splits using WorkItemStatus.dynamic_source_split, this message describes the two parts of the split relative to the description of the current task's input. # See documentation of stop_position.
-          "primary": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # Primary part (continued to be processed by worker). Specified relative to the previously-current source. Becomes current.
+        "dynamicSourceSplit": { # When a task splits using WorkItemStatus.dynamic_source_split, this # See documentation of stop_position.
+            # message describes the two parts of the split relative to the
+            # description of the current task's input.
+          "residual": { # Specification of one of the bundles produced as a result of splitting # Residual part (returned to the pool of work).
+              # Specified relative to the previously-current source.
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -866,21 +1684,60 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
-          "residual": { # Specification of one of the bundles produced as a result of splitting a Source (e.g. when executing a SourceSplitRequest, or when splitting an active task using WorkItemStatus.dynamic_source_split), relative to the source being split. # Residual part (returned to the pool of work). Specified relative to the previously-current source.
+          "primary": { # Specification of one of the bundles produced as a result of splitting # Primary part (continued to be processed by worker).
+              # Specified relative to the previously-current source.
+              # Becomes current.
+              # a Source (e.g. when executing a SourceSplitRequest, or when
+              # splitting an active task using WorkItemStatus.dynamic_source_split),
+              # relative to the source being split.
             "derivationMode": "A String", # What source to base the produced source on (if any).
             "source": { # A source that records can be read and decoded from. # Specification of the source.
               "codec": { # The codec to use to decode data read from the source.
                 "a_key": "", # Properties of the object.
               },
-              "baseSpecs": [ # While splitting, sources may specify the produced bundles as differences against another source, in order to save backend-side memory and allow bigger jobs. For details, see SourceSplitRequest. To support this use case, the full set of parameters of the source is logically obtained by taking the latest explicitly specified value of each parameter in the order: base_specs (later items win), spec (overrides anything in base_specs).
+              "baseSpecs": [ # While splitting, sources may specify the produced bundles
+                  # as differences against another source, in order to save backend-side
+                  # memory and allow bigger jobs. For details, see SourceSplitRequest.
+                  # To support this use case, the full set of parameters of the source
+                  # is logically obtained by taking the latest explicitly specified value
+                  # of each parameter in the order:
+                  # base_specs (later items win), spec (overrides anything in base_specs).
                 {
                   "a_key": "", # Properties of the object.
                 },
@@ -888,11 +1745,39 @@
               "spec": { # The source to read from, plus its parameters.
                 "a_key": "", # Properties of the object.
               },
-              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source doesn't need splitting, and using SourceSplitRequest on it would yield SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true when splitting a single file into a set of byte ranges of appropriate size, and set this to false when splitting a filepattern into individual files. However, for efficiency, a file splitter may decide to produce file subranges directly from the filepattern to avoid a splitting round-trip. See SourceSplitRequest for an overview of the splitting process. This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-              "metadata": { # Metadata about a Source useful for automatically optimizing and tuning the pipeline, etc. # Optionally, metadata for this source can be supplied right away, avoiding a SourceGetMetadataOperation roundtrip (see SourceOperationRequest). This field is meaningful only in the Source objects populated by the user (e.g. when filling in a DerivedSource). Source objects supplied by the framework to the user don't have this field populated.
-                "infinite": True or False, # Specifies that the size of this source is known to be infinite (this is a streaming source).
-                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be read from this source. This estimate is in terms of external storage size, before any decompression or other processing done by the reader.
-                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with the (encoded) keys in lexicographically sorted order.
+              "doesNotNeedSplitting": True or False, # Setting this value to true hints to the framework that the source
+                  # doesn't need splitting, and using SourceSplitRequest on it would
+                  # yield SOURCE_SPLIT_OUTCOME_USE_CURRENT.
+                  #
+                  # E.g. a file splitter may set this to true when splitting a single file
+                  # into a set of byte ranges of appropriate size, and set this
+                  # to false when splitting a filepattern into individual files.
+                  # However, for efficiency, a file splitter may decide to produce
+                  # file subranges directly from the filepattern to avoid a splitting
+                  # round-trip.
+                  #
+                  # See SourceSplitRequest for an overview of the splitting process.
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+              "metadata": { # Metadata about a Source useful for automatically optimizing # Optionally, metadata for this source can be supplied right away,
+                  # avoiding a SourceGetMetadataOperation roundtrip
+                  # (see SourceOperationRequest).
+                  #
+                  # This field is meaningful only in the Source objects populated
+                  # by the user (e.g. when filling in a DerivedSource).
+                  # Source objects supplied by the framework to the user don't have
+                  # this field populated.
+                  # and tuning the pipeline, etc.
+                "infinite": True or False, # Specifies that the size of this source is known to be infinite
+                    # (this is a streaming source).
+                "estimatedSizeBytes": "A String", # An estimate of the total size (in bytes) of the data that would be
+                    # read from this source.  This estimate is in terms of external storage
+                    # size, before any decompression or other processing done by the reader.
+                "producesSortedKeys": True or False, # Whether this source is known to produce key/value pairs with
+                    # the (encoded) keys in lexicographically sorted order.
               },
             },
           },
@@ -906,42 +1791,61 @@
             },
             "floatingPoint": 3.14, # Floating point value for Sum, Max, Min.
             "integerMean": { # A representation of an integer mean metric contribution. # Integer mean aggregation value for Mean.
-              "count": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The number of values being aggregated.
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
-              "sum": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The sum of all values being aggregated.
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # The sum of all values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
             "integerList": { # A metric value representing a list of integers. # List of integers, for Set.
               "elements": [ # Elements of the list.
-                { # A representation of an int64, n, that is immune to precision loss when encoded in JSON.
+                { # A representation of an int64, n, that is immune to precision loss when
+                    # encoded in JSON.
                   "lowBits": 42, # The low order bits: n & 0xffffffff.
                   "highBits": 42, # The high order bits, including the sign: n >> 32.
                 },
               ],
             },
-            "cumulative": True or False, # True if this counter is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this counter is reported as a delta.
+            "cumulative": True or False, # True if this counter is reported as the total cumulative aggregate
+                # value accumulated since the worker started working on this WorkItem.
+                # By default this is false, indicating that this counter is reported
+                # as a delta.
+            "shortId": "A String", # The service-generated short identifier for this counter.
+                # The short_id -> (name, metadata) mapping is constant for the lifetime of
+                # a job.
+            "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
+              "elements": [ # Elements of the list.
+                "A String",
+              ],
+            },
             "floatingPointMean": { # A representation of a floating point mean metric contribution. # Floating point mean aggregation value for Mean.
-              "count": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # The number of values being aggregated.
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
+                  # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
               "sum": 3.14, # The sum of all values being aggregated.
             },
-            "shortId": "A String", # The service-generated short identifier for this counter. The short_id -> (name, metadata) mapping is constant for the lifetime of a job.
             "boolean": True or False, # Boolean value for And, Or.
-            "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given counter. # Counter structured name and metadata.
-              "name": { # Identifies a counter within a per-job namespace. Counters whose structured names are the same get merged into a single value for the job. # Structured name of the counter.
+            "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given # Counter structured name and metadata.
+                # counter.
+              "name": { # Identifies a counter within a per-job namespace. Counters whose structured # Structured name of the counter.
+                  # names are the same get merged into a single value for the job.
+                "origin": "A String", # One of the standard Origins defined above.
                 "executionStepName": "A String", # Name of the stage. An execution step contains multiple component steps.
-                "name": "A String", # Counter name. Not necessarily globally-unique, but unique within the context of the other fields. Required.
+                "name": "A String", # Counter name. Not necessarily globally-unique, but unique within the
+                    # context of the other fields.
+                    # Required.
                 "workerId": "A String", # ID of a particular worker.
-                "originalStepName": "A String", # System generated name of the original step in the user's graph, before optimization.
-                "standardOrigin": "A String", # One of the standard Origins defined above.
+                "originalStepName": "A String", # System generated name of the original step in the user's graph, before
+                    # optimization.
+                "originNamespace": "A String", # A string containing a more specific namespace of the counter's origin.
                 "portion": "A String", # Portion of this counter, either key or value.
-                "otherOrigin": "A String", # A string containing the origin of the counter.
                 "componentStepName": "A String", # Name of the optimized step being executed by the workers.
               },
               "metadata": { # CounterMetadata includes all static non-name non-value counter attributes. # Metadata associated with a counter
@@ -951,8 +1855,8 @@
                 "otherUnits": "A String", # A string referring to the unit type.
               },
             },
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
-            "integer": { # A representation of an int64, n, that is immune to precision loss when encoded in JSON. # Integer value for Sum, Max, Min.
+            "integer": { # A representation of an int64, n, that is immune to precision loss when # Integer value for Sum, Max, Min.
+                # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
               "highBits": 42, # The high order bits, including the sign: n >> 32.
             },
@@ -960,67 +1864,168 @@
               "kind": "A String", # Counter aggregation kind.
               "name": "A String", # Name of the counter.
             },
-            "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
-              "elements": [ # Elements of the list.
-                "A String",
-              ],
+            "distribution": { # A metric value representing a distribution. # Distribution data
+              "count": { # A representation of an int64, n, that is immune to precision loss when # The count of the number of elements present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
+                  # problem we can detect it and use an additional int64 or a double.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "min": { # A representation of an int64, n, that is immune to precision loss when # The minimum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
             },
+            "internal": "", # Value for internally-defined counters used by the Dataflow service.
           },
         ],
         "progress": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of reported_progress.
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "position": { # Position defines a position within a collection of data.  The value # Obsolete.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
         },
         "metricUpdates": [ # DEPRECATED in favor of counter_updates.
           { # Describes the state of a metric.
-            "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the count of the aggregated values and is used in combination with mean_sum above to obtain the actual mean aggregate value. The only possible value type is Long.
-            "kind": "A String", # Metric aggregation kind. The possible metric aggregation kinds are "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified aggregation kind is case-insensitive. If omitted, this is not an aggregated value but instead a single metric sample value.
-            "set": "", # Worker-computed aggregate value for the "Set" aggregation kind. The only possible value type is a list of Values whose type can be Long, Double, or String, according to the metric's type. All Values in the list must be of the same type.
-            "name": { # Identifies a metric, by describing the source which generated the metric. # Name of the metric.
-              "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics; will be "dataflow" for metrics defined by the Dataflow service or SDK.
+            "meanCount": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the count of the aggregated values and is used in combination
+                # with mean_sum above to obtain the actual mean aggregate value.
+                # The only possible value type is Long.
+            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+                # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
+                # The specified aggregation kind is case-insensitive.
+                #
+                # If omitted, this is not an aggregated value but instead
+                # a single metric sample value.
+            "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
+                # possible value type is a list of Values whose type can be Long, Double,
+                # or String, according to the metric's type.  All Values in the list must
+                # be of the same type.
+            "name": { # Identifies a metric, by describing the source which generated the # Name of the metric.
+                # metric.
+              "origin": "A String", # Origin (namespace) of metric name. May be blank for user-define metrics;
+                  # will be "dataflow" for metrics defined by the Dataflow service or SDK.
               "name": "A String", # Worker-defined metric name.
-              "context": { # Zero or more labeled fields which identify the part of the job this metric is associated with, such as the name of a step or collection. For example, built-in counters associated with steps will have context['step'] = . Counters associated with PCollections in the SDK will have context['pcollection'] =
-                  # .
+              "context": { # Zero or more labeled fields which identify the part of the job this
+                  # metric is associated with, such as the name of a step or collection.
+                  #
+                  # For example, built-in counters associated with steps will have
+                  # context['step'] = <step-name>. Counters associated with PCollections
+                  # in the SDK will have context['pcollection'] = <pcollection-name>.
                 "a_key": "A String",
               },
             },
-            "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate value accumulated since the worker started working on this WorkItem. By default this is false, indicating that this metric is reported as a delta that is not associated with any WorkItem.
-            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are reporting work progress; it will be filled in responses from the metrics API.
-            "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min", "And", and "Or". The possible value types are Long, Double, and Boolean.
-            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind. This holds the sum of the aggregated values and is used in combination with mean_count below to obtain the actual mean aggregate value. The only possible value types are Long and Double.
-            "internal": "", # Worker-computed aggregate value for internal use by the Dataflow service.
+            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the sum of the aggregated values and is used in combination
+                # with mean_count below to obtain the actual mean aggregate value.
+                # The only possible value types are Long and Double.
+            "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
+                # value accumulated since the worker started working on this WorkItem.
+                # By default this is false, indicating that this metric is reported
+                # as a delta that is not associated with any WorkItem.
+            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+                # reporting work progress; it will be filled in responses from the
+                # metrics API.
+            "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
+                # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+            "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
+                # service.
           },
         ],
         "reportedProgress": { # A progress measurement of a WorkItem by a worker. # The worker's progress through this WorkItem.
-          "fractionConsumed": 3.14, # Completion as fraction of the input consumed, from 0.0 (beginning, nothing consumed), to 1.0 (end of the input, entire input consumed).
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A Position within the work to represent a progress.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "fractionConsumed": 3.14, # Completion as fraction of the input consumed, from 0.0 (beginning, nothing
+              # consumed), to 1.0 (end of the input, entire input consumed).
+          "position": { # Position defines a position within a collection of data.  The value # A Position within the work to represent a progress.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
-          "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, reported by the worker. # Total amount of parallelism in the input of this task that remains, (i.e. can be delegated to this task and any new tasks via dynamic splitting). Always at least 1 for non-finished work items and 0 for finished. "Amount of parallelism" refers to how many non-empty parts of the input can be read in parallel. This does not necessarily equal number of records. An input that can be read in parallel down to the individual records is called "perfectly splittable". An example of non-perfectly parallelizable input is a block-compressed file format where a block of records has to be read as a whole, but different blocks can be read in parallel. Examples: * If we are processing record #30 (starting at 1) out of 50 in a perfectly splittable 50-record input, this value should be 21 (20 remaining + 1 current). * If we are reading through block 3 in a block-compressed file consisting of 5 blocks, this value should be 3 (since blocks 4 and 5 can be processed in parallel by new tasks via dynamic splitting and the current task remains processing block 3). * If we are reading through the last block in a block-compressed file, or reading or processing the last record in a perfectly splittable input, this value should be 1, because apart from the current task, no additional remainder can be split off.
-            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is ignored. Infinite parallelism means the service will assume that the work item can always be split into more non-empty work items by dynamic splitting. This is a work-around for lack of support for infinity by the current JSON-based Java RPC stack.
+          "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the input of this task that remains,
+              # (i.e. can be delegated to this task and any new tasks via dynamic
+              # splitting). Always at least 1 for non-finished work items and 0 for
+              # finished.
+              #
+              # "Amount of parallelism" refers to how many non-empty parts of the input
+              # can be read in parallel. This does not necessarily equal number
+              # of records. An input that can be read in parallel down to the
+              # individual records is called "perfectly splittable".
+              # An example of non-perfectly parallelizable input is a block-compressed
+              # file format where a block of records has to be read as a whole,
+              # but different blocks can be read in parallel.
+              #
+              # Examples:
+              # * If we are processing record #30 (starting at 1) out of 50 in a perfectly
+              #   splittable 50-record input, this value should be 21 (20 remaining + 1
+              #   current).
+              # * If we are reading through block 3 in a block-compressed file consisting
+              #   of 5 blocks, this value should be 3 (since blocks 4 and 5 can be
+              #   processed in parallel by new tasks via dynamic splitting and the current
+              #   task remains processing block 3).
+              # * If we are reading through the last block in a block-compressed file,
+              #   or reading or processing the last record in a perfectly splittable
+              #   input, this value should be 1, because apart from the current task, no
+              #   additional remainder can be split off.
+              # reported by the worker.
+            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is
+                # ignored.
+                # Infinite parallelism means the service will assume that the work item
+                # can always be split into more non-empty work items by dynamic splitting.
+                # This is a work-around for lack of support for infinity by the current
+                # JSON-based Java RPC stack.
             "value": 3.14, # Specifies the level of parallelism in case it is finite.
           },
-          "consumedParallelism": { # Represents the level of parallelism in a WorkItem's input, reported by the worker. # Total amount of parallelism in the portion of input of this task that has already been consumed and is no longer active. In the first two examples above (see remaining_parallelism), the value should be 29 or 2 respectively. The sum of remaining_parallelism and consumed_parallelism should equal the total amount of parallelism in this work item. If specified, must be finite.
-            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is ignored. Infinite parallelism means the service will assume that the work item can always be split into more non-empty work items by dynamic splitting. This is a work-around for lack of support for infinity by the current JSON-based Java RPC stack.
+          "consumedParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the portion of input of this task that has
+              # already been consumed and is no longer active. In the first two examples
+              # above (see remaining_parallelism), the value should be 29 or 2
+              # respectively.  The sum of remaining_parallelism and consumed_parallelism
+              # should equal the total amount of parallelism in this work item.  If
+              # specified, must be finite.
+              # reported by the worker.
+            "isInfinite": True or False, # Specifies whether the parallelism is infinite. If true, "value" is
+                # ignored.
+                # Infinite parallelism means the service will assume that the work item
+                # can always be split into more non-empty work items by dynamic splitting.
+                # This is a work-around for lack of support for infinity by the current
+                # JSON-based Java RPC stack.
             "value": 3.14, # Specifies the level of parallelism in case it is finite.
           },
         },
@@ -1030,61 +2035,98 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response from a request to report the status of WorkItems.
-    "workItemServiceStates": [ # A set of messages indicating the service-side state for each WorkItem whose status was reported, in the same order as the WorkItemStatus messages in the ReportWorkItemStatusRequest which resulting in this response.
-      { # The Dataflow service's idea of the current state of a WorkItem being processed by a worker.
+    "workItemServiceStates": [ # A set of messages indicating the service-side state for each
+        # WorkItem whose status was reported, in the same order as the
+        # WorkItemStatus messages in the ReportWorkItemStatusRequest which
+        # resulting in this response.
+      { # The Dataflow service's idea of the current state of a WorkItem
+          # being processed by a worker.
         "reportStatusInterval": "A String", # New recommended reporting interval.
-        "suggestedStopPosition": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete, always empty.
-          "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "suggestedStopPosition": { # Position defines a position within a collection of data.  The value # Obsolete, always empty.
+            # can be either the end position, a key (used with ordered
+            # collections), a byte offset, or a record index.
+          "end": True or False, # Position is past all other positions. Also useful for the end
+              # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
           "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
-          "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+          "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+              # position. A ConcatPosition can be used by a reader of a source that
+              # encapsulates a set of other sources.
             "index": 42, # Index of the inner source.
             "position": # Object with schema name: Position # Position within the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
-        "harnessData": { # Other data returned by the service, specific to the particular worker harness.
+        "leaseExpireTime": "A String", # Time at which the current lease will expire.
+        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
+            # Note: If the report call fails for whatever reason, the worker should
+            # reuse this index for subsequent report attempts.
+        "harnessData": { # Other data returned by the service, specific to the particular
+            # worker harness.
           "a_key": "", # Properties of the object.
         },
-        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker. Note: If the report call fails for whatever reason, the worker should reuse this index for subsequent report attempts.
-        "leaseExpireTime": "A String", # Time at which the current lease will expire.
-        "metricShortId": [ # The short ids that workers should use in subsequent metric updates. Workers should strive to use short ids whenever possible, but it is ok to request the short_id again if a worker lost track of it (e.g. if the worker is recovering from a crash). NOTE: it is possible that the response may have short ids for a subset of the metrics.
-          { # The metric short id is returned to the user alongside an offset into ReportWorkItemStatusRequest
+        "metricShortId": [ # The short ids that workers should use in subsequent metric updates.
+            # Workers should strive to use short ids whenever possible, but it is ok
+            # to request the short_id again if a worker lost track of it
+            # (e.g. if the worker is recovering from a crash).
+            # NOTE: it is possible that the response may have short ids for a subset
+            # of the metrics.
+          { # The metric short id is returned to the user alongside an offset into
+              # ReportWorkItemStatusRequest
             "shortId": "A String", # The service-generated short identifier for the metric.
-            "metricIndex": 42, # The index of the corresponding metric in the ReportWorkItemStatusRequest. Required.
+            "metricIndex": 42, # The index of the corresponding metric in
+                # the ReportWorkItemStatusRequest. Required.
           },
         ],
-        "splitRequest": { # A suggestion by the service to the worker to dynamically split the WorkItem. # The progress point in the WorkItem where the Dataflow service suggests that the worker truncate the task.
-          "fractionConsumed": 3.14, # A fraction at which to split the work item, from 0.0 (beginning of the input) to 1.0 (end of the input).
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # A Position at which to split the work item.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+        "splitRequest": { # A suggestion by the service to the worker to dynamically split the WorkItem. # The progress point in the WorkItem where the Dataflow service
+            # suggests that the worker truncate the task.
+          "fractionConsumed": 3.14, # A fraction at which to split the work item, from 0.0 (beginning of the
+              # input) to 1.0 (end of the input).
+          "position": { # Position defines a position within a collection of data.  The value # A Position at which to split the work item.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
-          "position": { # Position defines a position within a collection of data. The value can be either the end position, a key (used with ordered collections), a byte offset, or a record index. # Obsolete.
-            "end": True or False, # Position is past all other positions. Also useful for the end position of an unbounded range.
+          "position": { # Position defines a position within a collection of data.  The value # Obsolete.
+              # can be either the end position, a key (used with ordered
+              # collections), a byte offset, or a record index.
+            "end": True or False, # Position is past all other positions. Also useful for the end
+                # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
             "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
-            "concatPosition": { # A position that encapsulates an inner position and an index for the inner position. A ConcatPosition can be used by a reader of a source that encapsulates a set of other sources. # CloudPosition is a concat position.
+            "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
+                # position. A ConcatPosition can be used by a reader of a source that
+                # encapsulates a set of other sources.
               "index": 42, # Index of the inner source.
               "position": # Object with schema name: Position # Position within the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
diff --git a/docs/dyn/dataflow_v1b3.projects.templates.html b/docs/dyn/dataflow_v1b3.projects.templates.html
index 351451a..c325c0f 100644
--- a/docs/dyn/dataflow_v1b3.projects.templates.html
+++ b/docs/dyn/dataflow_v1b3.projects.templates.html
@@ -76,166 +76,524 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(projectId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a dataflow job from a template.</p>
+<p class="firstline">Creates a Cloud Dataflow job from a template.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, gcsPath=None, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Get the template associated with a template.</p>
+<p class="toc_element">
+  <code><a href="#launch">launch(projectId, body, dryRun=None, gcsPath=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Launch a template.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(projectId, body, x__xgafv=None)</code>
-  <pre>Creates a dataflow job from a template.
+  <pre>Creates a Cloud Dataflow job from a template.
 
 Args:
-  projectId: string, The project which owns the job. (required)
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request to create a Dataflow job.
-    "environment": { # Environment values to set at runtime. # Runtime environment for the job.
-      "maxWorkers": 42, # The maximum number of workers to start for the job.
-      "tempLocation": "A String", # The temp location to use for the job.
-      "serviceAccountEmail": "A String", # The service account to run the job as.
-      "zone": "A String", # The zone to start the workers in.
-      "bypassTempDirValidation": True or False, # Bypass the safety checks for the job's temp directory. Use with caution.
+{ # A request to create a Cloud Dataflow job from a template.
+    "environment": { # The environment values to set at runtime. # The runtime environment for the job.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "zone": "A String", # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+          # for launching worker instances to run your pipeline.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
     },
-    "gcsPath": "A String", # A path to the serialized JSON representation of the job.
-    "parameters": { # Dynamic parameterization of the job's runtime environment.
+    "gcsPath": "A String", # Required. A Cloud Storage path to the template from which to
+        # create the job.
+        # Must be a valid Cloud Storage URL, beginning with `gs://`.
+    "parameters": { # The runtime parameters to pass to the job.
       "a_key": "A String",
     },
-    "jobName": "A String", # The job name to use for the created job..
+    "jobName": "A String", # Required. The job name to use for the created job.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines a job to be run by the Dataflow service.
-      "clientRequestId": "A String", # Client's unique identifier of the job, re-used by SDK across retried attempts. If this field is set, the service will ensure its uniqueness. That is, the request to create a job will fail if the service has knowledge of a previously submitted job with the same client's id and job name. The caller may, for example, use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
-      "requestedState": "A String", # The job's requested state. UpdateJob may be used to switch between the JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state. UpdateJob may also be used to directly set a job's requested state to JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it has not already reached a terminal state.
-      "name": "A String", # The user-specified Dataflow job name. Only one Job with a given name may exist in a project at any given time. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt will return the existing Job. The name must match the regular expression [a-z]([-a-z0-9]{0,38}[a-z0-9])?
-      "location": "A String", # The location which contains this job.
-      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field will contain the ID of that job.
-      "projectId": "A String", # The project which owns the job.
-      "labels": { # User-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
         "a_key": "A String",
       },
-      "transformNameMapping": { # Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
+      "location": "A String", # The location that contains this job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
-      "createTime": "A String", # Timestamp when job was initially created. Immutable, set by the Dataflow service.
-      "environment": { # Describes the environment in which a Dataflow Job runs. # Environment for the job.
-        "version": { # A structure describing which components and their versions of the service are required in order to run the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
           "a_key": "", # Properties of the object.
         },
-        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The system will append the suffix "/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
         "internalExperiments": { # Experimental settings.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "dataset": "A String", # The dataset for the current project where various workflow related tables are stored. The supported resource type is: Google BigQuery: bigquery.googleapis.com/{dataset}
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
         "experiments": [ # The list of experiments to enable.
           "A String",
         ],
         "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
-        "sdkPipelineOptions": { # The Dataflow SDK pipeline options specified by the user. These options are passed through the service and are used to recreate the SDK pipeline options on the worker in a language agnostic and platform independent way.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
           "a_key": "", # Properties of the object.
         },
         "userAgent": { # A description of the process that generated the request.
           "a_key": "", # Properties of the object.
         },
-        "clusterManagerApiService": "A String", # The type of cluster manager API to use. If unknown or unspecified, the service will attempt to choose a reasonable default. This should be in the form of the API service name, e.g. "compute.googleapis.com".
-        "workerPools": [ # Worker pools. At least one "harness" worker pool must be specified in order for the job to have workers.
-          { # Describes one particular pool of Dataflow workers to be instantiated by the Dataflow service in order to perform the computations required by a job. Note that a workflow job may use multiple pools, in order to match the various computational requirements of the various stages of the job.
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when using the standard Dataflow task runner. Users should ignore this field.
-              "workflowFileName": "A String", # Store the workflow in this file.
-              "logUploadLocation": "A String", # Indicates where to put logs. If this is not specified, the logs will not be uploaded. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "commandlinesFileName": "A String", # Store preprocessing commands in this file.
-              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # Settings to pass to the parallel worker harness.
-                "reportingEnabled": True or False, # Send work progress updates to service.
-                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example, "shuffle/v1beta1".
-                "workerId": "A String", # ID of the worker running this pipeline.
-                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-                "servicePath": "A String", # The Dataflow service path relative to the root URL, for example, "dataflow/v1b3/projects".
-                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              },
-              "vmId": "A String", # ID string of VM.
-              "baseTaskDir": "A String", # Location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Do we continue taskrunner if an exception is hit?
-              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs. When workers access Google Cloud APIs, they logically do so via relative URLs. If this field is specified, it supplies the base URL to use for resolving these relative URLs. The normative algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators". If not specified, the default value is "http://www.googleapis.com/"
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g. "root".
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.g. "wheel".
-              "oauthScopes": [ # OAuth2 scopes to be requested by the taskrunner in order to access the dataflow API.
-                "A String",
-              ],
-              "languageHint": "A String", # Suggested backend language.
-              "logToSerialconsole": True or False, # Send taskrunner log into to Google Compute Engine VM serial console?
-              "streamingWorkerMainClass": "A String", # Streaming worker main class name.
-              "logDir": "A String", # Directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # API version of endpoint, e.g. "v1b3"
-              "harnessCommand": "A String", # Command to launch the worker harness.
-              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for temporary storage. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
-              "alsologtostderr": True or False, # Also send taskrunner log info to stderr?
-            },
-            "kind": "A String", # The kind of the worker pool; currently only 'harness' and 'shuffle' are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the service will choose a number of threads (according to the number of cores on the selected machine type for batch, or 1 by convention for streaming).
             "ipConfiguration": "A String", # Configuration for VM IPs.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google Compute Engine API.
-            "diskType": "A String", # Type of root disk for VMs. If empty or unspecified, the service will attempt to choose a reasonable default.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool. Allowed values are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS means workers are always torn down regardless of whether the job succeeds. TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds. TEARDOWN_NEVER means the workers are never torn down. If the workers are not torn down by the service, they will continue to run and use Google Compute Engine VM resources in the user's project until they are explicitly terminated by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS policy except for small, manually supervised test jobs. If unknown or unspecified, the service will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "metadata": { # Metadata to set on the Google Compute Engine VMs.
               "a_key": "A String",
             },
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
             "poolArgs": { # Extra arguments for this worker pool.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to execute the job. If zero or unspecified, the service will attempt to choose a reasonable default.
-            "workerHarnessContainerImage": "A String", # Docker container image that executes Dataflow worker harness, residing in Google Container Registry. Required.
-            "defaultPackageSet": "A String", # The default package set to install. This allows the service to select a default set of packages which are useful to worker harnesses written in a particular language.
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "vmId": "A String", # The ID string of the VM.
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
             "packages": [ # Packages to be installed on workers.
-              { # Packages that need to be installed in order for a worker to run the steps of the Dataflow job which will be assigned to its worker pool. This is the mechanism by which the SDK causes code to be loaded onto the workers. For example, the Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc) required in order for that code to run.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
                 "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket} bucket.storage.googleapis.com/
               },
             ],
             "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
               "algorithm": "A String", # The algorithm to use for autoscaling.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
             },
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired. Expected to be of the form "regions/REGION/subnetworks/SUBNETWORK".
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
-                "sizeGb": 42, # Size of disk in GB. If zero or unspecified, the service will attempt to choose a reasonable default.
-                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine. This must be a disk type appropriate to the project and zone in which the workers will run. If unknown or unspecified, the service will attempt to choose a reasonable default. For example, the standard persistent disk type is a resource name typically ending in "pd-standard". If SSD persistent disks are available, the resource name typically ends with "pd-ssd". The actual valid values are defined the Google Compute Engine API, not by the Dataflow API; consult the Google Compute Engine documentation for more information about determining the set of available disk types for a particular project and zone. Google Compute Engine Disk types are local to a particular project in a particular zone, and so the resource name will typically look something like this: compute.googleapis.com/projects/
-                    # /zones//diskTypes/pd-standard
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
           },
         ],
       },
-      "replaceJobId": "A String", # If this job is an update of an existing job, this field will be the ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here will be stopped, and its intermediate state transferred to this job.
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
       "steps": [ # The top-level steps that constitute the entire job.
-        { # Defines a particular step within a Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. (Note that the Dataflow service may be used to run many different types of jobs, not just Map-Reduce).
-          "kind": "A String", # The kind of step in the dataflow Job.
-          "name": "A String", # Name identifying the step. This must be unique for each step with respect to all other steps in the dataflow Job.
-          "properties": { # Named properties associated with the step. Each kind of predefined step has its own required set of properties.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
             "a_key": "", # Properties of the object.
           },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentStateTime": "A String", # The timestamp associated with the current state.
-      "tempFiles": [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
-      "type": "A String", # The type of dataflow job.
-      "id": "A String", # The unique ID of this job. This field is set by the Dataflow service when the Job is created, and is immutable for the life of the Job.
-      "currentState": "A String", # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. Once a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Dataflow service; callers cannot mutate it.
-      "executionInfo": { # Additional information about how a Dataflow job will be executed which isn’t contained in the submitted job. # Information about how the Dataflow service will actually run the job.
+      "type": "A String", # The type of Cloud Dataflow job.
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
         "stages": { # A mapping from each stage to the information about that stage.
-          "a_key": { # Contains information about how a particular google.dataflow.v1beta3.Step will be executed.
-            "stepName": [ # The steps associated with the execution stage. Note that stages may have several steps, and that a given step might be run by more than one stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
               "A String",
             ],
           },
@@ -244,4 +602,698 @@
     }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="get">get(projectId, gcsPath=None, x__xgafv=None, view=None)</code>
+  <pre>Get the template associated with a template.
+
+Args:
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
+  gcsPath: string, Required. A Cloud Storage path to the template from which to
+create the job.
+Must be a valid Cloud Storage URL, beginning with `gs://`.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, The view to retrieve. Defaults to METADATA_ONLY.
+
+Returns:
+  An object of the form:
+
+    { # The response to a GetTemplate request.
+    "status": { # The `Status` type defines a logical error model that is suitable for different # The status of the get template request. Any problems with the
+        # request will be indicated in the error_details.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "metadata": { # Metadata describing a template. # The template metadata describing the template name, available
+        # parameters, etc.
+      "bypassTempDirValidation": True or False, # If true, will bypass the validation that the temp directory is
+          # writable. This should only be used with templates for pipelines
+          # that are guaranteed not to need to write to the temp directory,
+          # which is subject to change based on the optimizer.
+      "name": "A String", # Required. The name of the template.
+      "parameters": [ # The parameters for the template.
+        { # Metadata for a specific parameter.
+          "regexes": [ # Optional. Regexes that the parameter must match.
+            "A String",
+          ],
+          "helpText": "A String", # Required. The help text to display for the parameter.
+          "name": "A String", # Required. The name of the parameter.
+          "isOptional": True or False, # Optional. Whether the parameter is optional. Defaults to false.
+          "label": "A String", # Required. The label to display for the parameter.
+        },
+      ],
+      "description": "A String", # Optional. A description of the template.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="launch">launch(projectId, body, dryRun=None, gcsPath=None, x__xgafv=None)</code>
+  <pre>Launch a template.
+
+Args:
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Parameters to provide to the template being launched.
+    "environment": { # The environment values to set at runtime. # The runtime environment for the job.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "zone": "A String", # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+          # for launching worker instances to run your pipeline.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
+    },
+    "parameters": { # The runtime parameters to pass to the job.
+      "a_key": "A String",
+    },
+    "jobName": "A String", # Required. The job name to use for the created job.
+  }
+
+  dryRun: boolean, Whether or not the job should actually be executed after
+validating parameters. Defaults to false. Validation errors do
+not cause the HTTP request to fail if true.
+  gcsPath: string, Required. A Cloud Storage path to the template from which to create
+the job.
+Must be valid Cloud Storage URL, beginning with 'gs://'.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response to the request to launch a template.
+    "status": { # The `Status` type defines a logical error model that is suitable for different # The status of the launch template request. Any problems with the request
+        # will be indicated in the error_details.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "job": { # Defines a job to be run by the Cloud Dataflow service. # The job that was launched, if the request was not a dry run and
+        # the job was successfully launched.
+        "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+            # If this field is set, the service will ensure its uniqueness.
+            # The request to create a job will fail if the service has knowledge of a
+            # previously submitted job with the same client's ID and job name.
+            # The caller may use this field to ensure idempotence of job
+            # creation across retried attempts to create a job.
+            # By default, the field is empty and, in that case, the service ignores it.
+        "requestedState": "A String", # The job's requested state.
+            #
+            # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+            # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+            # also be used to directly set a job's requested state to
+            # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+            # job if it has not already reached a terminal state.
+        "name": "A String", # The user-specified Cloud Dataflow job name.
+            #
+            # Only one Job with a given name may exist in a project at any
+            # given time. If a caller attempts to create a Job with the same
+            # name as an already-existing Job, the attempt returns the
+            # existing Job.
+            #
+            # The name must match the regular expression
+            # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+        "currentStateTime": "A String", # The timestamp associated with the current state.
+        "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+            # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+        "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+        "labels": { # User-defined labels for this job.
+            #
+            # The labels map can contain no more than 64 entries.  Entries of the labels
+            # map are UTF8 strings that comply with the following restrictions:
+            #
+            # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+            # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+            # * Both keys and values are additionally constrained to be <= 128 bytes in
+            # size.
+          "a_key": "A String",
+        },
+        "location": "A String", # The location that contains this job.
+        "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+            # Cloud Dataflow service.
+        "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+            # corresponding name prefixes of the new job.
+          "a_key": "A String",
+        },
+        "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+          "version": { # A structure describing which components and their versions of the service
+              # are required in order to run the job.
+            "a_key": "", # Properties of the object.
+          },
+          "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+              # storage.  The system will append the suffix "/temp-{JOBNAME} to
+              # this resource prefix, where {JOBNAME} is the value of the
+              # job_name field.  The resulting bucket and object prefix is used
+              # as the prefix of the resources used to store temporary data
+              # needed during the job execution.  NOTE: This will override the
+              # value in taskrunner_settings.
+              # The supported resource type is:
+              #
+              # Google Cloud Storage:
+              #
+              #   storage.googleapis.com/{bucket}/{object}
+              #   bucket.storage.googleapis.com/{object}
+          "internalExperiments": { # Experimental settings.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "dataset": "A String", # The dataset for the current project where various workflow
+              # related tables are stored.
+              #
+              # The supported resource type is:
+              #
+              # Google BigQuery:
+              #   bigquery.googleapis.com/{dataset}
+          "experiments": [ # The list of experiments to enable.
+            "A String",
+          ],
+          "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
+          "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+              # options are passed through the service and are used to recreate the
+              # SDK pipeline options on the worker in a language agnostic and platform
+              # independent way.
+            "a_key": "", # Properties of the object.
+          },
+          "userAgent": { # A description of the process that generated the request.
+            "a_key": "", # Properties of the object.
+          },
+          "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+              # unspecified, the service will attempt to choose a reasonable
+              # default.  This should be in the form of the API service name,
+              # e.g. "compute.googleapis.com".
+          "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+              # specified in order for the job to have workers.
+            { # Describes one particular pool of Cloud Dataflow workers to be
+                # instantiated by the Cloud Dataflow service in order to perform the
+                # computations required by a job.  Note that a workflow job may use
+                # multiple pools, in order to match the various computational
+                # requirements of the various stages of the job.
+              "diskSourceImage": "A String", # Fully qualified source image for disks.
+              "ipConfiguration": "A String", # Configuration for VM IPs.
+              "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                  # are supported.
+              "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                  # service will attempt to choose a reasonable default.
+              "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                  # the service will use the network "default".
+              "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                  # will attempt to choose a reasonable default.
+              "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "metadata": { # Metadata to set on the Google Compute Engine VMs.
+                "a_key": "A String",
+              },
+              "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                  # Compute Engine API.
+              "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                  # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                  # `TEARDOWN_NEVER`.
+                  # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                  # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                  # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                  # down.
+                  #
+                  # If the workers are not torn down by the service, they will
+                  # continue to run and use Google Compute Engine VM resources in the
+                  # user's project until they are explicitly terminated by the user.
+                  # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                  # policy except for small, manually supervised test jobs.
+                  #
+                  # If unknown or unspecified, the service will attempt to choose a reasonable
+                  # default.
+              "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                  # service will choose a number of threads (according to the number of cores
+                  # on the selected machine type for batch, or 1 by convention for streaming).
+              "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                  # the form "regions/REGION/subnetworks/SUBNETWORK".
+              "poolArgs": { # Extra arguments for this worker pool.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+              "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                  # execute the job.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                  # using the standard Dataflow task runner.  Users should ignore
+                  # this field.
+                "workflowFileName": "A String", # The file to store the workflow in.
+                "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                    # will not be uploaded.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+                "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+                "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+                "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                "vmId": "A String", # The ID string of the VM.
+                "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "wheel".
+                "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "root".
+                "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                    # access the Cloud Dataflow API.
+                  "A String",
+                ],
+                "languageHint": "A String", # The suggested backend language.
+                "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                    # console.
+                "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                "logDir": "A String", # The directory on the VM to store logs.
+                "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                  "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                  "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                      # "shuffle/v1beta1".
+                  "workerId": "A String", # The ID of the worker running this pipeline.
+                  "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                      #
+                      # When workers access Google Cloud APIs, they logically do so via
+                      # relative URLs.  If this field is specified, it supplies the base
+                      # URL to use for resolving these relative URLs.  The normative
+                      # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                      # Locators".
+                      #
+                      # If not specified, the default value is "http://www.googleapis.com/"
+                  "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                      # "dataflow/v1b3/projects".
+                  "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                      # storage.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                },
+                "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                "harnessCommand": "A String", # The command to launch the worker harness.
+                "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                    # temporary storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+                "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+              },
+              "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                  # select a default set of packages which are useful to worker
+                  # harnesses written in a particular language.
+              "packages": [ # Packages to be installed on workers.
+                { # The packages that must be installed in order for a worker to run the
+                    # steps of the Cloud Dataflow job that will be assigned to its worker
+                    # pool.
+                    #
+                    # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                    # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                    # might use this to install jars containing the user's code and all of the
+                    # various dependencies (libraries, data files, etc.) required in order
+                    # for that code to run.
+                  "location": "A String", # The resource to read the package from. The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #
+                      #   storage.googleapis.com/{bucket}
+                      #   bucket.storage.googleapis.com/
+                  "name": "A String", # The name of the package.
+                },
+              ],
+              "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+                "algorithm": "A String", # The algorithm to use for autoscaling.
+                "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              },
+              "dataDisks": [ # Data disks that are used by a VM in this workflow.
+                { # Describes the data disk used by a workflow job.
+                  "mountPoint": "A String", # Directory in a VM where disk is mounted.
+                  "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                      # attempt to choose a reasonable default.
+                  "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                      # must be a disk type appropriate to the project and zone in which
+                      # the workers will run.  If unknown or unspecified, the service
+                      # will attempt to choose a reasonable default.
+                      #
+                      # For example, the standard persistent disk type is a resource name
+                      # typically ending in "pd-standard".  If SSD persistent disks are
+                      # available, the resource name typically ends with "pd-ssd".  The
+                      # actual valid values are defined the Google Compute Engine API,
+                      # not by the Cloud Dataflow API; consult the Google Compute Engine
+                      # documentation for more information about determining the set of
+                      # available disk types for a particular project and zone.
+                      #
+                      # Google Compute Engine Disk types are local to a particular
+                      # project in a particular zone, and so the resource name will
+                      # typically look something like this:
+                      #
+                      # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
+                },
+              ],
+              "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                  # harness, residing in Google Container Registry.
+            },
+          ],
+        },
+        "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+            # A description of the user pipeline and stages through which it is executed.
+            # Created by Cloud Dataflow service.  Only retrieved with
+            # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+            # form.  This data is provided by the Dataflow service for ease of visualizing
+            # the pipeline and interpretting Dataflow provided metrics.
+          "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+            { # Description of the type, names/ids, and input/outputs for a transform.
+              "kind": "A String", # Type of transform.
+              "name": "A String", # User provided name for this transform instance.
+              "inputCollectionName": [ # User names for all collection inputs to this transform.
+                "A String",
+              ],
+              "displayData": [ # Transform-specific display data.
+                { # Data provided with a pipeline or transform to provide descriptive info.
+                  "key": "A String", # The key identifying the display data.
+                      # This is intended to be used as a label for the display data
+                      # when viewed in a dax monitoring system.
+                  "shortStrValue": "A String", # A possible additional shorter value to display.
+                      # For example a java_class_name_value of com.mypackage.MyDoFn
+                      # will be stored with MyDoFn as the short_str_value and
+                      # com.mypackage.MyDoFn as the java_class_name value.
+                      # short_str_value can be displayed and java_class_name_value
+                      # will be displayed as a tooltip.
+                  "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                  "url": "A String", # An optional full URL.
+                  "floatValue": 3.14, # Contains value if the data is of float type.
+                  "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                      # language namespace (i.e. python module) which defines the display data.
+                      # This allows a dax monitoring system to specially handle the data
+                      # and perform custom rendering.
+                  "javaClassValue": "A String", # Contains value if the data is of java class type.
+                  "label": "A String", # An optional label to display in a dax UI for the element.
+                  "boolValue": True or False, # Contains value if the data is of a boolean type.
+                  "strValue": "A String", # Contains value if the data is of string type.
+                  "durationValue": "A String", # Contains value if the data is of duration type.
+                  "int64Value": "A String", # Contains value if the data is of int64 type.
+                },
+              ],
+              "outputCollectionName": [ # User  names for all collection outputs to this transform.
+                "A String",
+              ],
+              "id": "A String", # SDK generated id of this transform instance.
+            },
+          ],
+          "displayData": [ # Pipeline level display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+            },
+          ],
+          "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+            { # Description of the composing transforms, names/ids, and input/outputs of a
+                # stage of execution.  Some composing transforms and sources may have been
+                # generated by the Dataflow service during execution planning.
+              "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+                { # Description of an interstitial value between transforms in an execution
+                    # stage.
+                  "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                },
+              ],
+              "kind": "A String", # Type of tranform this stage is executing.
+              "name": "A String", # Dataflow service generated name for this stage.
+              "outputSource": [ # Output sources for this stage.
+                { # Description of an input or output of an execution stage.
+                  "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                  "sizeBytes": "A String", # Size of the source, if measurable.
+                },
+              ],
+              "inputSource": [ # Input sources for this stage.
+                { # Description of an input or output of an execution stage.
+                  "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                  "sizeBytes": "A String", # Size of the source, if measurable.
+                },
+              ],
+              "componentTransform": [ # Transforms that comprise this execution stage.
+                { # Description of a transform executed as part of an execution stage.
+                  "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                  "originalTransform": "A String", # User name for the original user transform with which this transform is
+                      # most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                },
+              ],
+              "id": "A String", # Dataflow service generated id for this stage.
+            },
+          ],
+        },
+        "steps": [ # The top-level steps that constitute the entire job.
+          { # Defines a particular step within a Cloud Dataflow job.
+              #
+              # A job consists of multiple steps, each of which performs some
+              # specific operation as part of the overall job.  Data is typically
+              # passed from one step to another as part of the job.
+              #
+              # Here's an example of a sequence of steps which together implement a
+              # Map-Reduce job:
+              #
+              #   * Read a collection of data from some source, parsing the
+              #     collection's elements.
+              #
+              #   * Validate the elements.
+              #
+              #   * Apply a user-defined function to map each element to some value
+              #     and extract an element-specific key value.
+              #
+              #   * Group elements with the same key into a single element with
+              #     that key, transforming a multiply-keyed collection into a
+              #     uniquely-keyed collection.
+              #
+              #   * Write the elements out to some data sink.
+              #
+              # Note that the Cloud Dataflow service may be used to run many different
+              # types of jobs, not just Map-Reduce.
+            "kind": "A String", # The kind of step in the Cloud Dataflow job.
+            "properties": { # Named properties associated with the step. Each kind of
+                # predefined step has its own required set of properties.
+                # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
+              "a_key": "", # Properties of the object.
+            },
+            "name": "A String", # The name that identifies the step. This must be unique for each
+                # step with respect to all other steps in the Cloud Dataflow job.
+          },
+        ],
+        "currentState": "A String", # The current state of the job.
+            #
+            # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+            # specified.
+            #
+            # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+            # terminal state. After a job has reached a terminal state, no
+            # further state updates may be made.
+            #
+            # This field may be mutated by the Cloud Dataflow service;
+            # callers cannot mutate it.
+        "tempFiles": [ # A set of files the system should be aware of that are used
+            # for temporary storage. These temporary files will be
+            # removed on job completion.
+            # No duplicates are allowed.
+            # No file patterns are supported.
+            #
+            # The supported files are:
+            #
+            # Google Cloud Storage:
+            #
+            #    storage.googleapis.com/{bucket}/{object}
+            #    bucket.storage.googleapis.com/{object}
+          "A String",
+        ],
+        "type": "A String", # The type of Cloud Dataflow job.
+        "id": "A String", # The unique ID of this job.
+            #
+            # This field is set by the Cloud Dataflow service when the Job is
+            # created, and is immutable for the life of the job.
+        "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+            # of the job it replaced.
+            #
+            # When sending a `CreateJobRequest`, you can update a job by specifying it
+            # here. The job named here is stopped, and its intermediate state is
+            # transferred to this job.
+        "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+            # isn't contained in the submitted job.
+          "stages": { # A mapping from each stage to the information about that stage.
+            "a_key": { # Contains information about how a particular
+                # google.dataflow.v1beta3.Step will be executed.
+              "stepName": [ # The steps associated with the execution stage.
+                  # Note that stages may have several steps, and that a given step
+                  # might be run by more than one stage.
+                "A String",
+              ],
+            },
+          },
+        },
+      },
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataproc_v1.projects.regions.clusters.html b/docs/dyn/dataproc_v1.projects.regions.clusters.html
index c8fcdcd..c3b7e95 100644
--- a/docs/dyn/dataproc_v1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1.projects.regions.clusters.html
@@ -82,7 +82,7 @@
 <p class="firstline">Deletes a cluster in a project.</p>
 <p class="toc_element">
   <code><a href="#diagnose">diagnose(projectId, region, clusterName, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets cluster diagnostic information. After the operation completes, the Operation.response field contains `DiagnoseClusterOutputLocation`.</p>
+<p class="firstline">Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, region, clusterName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the resource representation for a cluster in a project.</p>
@@ -101,24 +101,24 @@
   <pre>Creates a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
-    "state": "A String", # [Output-only] The cluster's state.
-    "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-    "detail": "A String", # [Output-only] Optional details of cluster's state.
+  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
+    "state": "A String", # Output-only The cluster's state.
+    "stateStartTime": "A String", # Output-only Time when this state was entered.
+    "detail": "A String", # Output-only Optional details of cluster's state.
   },
-  "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-  "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # [Optional] The labels to associate with this cluster. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
     "a_key": "A String",
   },
-  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
+  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
     "yarnMetrics": { # The YARN metrics.
       "a_key": "A String",
     },
@@ -126,106 +126,157 @@
       "a_key": "A String",
     },
   },
-  "statusHistory": [ # [Output-only] The previous cluster status.
+  "statusHistory": [ # Output-only The previous cluster status.
     { # The status of a cluster and its instances.
-      "state": "A String", # [Output-only] The cluster's state.
-      "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-      "detail": "A String", # [Output-only] Optional details of cluster's state.
+      "state": "A String", # Output-only The cluster's state.
+      "stateStartTime": "A String", # Output-only Time when this state was entered.
+      "detail": "A String", # Output-only Optional details of cluster's state.
     },
   ],
-  "config": { # The cluster config. # [Required] The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # [Optional] The config settings for software inside the cluster.
-      "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-      "properties": { # [Optional] The properties to set on daemon config files. Property keys are specified in `prefix:property` format, such as `core:fs.defaultFS`. The following are supported prefixes and their mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred: `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf`
+  "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
+      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+          # core: core-site.xml
+          # hdfs: hdfs-site.xml
+          # mapred: mapred-site.xml
+          # yarn: yarn-site.xml
+          # hive: hive-site.xml
+          # pig: pig.properties
+          # spark: spark-defaults.conf
         "a_key": "A String",
       },
     },
-    "configBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine config settings for all instances in a cluster.
-      "internalIpOnly": True or False, # [Optional] If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # [Optional] The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see [Using Subnetworks](/compute/docs/subnetworks) for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-      "tags": [ # The Google Compute Engine tags to add to all instances (see [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
+    "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
+      "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+      "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
         "A String",
       ],
-      "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-      "subnetworkUri": "A String", # [Optional] The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-      "serviceAccountScopes": [ # [Optional] The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control
+      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+          # roles/logging.logWriter
+          # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+          # https://www.googleapis.com/auth/cloud.useraccounts.readonly
+          # https://www.googleapis.com/auth/devstorage.read_write
+          # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
+          # https://www.googleapis.com/auth/bigquery
+          # https://www.googleapis.com/auth/bigtable.admin.table
+          # https://www.googleapis.com/auth/bigtable.data
+          # https://www.googleapis.com/auth/devstorage.full_control
         "A String",
       ],
-      "metadata": { # The Google Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+      "metadata": { # The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
         "a_key": "A String",
       },
     },
-    "workerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for worker instances in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
-    "initializationActions": [ # [Optional] Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
+    "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+        # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
+        # if [[ "${ROLE}" == 'Master' ]]; then
+        #   ... master specific actions ...
+        # else
+        #   ... worker specific actions ...
+        # fi
       { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
+        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
       },
     ],
-    "secondaryWorkerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for additional worker instances in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
-    "masterConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for the master instance in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
   },
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -234,11 +285,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -247,19 +298,29 @@
   <pre>Deletes a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -268,22 +329,22 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="diagnose">diagnose(projectId, region, clusterName, body, x__xgafv=None)</code>
-  <pre>Gets cluster diagnostic information. After the operation completes, the Operation.response field contains `DiagnoseClusterOutputLocation`.
+  <pre>Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -291,15 +352,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -308,11 +379,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -321,27 +392,30 @@
   <pre>Gets the resource representation for a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-    "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
-      "state": "A String", # [Output-only] The cluster's state.
-      "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-      "detail": "A String", # [Output-only] Optional details of cluster's state.
+    "status": { # The status of a cluster and its instances. # Output-only Cluster status.
+      "state": "A String", # Output-only The cluster's state.
+      "stateStartTime": "A String", # Output-only Time when this state was entered.
+      "detail": "A String", # Output-only Optional details of cluster's state.
     },
-    "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-    "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # [Optional] The labels to associate with this cluster. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
       "a_key": "A String",
     },
-    "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
+    "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
       "yarnMetrics": { # The YARN metrics.
         "a_key": "A String",
       },
@@ -349,92 +423,133 @@
         "a_key": "A String",
       },
     },
-    "statusHistory": [ # [Output-only] The previous cluster status.
+    "statusHistory": [ # Output-only The previous cluster status.
       { # The status of a cluster and its instances.
-        "state": "A String", # [Output-only] The cluster's state.
-        "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-        "detail": "A String", # [Output-only] Optional details of cluster's state.
+        "state": "A String", # Output-only The cluster's state.
+        "stateStartTime": "A String", # Output-only Time when this state was entered.
+        "detail": "A String", # Output-only Optional details of cluster's state.
       },
     ],
-    "config": { # The cluster config. # [Required] The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-      "softwareConfig": { # Specifies the selection and config of software inside the cluster. # [Optional] The config settings for software inside the cluster.
-        "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-        "properties": { # [Optional] The properties to set on daemon config files. Property keys are specified in `prefix:property` format, such as `core:fs.defaultFS`. The following are supported prefixes and their mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred: `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf`
+    "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+      "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
+        "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+        "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+            # core: core-site.xml
+            # hdfs: hdfs-site.xml
+            # mapred: mapred-site.xml
+            # yarn: yarn-site.xml
+            # hive: hive-site.xml
+            # pig: pig.properties
+            # spark: spark-defaults.conf
           "a_key": "A String",
         },
       },
-      "configBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-      "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine config settings for all instances in a cluster.
-        "internalIpOnly": True or False, # [Optional] If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-        "networkUri": "A String", # [Optional] The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see [Using Subnetworks](/compute/docs/subnetworks) for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-        "tags": [ # The Google Compute Engine tags to add to all instances (see [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
+      "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+      "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
+        "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+        "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+        "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
           "A String",
         ],
-        "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-        "subnetworkUri": "A String", # [Optional] The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-        "serviceAccountScopes": [ # [Optional] The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control
+        "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+            # roles/logging.logWriter
+            # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+        "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+        "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+        "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+            # https://www.googleapis.com/auth/cloud.useraccounts.readonly
+            # https://www.googleapis.com/auth/devstorage.read_write
+            # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
+            # https://www.googleapis.com/auth/bigquery
+            # https://www.googleapis.com/auth/bigtable.admin.table
+            # https://www.googleapis.com/auth/bigtable.data
+            # https://www.googleapis.com/auth/devstorage.full_control
           "A String",
         ],
-        "metadata": { # The Google Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+        "metadata": { # The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
           "a_key": "A String",
         },
       },
-      "workerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for worker instances in a cluster.
-        "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-        "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
         },
-        "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
       },
-      "initializationActions": [ # [Optional] Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
+      "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+          # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
+          # if [[ "${ROLE}" == 'Master' ]]; then
+          #   ... master specific actions ...
+          # else
+          #   ... worker specific actions ...
+          # fi
         { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-          "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-          "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
+          "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+          "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
         },
       ],
-      "secondaryWorkerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for additional worker instances in a cluster.
-        "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-        "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
         },
-        "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
       },
-      "masterConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for the master instance in a cluster.
-        "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-        "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
         },
-        "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
       },
     },
   }</pre>
@@ -445,32 +560,35 @@
   <pre>Lists all regions/{region}/clusters in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  pageSize: integer, [Optional] The standard List page size.
-  filter: string, [Optional] A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax: field:value [field:value] ... or field = value [AND [field = value]] ... where **field** is one of `status.state`, `clusterName`, or `labels.[KEY]`, and `[KEY]` is a label key. **value** can be `*` to match all values. `status.state` can be one of the following: `ACTIVE`, `INACTIVE`, `CREATING`, `RUNNING`, `ERROR`, `DELETING`, or `UPDATING`. `ACTIVE` contains the `CREATING`, `UPDATING`, and `RUNNING` states. `INACTIVE` contains the `DELETING` and `ERROR` states. `clusterName` is the name of the cluster provided at creation time. Only the logical `AND` operator is supported; space-separated items are treated as having an implicit `AND` operator. Example valid filters are: status.state:ACTIVE clusterName:mycluster labels.env:staging \ labels.starred:* and status.state = ACTIVE AND clusterName = mycluster \ AND labels.env = staging AND labels.starred = *
-  pageToken: string, [Optional] The standard List page token.
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  pageSize: integer, Optional The standard List page size.
+  filter: string, Optional A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *
+  pageToken: string, Optional The standard List page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The list of all clusters in a project.
-    "nextPageToken": "A String", # [Output-only] This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the `page_token` in a subsequent ListClustersRequest.
-    "clusters": [ # [Output-only] The clusters in the project.
+    "nextPageToken": "A String", # Output-only This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListClustersRequest</code>.
+    "clusters": [ # Output-only The clusters in the project.
       { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-        "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
-          "state": "A String", # [Output-only] The cluster's state.
-          "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-          "detail": "A String", # [Output-only] Optional details of cluster's state.
+        "status": { # The status of a cluster and its instances. # Output-only Cluster status.
+          "state": "A String", # Output-only The cluster's state.
+          "stateStartTime": "A String", # Output-only Time when this state was entered.
+          "detail": "A String", # Output-only Optional details of cluster's state.
         },
-        "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-        "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-        "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-        "labels": { # [Optional] The labels to associate with this cluster. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+        "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+        "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+        "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+        "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
           "a_key": "A String",
         },
-        "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
+        "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
           "yarnMetrics": { # The YARN metrics.
             "a_key": "A String",
           },
@@ -478,92 +596,133 @@
             "a_key": "A String",
           },
         },
-        "statusHistory": [ # [Output-only] The previous cluster status.
+        "statusHistory": [ # Output-only The previous cluster status.
           { # The status of a cluster and its instances.
-            "state": "A String", # [Output-only] The cluster's state.
-            "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-            "detail": "A String", # [Output-only] Optional details of cluster's state.
+            "state": "A String", # Output-only The cluster's state.
+            "stateStartTime": "A String", # Output-only Time when this state was entered.
+            "detail": "A String", # Output-only Optional details of cluster's state.
           },
         ],
-        "config": { # The cluster config. # [Required] The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-          "softwareConfig": { # Specifies the selection and config of software inside the cluster. # [Optional] The config settings for software inside the cluster.
-            "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-            "properties": { # [Optional] The properties to set on daemon config files. Property keys are specified in `prefix:property` format, such as `core:fs.defaultFS`. The following are supported prefixes and their mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred: `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf`
+        "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+          "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
+            "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+            "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+                # core: core-site.xml
+                # hdfs: hdfs-site.xml
+                # mapred: mapred-site.xml
+                # yarn: yarn-site.xml
+                # hive: hive-site.xml
+                # pig: pig.properties
+                # spark: spark-defaults.conf
               "a_key": "A String",
             },
           },
-          "configBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-          "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine config settings for all instances in a cluster.
-            "internalIpOnly": True or False, # [Optional] If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-            "networkUri": "A String", # [Optional] The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see [Using Subnetworks](/compute/docs/subnetworks) for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-            "tags": [ # The Google Compute Engine tags to add to all instances (see [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
+          "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+          "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
+            "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+            "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+            "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
               "A String",
             ],
-            "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-            "subnetworkUri": "A String", # [Optional] The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-            "serviceAccountScopes": [ # [Optional] The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control
+            "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+                # roles/logging.logWriter
+                # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+            "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+            "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+            "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+                # https://www.googleapis.com/auth/cloud.useraccounts.readonly
+                # https://www.googleapis.com/auth/devstorage.read_write
+                # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
+                # https://www.googleapis.com/auth/bigquery
+                # https://www.googleapis.com/auth/bigtable.admin.table
+                # https://www.googleapis.com/auth/bigtable.data
+                # https://www.googleapis.com/auth/devstorage.full_control
               "A String",
             ],
-            "metadata": { # The Google Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+            "metadata": { # The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
               "a_key": "A String",
             },
           },
-          "workerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for worker instances in a cluster.
-            "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-            "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
             },
-            "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
           },
-          "initializationActions": [ # [Optional] Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
+          "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+              # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
+              # if [[ "${ROLE}" == 'Master' ]]; then
+              #   ... master specific actions ...
+              # else
+              #   ... worker specific actions ...
+              # fi
             { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-              "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-              "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
+              "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+              "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
             },
           ],
-          "secondaryWorkerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for additional worker instances in a cluster.
-            "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-            "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
             },
-            "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
           },
-          "masterConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for the master instance in a cluster.
-            "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-            "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
             },
-            "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
           },
         },
       },
@@ -590,25 +749,25 @@
   <pre>Updates a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project the cluster belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project the cluster belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
-    "state": "A String", # [Output-only] The cluster's state.
-    "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-    "detail": "A String", # [Output-only] Optional details of cluster's state.
+  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
+    "state": "A String", # Output-only The cluster's state.
+    "stateStartTime": "A String", # Output-only Time when this state was entered.
+    "detail": "A String", # Output-only Optional details of cluster's state.
   },
-  "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-  "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # [Optional] The labels to associate with this cluster. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
     "a_key": "A String",
   },
-  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
+  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
     "yarnMetrics": { # The YARN metrics.
       "a_key": "A String",
     },
@@ -616,107 +775,174 @@
       "a_key": "A String",
     },
   },
-  "statusHistory": [ # [Output-only] The previous cluster status.
+  "statusHistory": [ # Output-only The previous cluster status.
     { # The status of a cluster and its instances.
-      "state": "A String", # [Output-only] The cluster's state.
-      "stateStartTime": "A String", # [Output-only] Time when this state was entered.
-      "detail": "A String", # [Output-only] Optional details of cluster's state.
+      "state": "A String", # Output-only The cluster's state.
+      "stateStartTime": "A String", # Output-only Time when this state was entered.
+      "detail": "A String", # Output-only Optional details of cluster's state.
     },
   ],
-  "config": { # The cluster config. # [Required] The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # [Optional] The config settings for software inside the cluster.
-      "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-      "properties": { # [Optional] The properties to set on daemon config files. Property keys are specified in `prefix:property` format, such as `core:fs.defaultFS`. The following are supported prefixes and their mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred: `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf`
+  "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
+      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+          # core: core-site.xml
+          # hdfs: hdfs-site.xml
+          # mapred: mapred-site.xml
+          # yarn: yarn-site.xml
+          # hive: hive-site.xml
+          # pig: pig.properties
+          # spark: spark-defaults.conf
         "a_key": "A String",
       },
     },
-    "configBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine config settings for all instances in a cluster.
-      "internalIpOnly": True or False, # [Optional] If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # [Optional] The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see [Using Subnetworks](/compute/docs/subnetworks) for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-      "tags": [ # The Google Compute Engine tags to add to all instances (see [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
+    "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
+      "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+      "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
         "A String",
       ],
-      "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-      "subnetworkUri": "A String", # [Optional] The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-      "serviceAccountScopes": [ # [Optional] The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control
+      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+          # roles/logging.logWriter
+          # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+          # https://www.googleapis.com/auth/cloud.useraccounts.readonly
+          # https://www.googleapis.com/auth/devstorage.read_write
+          # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
+          # https://www.googleapis.com/auth/bigquery
+          # https://www.googleapis.com/auth/bigtable.admin.table
+          # https://www.googleapis.com/auth/bigtable.data
+          # https://www.googleapis.com/auth/devstorage.full_control
         "A String",
       ],
-      "metadata": { # The Google Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+      "metadata": { # The Google Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
         "a_key": "A String",
       },
     },
-    "workerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for worker instances in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
-    "initializationActions": [ # [Optional] Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
+    "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+        # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
+        # if [[ "${ROLE}" == 'Master' ]]; then
+        #   ... master specific actions ...
+        # else
+        #   ... worker specific actions ...
+        # fi
       { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
+        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
       },
     ],
-    "secondaryWorkerConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for additional worker instances in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
-    "masterConfig": { # [Optional] The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine config settings for the master instance in a cluster.
-      "isPreemptible": True or False, # [Optional] Specifies that this instance group contains preemptible instances.
-      "machineTypeUri": "A String", # [Required] The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # [Optional] The list of instance names. Cloud Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # [Optional] Disk option config settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # [Output-only] The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "numInstances": 42, # [Required] The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfig.image_version`.
     },
   },
 }
 
-  updateMask: string, [Required] Specifies the path, relative to Cluster, of the field to update. For example, to change the number of workers in a cluster to 5, the update_mask parameter would be specified as config.worker_config.num_instances, and the `PATCH` request body would specify the new value, as follows: { "config":{ "workerConfig":{ "numInstances":"5" } } } Similarly, to change the number of preemptible workers in a cluster to 5, the update_mask parameter would be config.secondary_worker_config.num_instances, and the `PATCH` request body would be set as follows: { "config":{ "secondaryWorkerConfig":{ "numInstances":"5" } } } Note: Currently, config.worker_config.num_instances and config.secondary_worker_config.num_instances are the only fields that can be updated.
+  updateMask: string, Required Specifies the path, relative to <code>Cluster</code>, of the field to update. For example, to change the number of workers in a cluster to 5, the <code>update_mask</code> parameter would be specified as <code>config.worker_config.num_instances</code>, and the PATCH request body would specify the new value, as follows:
+{
+  "config":{
+    "workerConfig":{
+      "numInstances":"5"
+    }
+  }
+}
+Similarly, to change the number of preemptible workers in a cluster to 5, the <code>update_mask</code> parameter would be <code>config.secondary_worker_config.num_instances</code>, and the PATCH request body would be set as follows:
+{
+  "config":{
+    "secondaryWorkerConfig":{
+      "numInstances":"5"
+    }
+  }
+}
+<strong>Note:</strong> Currently, <code>config.worker_config.num_instances</code> and <code>config.secondary_worker_config.num_instances</code> are the only fields that can be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -725,11 +951,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataproc_v1.projects.regions.jobs.html b/docs/dyn/dataproc_v1.projects.regions.jobs.html
index ab6e84e..2cd6633 100644
--- a/docs/dyn/dataproc_v1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1.projects.regions.jobs.html
@@ -76,10 +76,10 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(projectId, region, jobId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts a job cancellation request. To access the job resource after cancellation, call [regions/{region}/jobs.list](/dataproc/reference/rest/v1/projects.regions.jobs/list) or [regions/{region}/jobs.get](/dataproc/reference/rest/v1/projects.regions.jobs/get).</p>
+<p class="firstline">Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, region, jobId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.</p>
+<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, region, jobId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the resource representation for a job in a project.</p>
@@ -90,17 +90,20 @@
   <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, region, jobId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a job in a project.</p>
+<p class="toc_element">
   <code><a href="#submit">submit(projectId, region, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Submits a job to a cluster.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="cancel">cancel(projectId, region, jobId, body, x__xgafv=None)</code>
-  <pre>Starts a job cancellation request. To access the job resource after cancellation, call [regions/{region}/jobs.list](/dataproc/reference/rest/v1/projects.regions.jobs/list) or [regions/{region}/jobs.get](/dataproc/reference/rest/v1/projects.regions.jobs/get).
+  <pre>Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -108,178 +111,211 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Output-only] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running [Apache Hadoop MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on [Apache Hadoop YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Output-only] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job config. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Optional] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-    },
-    "sparkSqlJob": { # A Cloud Dataproc job for running [Apache Spark SQL](http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+    "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "pigJob": { # A Cloud Dataproc job for running [Apache Pig](https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+    "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running [Apache Spark](http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job. **Beta** Feature: This report is available for testing purposes only. It may be changed before final release.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running [Apache PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "hiveJob": { # A Cloud Dataproc job for running [Apache Hive](https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Output-only A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
@@ -288,18 +324,25 @@
 
 <div class="method">
     <code class="details" id="delete">delete(projectId, region, jobId, x__xgafv=None)</code>
-  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.
+  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -308,182 +351,215 @@
   <pre>Gets the resource representation for a job in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Output-only] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running [Apache Hadoop MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on [Apache Hadoop YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Output-only] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job config. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Optional] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-    },
-    "sparkSqlJob": { # A Cloud Dataproc job for running [Apache Spark SQL](http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+    "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "pigJob": { # A Cloud Dataproc job for running [Apache Pig](https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+    "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running [Apache Spark](http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job. **Beta** Feature: This report is available for testing purposes only. It may be changed before final release.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running [Apache PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "hiveJob": { # A Cloud Dataproc job for running [Apache Hive](https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Output-only A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
@@ -495,189 +571,222 @@
   <pre>Lists regions/{region}/jobs in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
-  pageSize: integer, [Optional] The number of results to return in each response.
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  pageSize: integer, Optional The number of results to return in each response.
   x__xgafv: string, V1 error format.
-  pageToken: string, [Optional] The page token, returned by a previous call, to request the next page of results.
-  clusterName: string, [Optional] If set, the returned jobs list includes only jobs that were submitted to the named cluster.
-  jobStateMatcher: string, [Optional] Specifies enumerated categories of jobs to list (default = match ALL jobs).
-  filter: string, [Optional] A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax: field:value] ... or [field = value] AND [field [= value]] ... where **field** is `status.state` or `labels.[KEY]`, and `[KEY]` is a label key. **value** can be `*` to match all values. `status.state` can be either `ACTIVE` or `INACTIVE`. Only the logical `AND` operator is supported; space-separated items are treated as having an implicit `AND` operator. Example valid filters are: status.state:ACTIVE labels.env:staging labels.starred:* and status.state = ACTIVE AND labels.env = staging AND labels.starred = *
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Optional The page token, returned by a previous call, to request the next page of results.
+  clusterName: string, Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
+  jobStateMatcher: string, Optional Specifies enumerated categories of jobs to list (default = match ALL jobs).
+  filter: string, Optional A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is status.state or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be either ACTIVE or INACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND labels.env = staging AND labels.starred = *
 
 Returns:
   An object of the form:
 
     { # A list of jobs in a project.
-    "nextPageToken": "A String", # [Optional] This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the `page_token` in a subsequent ListJobsRequest.
-    "jobs": [ # [Output-only] Jobs list.
+    "nextPageToken": "A String", # Optional This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListJobsRequest</code>.
+    "jobs": [ # Output-only Jobs list.
       { # A Cloud Dataproc job resource.
-        "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-          "state": "A String", # [Output-only] A state message specifying the overall job state.
-          "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-          "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
+        "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+          "state": "A String", # Output-only A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
         },
-        "hadoopJob": { # A Cloud Dataproc job for running [Apache Hadoop MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on [Apache Hadoop YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-          "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-            "A String",
-          ],
-          "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-              "a_key": "A String",
-            },
-          },
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-            "A String",
-          ],
-          "fileUris": [ # [Optional] HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-            "A String",
-          ],
-          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-            "A String",
-          ],
-          "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-          "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-            "a_key": "A String",
-          },
-        },
-        "statusHistory": [ # [Output-only] The previous job status.
-          { # Cloud Dataproc job status.
-            "state": "A String", # [Output-only] A state message specifying the overall job state.
-            "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-            "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
-          },
-        ],
-        "placement": { # Cloud Dataproc job config. # [Required] Job information, including how, when, and where to run the job.
-          "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-          "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
-        },
-        "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-          "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-          "jobId": "A String", # [Optional] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-        },
-        "sparkSqlJob": { # A Cloud Dataproc job for running [Apache Spark SQL](http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+        "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
             "a_key": "A String",
           },
-          "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+          "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
             "a_key": "A String",
           },
         },
-        "pigJob": { # A Cloud Dataproc job for running [Apache Pig](https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+        "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
             "a_key": "A String",
           },
-          "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-          "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
             "a_key": "A String",
           },
         },
-        "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-        "labels": { # [Optional] The labels to associate with this job. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+        "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+        },
+        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+          "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+        },
+        "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+            "A String",
+          ],
+          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+              "a_key": "A String",
+            },
+          },
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+            "A String",
+          ],
+          "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
           "a_key": "A String",
         },
-        "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-        "sparkJob": { # A Cloud Dataproc job for running [Apache Spark](http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+        "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+          "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
             "A String",
           ],
-          "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
-          "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+            "A String",
+          ],
+          "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+            "A String",
+          ],
+          "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+        "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+              "a_key": "A String",
+            },
+          },
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+            "A String",
+          ],
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
             "A String",
           ],
           "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-          "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
             "a_key": "A String",
           },
         },
-        "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job. **Beta** Feature: This report is available for testing purposes only. It may be changed before final release.
-          { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
-            "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-            "state": "A String", # [Required] The application state.
-            "name": "A String", # [Required] The application name.
-            "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+          { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+            "state": "A String", # Required The application state.
+            "name": "A String", # Required The application name.
+            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
           },
         ],
-        "pysparkJob": { # A Cloud Dataproc job for running [Apache PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-          "mainPythonFileUri": "A String", # [Required] The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-            "A String",
-          ],
-          "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-              "a_key": "A String",
-            },
-          },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-            "A String",
-          ],
-          "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-            "A String",
-          ],
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-            "A String",
-          ],
-          "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-            "A String",
-          ],
-          "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-            "a_key": "A String",
-          },
+        "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+          "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
         },
-        "hiveJob": { # A Cloud Dataproc job for running [Apache Hive](https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+        "statusHistory": [ # Output-only The previous job status.
+          { # Cloud Dataproc job status.
+            "state": "A String", # Output-only A state message specifying the overall job state.
+            "stateStartTime": "A String", # Output-only The time when this state was entered.
+            "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+          },
+        ],
+        "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
             "a_key": "A String",
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-          "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
             "a_key": "A String",
           },
         },
@@ -701,184 +810,641 @@
 </div>
 
 <div class="method">
+    <code class="details" id="patch">patch(projectId, region, jobId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a job in a project.
+
+Args:
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud Dataproc job resource.
+  "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+    "state": "A String", # Output-only A state message specifying the overall job state.
+    "stateStartTime": "A String", # Output-only The time when this state was entered.
+    "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+  },
+  "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "a_key": "A String",
+    },
+    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "a_key": "A String",
+    },
+  },
+  "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "a_key": "A String",
+    },
+    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+  },
+  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+    "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+  },
+  "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "A String",
+    ],
+    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "a_key": "A String",
+  },
+  "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+  "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+    "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "A String",
+    ],
+    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "A String",
+    ],
+    "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+  "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "A String",
+    ],
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
+    "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+    { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+      "state": "A String", # Required The application state.
+      "name": "A String", # Required The application name.
+      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    },
+  ],
+  "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+    "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+  },
+  "statusHistory": [ # Output-only The previous job status.
+    { # Cloud Dataproc job status.
+      "state": "A String", # Output-only A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    },
+  ],
+  "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "a_key": "A String",
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+}
+
+  updateMask: string, Required Specifies the path, relative to <code>Job</code>, of the field to update. For example, to update the labels of a Job the <code>update_mask</code> parameter would be specified as <code>labels</code>, and the PATCH request body would specify the new value. <strong>Note:</strong> Currently, <code>labels</code> is the only field that can be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud Dataproc job resource.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    },
+    "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+        "a_key": "A String",
+      },
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "a_key": "A String",
+      },
+    },
+    "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+        "a_key": "A String",
+      },
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+      "a_key": "A String",
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Output-only A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+        "a_key": "A String",
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="submit">submit(projectId, region, body, x__xgafv=None)</code>
   <pre>Submits a job to a cluster.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Cloud Dataproc region in which to handle the request. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A request to submit a job.
-    "job": { # A Cloud Dataproc job resource. # [Required] The job resource.
-      "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-        "state": "A String", # [Output-only] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
+    "job": { # A Cloud Dataproc job resource. # Required The job resource.
+      "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+        "state": "A String", # Output-only A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
       },
-      "hadoopJob": { # A Cloud Dataproc job for running [Apache Hadoop MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on [Apache Hadoop YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-        "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "A String",
-        ],
-        "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "fileUris": [ # [Optional] HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-          "A String",
-        ],
-        "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-        "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "statusHistory": [ # [Output-only] The previous job status.
-        { # Cloud Dataproc job status.
-          "state": "A String", # [Output-only] A state message specifying the overall job state.
-          "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-          "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
-        },
-      ],
-      "placement": { # Cloud Dataproc job config. # [Required] Job information, including how, when, and where to run the job.
-        "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-        "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
-      },
-      "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-        "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-        "jobId": "A String", # [Optional] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-      },
-      "sparkSqlJob": { # A Cloud Dataproc job for running [Apache Spark SQL](http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+      "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
           "a_key": "A String",
         },
-        "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
             "A String",
           ],
         },
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
           "a_key": "A String",
         },
       },
-      "pigJob": { # A Cloud Dataproc job for running [Apache Pig](https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+      "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
           "a_key": "A String",
         },
-        "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-        "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
           "a_key": "A String",
         },
       },
-      "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-      "labels": { # [Optional] The labels to associate with this job. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+      "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+      },
+      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+        "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+      },
+      "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+          "A String",
+        ],
+        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "A String",
+        ],
+        "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
         "a_key": "A String",
       },
-      "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-      "sparkJob": { # A Cloud Dataproc job for running [Apache Spark](http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+      "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+        "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
           "A String",
         ],
-        "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
           "A String",
         ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+          "A String",
+        ],
+        "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+          "A String",
+        ],
+        "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+      "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+          "A String",
+        ],
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
           "A String",
         ],
         "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
           "a_key": "A String",
         },
       },
-      "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job. **Beta** Feature: This report is available for testing purposes only. It may be changed before final release.
-        { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
-          "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-          "state": "A String", # [Required] The application state.
-          "name": "A String", # [Required] The application name.
-          "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+          "state": "A String", # Required The application state.
+          "name": "A String", # Required The application name.
+          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
         },
       ],
-      "pysparkJob": { # A Cloud Dataproc job for running [Apache PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-        "mainPythonFileUri": "A String", # [Required] The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-          "A String",
-        ],
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-          "A String",
-        ],
-        "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-          "A String",
-        ],
-        "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-          "a_key": "A String",
-        },
+      "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+        "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
       },
-      "hiveJob": { # A Cloud Dataproc job for running [Apache Hive](https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+      "statusHistory": [ # Output-only The previous job status.
+        { # Cloud Dataproc job status.
+          "state": "A String", # Output-only A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        },
+      ],
+      "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
           "a_key": "A String",
         },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-        "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
           "a_key": "A String",
         },
       },
@@ -886,178 +1452,211 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Output-only] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running [Apache Hadoop MapReduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on [Apache Hadoop YARN](https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Output-only] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Output-only] Optional job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job config. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Optional] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-    },
-    "sparkSqlJob": { # A Cloud Dataproc job for running [Apache Spark SQL](http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
+    "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "pigJob": { # A Cloud Dataproc job for running [Apache Pig](https://pig.apache.org/) queries on YARN. # Job is a Pig job.
+    "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running [Apache Spark](http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job. **Beta** Feature: This report is available for testing purposes only. It may be changed before final release.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta Feature**: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running [Apache PySpark](https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfig": { # The runtime logging config of the job. # [Optional] The runtime log config for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "hiveJob": { # A Cloud Dataproc job for running [Apache Hive](https://hive.apache.org/) queries on YARN. # Job is a Hive job.
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Output-only A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
diff --git a/docs/dyn/dataproc_v1.projects.regions.operations.html b/docs/dyn/dataproc_v1.projects.regions.operations.html
index 80af957..7f5a22f 100644
--- a/docs/dyn/dataproc_v1.projects.regions.operations.html
+++ b/docs/dyn/dataproc_v1.projects.regions.operations.html
@@ -76,47 +76,61 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</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="cancel">cancel(name, x__xgafv=None)</code>
-  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.
 
 Args:
   name: string, The name of the operation resource to be cancelled. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(name, x__xgafv=None)</code>
-  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.
 
 Args:
   name: string, The name of the operation resource to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -127,15 +141,25 @@
 Args:
   name: string, The name of the operation resource. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -144,17 +168,17 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
 
 Args:
   name: string, The name of the operation collection. (required)
@@ -162,17 +186,28 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -181,14 +216,13 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+        "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataproc_v1alpha1.operations.html b/docs/dyn/dataproc_v1alpha1.operations.html
index fd4e203..3c647d6 100644
--- a/docs/dyn/dataproc_v1alpha1.operations.html
+++ b/docs/dyn/dataproc_v1alpha1.operations.html
@@ -76,7 +76,7 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients may use [Operations.GetOperation] or other methods to check whether the cancellation succeeded or the operation completed despite cancellation.</p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients may use Operations.GetOperation or other methods to check whether the cancellation succeeded or the operation completed despite cancellation.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a long-running operation. It indicates the client is no longer interested in the operation result. It does not cancel the operation.</p>
@@ -85,14 +85,14 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients may use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.</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="cancel">cancel(name, body, x__xgafv=None)</code>
-  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients may use [Operations.GetOperation] or other methods to check whether the cancellation succeeded or the operation completed despite cancellation.
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients may use Operations.GetOperation or other methods to check whether the cancellation succeeded or the operation completed despite cancellation.
 
 Args:
   name: string, The name of the operation resource to be cancelled. (required)
@@ -103,11 +103,18 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -118,11 +125,18 @@
 Args:
   name: string, The name of the operation resource to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -133,15 +147,30 @@
 Args:
   name: string, The operation resource name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # An asynchronous operation in a project that runs over a given cluster. Used to track the progress of a user request that is running asynchronously. Examples include creating a cluster, updating a cluster, and deleting a cluster.
-    "response": { # The operation response. If the called method returns no data on success, the response is `google.protobuf.Empty`. If the called method is `Get`,`Create` or `Update`, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is `TakeSnapshot()`, the response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
+    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the result is available. If false, the operation is still in progress.
+    "response": { # The operation response. If the called method returns no data on success, the response is google.protobuf.Empty. If the called method is Get,Create or Update, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is TakeSnapshot(), the response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The name of the operation resource, in the format projects/project_id/operations/operation_id
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -150,24 +179,22 @@
         },
       ],
     },
-    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the `result` is available. If false, the operation is still in progress.
-    "name": "A String", # The name of the operation resource, in the format projects/[project_id]/operations/[operation_id]
-    "metadata": { # Service-specific metadata associated with the operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.
 
 Args:
   name: string, The operation collection name. (required)
   pageSize: integer, The standard List page size.
-  filter: string, [Required] A JSON object that contains filters for the list operation, in the format {"key1":"value1","key2":"value2", ..., }. Possible keys include project_id, cluster_name, and operation_state_matcher. If project_id is set, requests the list of operations that belong to the specified Google Cloud Platform project ID. This key is required. If cluster_name is set, requests the list of operations that were submitted to the specified cluster name. This key is optional. If operation_state_matcher is set, requests the list of operations that match one of the following status options: ALL, ACTIVE, or NON_ACTIVE.
+  filter: string, Required A JSON object that contains filters for the list operation, in the format {"key1":"value1","key2":"value2", ..., }. Possible keys include project_id, cluster_name, and operation_state_matcher.If project_id is set, requests the list of operations that belong to the specified Google Cloud Platform project ID. This key is required.If cluster_name is set, requests the list of operations that were submitted to the specified cluster name. This key is optional.If operation_state_matcher is set, requests the list of operations that match one of the following status options: ALL, ACTIVE, or NON_ACTIVE.
   pageToken: string, The standard List page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -175,10 +202,22 @@
     { # The response message for Operations.ListOperations.
     "operations": [ # A list of operations that match the specified filter in the request.
       { # An asynchronous operation in a project that runs over a given cluster. Used to track the progress of a user request that is running asynchronously. Examples include creating a cluster, updating a cluster, and deleting a cluster.
-        "response": { # The operation response. If the called method returns no data on success, the response is `google.protobuf.Empty`. If the called method is `Get`,`Create` or `Update`, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is `TakeSnapshot()`, the response type is `TakeSnapshotResponse`.
+        "metadata": { # Service-specific metadata associated with the operation.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
+        "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the result is available. If false, the operation is still in progress.
+        "response": { # The operation response. If the called method returns no data on success, the response is google.protobuf.Empty. If the called method is Get,Create or Update, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is TakeSnapshot(), the response type is TakeSnapshotResponse.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The name of the operation resource, in the format projects/project_id/operations/operation_id
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -187,11 +226,6 @@
             },
           ],
         },
-        "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the `result` is available. If false, the operation is still in progress.
-        "name": "A String", # The name of the operation resource, in the format projects/[project_id]/operations/[operation_id]
-        "metadata": { # Service-specific metadata associated with the operation.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
       },
     ],
     "nextPageToken": "A String", # The standard List next-page token.
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
index 615cf0a..3836287 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
@@ -98,28 +98,151 @@
   <pre>Request to create a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-    "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+    "status": { # The status of a cluster and its instances. # Output-only Cluster status.
       "state": "A String", # The cluster's state.
       "stateStartTime": "A String", # Time when this state was entered.
       "detail": "A String", # Optional details of cluster's state.
     },
-    "statusHistory": [ # [Output-only] Previous cluster statuses.
-      { # The status of a cluster and its instances.
-        "state": "A String", # The cluster's state.
-        "stateStartTime": "A String", # Time when this state was entered.
-        "detail": "A String", # Optional details of cluster's state.
+    "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
+      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+        "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression 0-9+.0-9+. If unspecified it will default to latest version.
+        "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+          "a_key": "A String",
+        },
       },
-    ],
-    "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-    "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+      "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
+        "A String",
+      ],
+      "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
+        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
+        "tags": [ # The Google Compute Engine tags to add to all instances.
+          "A String",
+        ],
+        "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+            # roles/logging.logWriter
+            # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+        "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0.
+        "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+          "A String",
+        ],
+        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+          "a_key": "A String",
+        },
+      },
+      "masterName": "A String", # Deprecated The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
+      "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
+      "gceConfiguration": { # Deprecated Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Deprecated The Google Compute Engine configuration settings for cluster resources.
+        "machineTypeUri": "A String", # Deprecated The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "networkUri": "A String", # Deprecated The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/project_id /zones/us-east1-a/default".
+        "zoneUri": "A String", # Deprecated The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+        "serviceAccountScopes": [ # Deprecated The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+          "A String",
+        ],
+        "imageUri": "A String", # Deprecated The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+      },
+      "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of master node disk options.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+      "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+          # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+          # if [[ "${ROLE}" == 'Master' ]]; then
+          #   ... master specific actions ...
+          # else
+          #   ... worker specific actions ...
+          # fi
+        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+          "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+          "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+        },
+      ],
+      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+    },
+    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
       "a_key": "A String",
     },
     "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -130,122 +253,41 @@
         "a_key": "A String",
       },
     },
-    "configuration": { # The cluster configuration. # [Required] The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
-      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-        "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified it will default to latest version.
-        "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-          "a_key": "A String",
-        },
+    "statusHistory": [ # Output-only Previous cluster statuses.
+      { # The status of a cluster and its instances.
+        "state": "A String", # The cluster's state.
+        "stateStartTime": "A String", # Time when this state was entered.
+        "detail": "A String", # Optional details of cluster's state.
       },
-      "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of worker node disk options.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "workers": [ # [Deprecated] The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
-        "A String",
-      ],
-      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Optional] The shared Google Compute Engine configuration settings for all instances in a cluster.
-        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `compute.googleapis.com/projects/[project_id]/regions/global/default`.
-        "tags": [ # The Google Compute Engine tags to add to all instances.
-          "A String",
-        ],
-        "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0`.
-        "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-          "A String",
-        ],
-        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-          "a_key": "A String",
-        },
-      },
-      "masterName": "A String", # [Deprecated] The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
-      "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
-      "gceConfiguration": { # [Deprecated] Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Deprecated] The Google Compute Engine configuration settings for cluster resources.
-        "machineTypeUri": "A String", # [Deprecated] The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "networkUri": "A String", # [Deprecated] The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/default".
-        "zoneUri": "A String", # [Deprecated] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-        "serviceAccountScopes": [ # [Deprecated] The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-          "A String",
-        ],
-        "imageUri": "A String", # [Deprecated] The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-      },
-      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-      "numWorkers": 42, # [Deprecated] The number of worker nodes in the cluster.
-      "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-          "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-          "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-        },
-      ],
-      "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of master node disk options.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-    },
-    "createTime": "A String", # [Output-only] The timestamp of cluster creation.
+    ],
+    "createTime": "A String", # Output-only The timestamp of cluster creation.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # An asynchronous operation in a project that runs over a given cluster. Used to track the progress of a user request that is running asynchronously. Examples include creating a cluster, updating a cluster, and deleting a cluster.
-    "response": { # The operation response. If the called method returns no data on success, the response is `google.protobuf.Empty`. If the called method is `Get`,`Create` or `Update`, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is `TakeSnapshot()`, the response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
+    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the result is available. If false, the operation is still in progress.
+    "response": { # The operation response. If the called method returns no data on success, the response is google.protobuf.Empty. If the called method is Get,Create or Update, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is TakeSnapshot(), the response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The name of the operation resource, in the format projects/project_id/operations/operation_id
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -254,11 +296,6 @@
         },
       ],
     },
-    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the `result` is available. If false, the operation is still in progress.
-    "name": "A String", # The name of the operation resource, in the format projects/[project_id]/operations/[operation_id]
-    "metadata": { # Service-specific metadata associated with the operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
@@ -267,19 +304,34 @@
   <pre>Request to delete a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # An asynchronous operation in a project that runs over a given cluster. Used to track the progress of a user request that is running asynchronously. Examples include creating a cluster, updating a cluster, and deleting a cluster.
-    "response": { # The operation response. If the called method returns no data on success, the response is `google.protobuf.Empty`. If the called method is `Get`,`Create` or `Update`, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is `TakeSnapshot()`, the response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
+    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the result is available. If false, the operation is still in progress.
+    "response": { # The operation response. If the called method returns no data on success, the response is google.protobuf.Empty. If the called method is Get,Create or Update, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is TakeSnapshot(), the response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The name of the operation resource, in the format projects/project_id/operations/operation_id
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -288,11 +340,6 @@
         },
       ],
     },
-    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the `result` is available. If false, the operation is still in progress.
-    "name": "A String", # The name of the operation resource, in the format projects/[project_id]/operations/[operation_id]
-    "metadata": { # Service-specific metadata associated with the operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
@@ -301,31 +348,157 @@
   <pre>Request to get the resource representation for a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-      "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+      "status": { # The status of a cluster and its instances. # Output-only Cluster status.
         "state": "A String", # The cluster's state.
         "stateStartTime": "A String", # Time when this state was entered.
         "detail": "A String", # Optional details of cluster's state.
       },
-      "statusHistory": [ # [Output-only] Previous cluster statuses.
-        { # The status of a cluster and its instances.
-          "state": "A String", # The cluster's state.
-          "stateStartTime": "A String", # Time when this state was entered.
-          "detail": "A String", # Optional details of cluster's state.
+      "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
+        "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+          "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression 0-9+.0-9+. If unspecified it will default to latest version.
+          "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+            "a_key": "A String",
+          },
         },
-      ],
-      "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-      "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-      "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-      "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+        "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
+          "A String",
+        ],
+        "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+        "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
+          "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+          "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
+          "tags": [ # The Google Compute Engine tags to add to all instances.
+            "A String",
+          ],
+          "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+              # roles/logging.logWriter
+              # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+          "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+          "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0.
+          "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+            "A String",
+          ],
+          "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+            "a_key": "A String",
+          },
+        },
+        "masterName": "A String", # Deprecated The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
+        "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
+        "gceConfiguration": { # Deprecated Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Deprecated The Google Compute Engine configuration settings for cluster resources.
+          "machineTypeUri": "A String", # Deprecated The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+          "networkUri": "A String", # Deprecated The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/project_id /zones/us-east1-a/default".
+          "zoneUri": "A String", # Deprecated The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+          "serviceAccountScopes": [ # Deprecated The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+            "A String",
+          ],
+          "imageUri": "A String", # Deprecated The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        },
+        "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of master node disk options.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+            "A String",
+          ],
+          "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+          "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+            { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+              "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+              "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+            },
+          ],
+          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+            "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+            "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+          },
+          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+            "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+            "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+          },
+        },
+        "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+            # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+            # if [[ "${ROLE}" == 'Master' ]]; then
+            #   ... master specific actions ...
+            # else
+            #   ... worker specific actions ...
+            # fi
+          { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+            "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+            "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+          },
+        ],
+        "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+            "A String",
+          ],
+          "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+          "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+            { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+              "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+              "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+            },
+          ],
+          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+            "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+            "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+          },
+          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+            "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+            "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+          },
+        },
+        "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+            "A String",
+          ],
+          "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+          "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+            { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+              "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+              "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+            },
+          ],
+          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+            "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+            "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+          },
+          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+            "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+            "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+          },
+        },
+      },
+      "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+      "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+      "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+      "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
         "a_key": "A String",
       },
       "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -336,110 +509,14 @@
           "a_key": "A String",
         },
       },
-      "configuration": { # The cluster configuration. # [Required] The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
-        "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-          "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified it will default to latest version.
-          "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-            "a_key": "A String",
-          },
+      "statusHistory": [ # Output-only Previous cluster statuses.
+        { # The status of a cluster and its instances.
+          "state": "A String", # The cluster's state.
+          "stateStartTime": "A String", # Time when this state was entered.
+          "detail": "A String", # Optional details of cluster's state.
         },
-        "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of worker node disk options.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "workers": [ # [Deprecated] The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
-          "A String",
-        ],
-        "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-            "A String",
-          ],
-          "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-            "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-            "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-          },
-          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-            "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-            "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-          },
-        },
-        "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Optional] The shared Google Compute Engine configuration settings for all instances in a cluster.
-          "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-          "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `compute.googleapis.com/projects/[project_id]/regions/global/default`.
-          "tags": [ # The Google Compute Engine tags to add to all instances.
-            "A String",
-          ],
-          "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-          "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0`.
-          "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-            "A String",
-          ],
-          "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-            "a_key": "A String",
-          },
-        },
-        "masterName": "A String", # [Deprecated] The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
-        "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
-        "gceConfiguration": { # [Deprecated] Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Deprecated] The Google Compute Engine configuration settings for cluster resources.
-          "machineTypeUri": "A String", # [Deprecated] The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-          "networkUri": "A String", # [Deprecated] The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/default".
-          "zoneUri": "A String", # [Deprecated] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-          "serviceAccountScopes": [ # [Deprecated] The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-            "A String",
-          ],
-          "imageUri": "A String", # [Deprecated] The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        },
-        "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-            "A String",
-          ],
-          "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-            "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-            "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-          },
-          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-            "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-            "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-          },
-        },
-        "numWorkers": 42, # [Deprecated] The number of worker nodes in the cluster.
-        "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-          { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-            "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-            "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-          },
-        ],
-        "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of master node disk options.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-          "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-          "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-          "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-            "A String",
-          ],
-          "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-          "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-          "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-            "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-            "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-          },
-          "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-            "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-            "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-          },
-        },
-      },
-      "createTime": "A String", # [Output-only] The timestamp of cluster creation.
+      ],
+      "createTime": "A String", # Output-only The timestamp of cluster creation.
     }</pre>
 </div>
 
@@ -448,36 +525,162 @@
   <pre>Request a list of all regions/{region}/clusters in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
   pageSize: integer, The standard List page size.
-  filter: string, [Optional] A filter constraining which clusters to list. Valid filters contain label terms such as: labels.key1 = val1 AND (-labels.k2 = val2 OR labels.k3 = val3)
+  filter: string, Optional A filter constraining which clusters to list. Valid filters contain label terms such as: labels.key1 = val1 AND (-labels.k2 = val2 OR labels.k3 = val3)
   pageToken: string, The standard List page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The list of all clusters in a project.
     "nextPageToken": "A String", # The standard List next-page token.
-    "clusters": [ # [Output-only] The clusters in the project.
+    "clusters": [ # Output-only The clusters in the project.
       { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-          "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+          "status": { # The status of a cluster and its instances. # Output-only Cluster status.
             "state": "A String", # The cluster's state.
             "stateStartTime": "A String", # Time when this state was entered.
             "detail": "A String", # Optional details of cluster's state.
           },
-          "statusHistory": [ # [Output-only] Previous cluster statuses.
-            { # The status of a cluster and its instances.
-              "state": "A String", # The cluster's state.
-              "stateStartTime": "A String", # Time when this state was entered.
-              "detail": "A String", # Optional details of cluster's state.
+          "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
+            "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+              "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression 0-9+.0-9+. If unspecified it will default to latest version.
+              "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+                "a_key": "A String",
+              },
             },
-          ],
-          "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-          "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-          "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-          "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+            "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
+              "A String",
+            ],
+            "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+            "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
+              "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+              "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
+              "tags": [ # The Google Compute Engine tags to add to all instances.
+                "A String",
+              ],
+              "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+                  # roles/logging.logWriter
+                  # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+              "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+              "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0.
+              "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+                "A String",
+              ],
+              "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+                "a_key": "A String",
+              },
+            },
+            "masterName": "A String", # Deprecated The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
+            "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
+            "gceConfiguration": { # Deprecated Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Deprecated The Google Compute Engine configuration settings for cluster resources.
+              "machineTypeUri": "A String", # Deprecated The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+              "networkUri": "A String", # Deprecated The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/project_id /zones/us-east1-a/default".
+              "zoneUri": "A String", # Deprecated The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+              "serviceAccountScopes": [ # Deprecated The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+                "A String",
+              ],
+              "imageUri": "A String", # Deprecated The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+            },
+            "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of master node disk options.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+                "A String",
+              ],
+              "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+              "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+                { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                  "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                  "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+                },
+              ],
+              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+                "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+                "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+              },
+              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+                "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+                "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+              },
+            },
+            "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+                # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+                # if [[ "${ROLE}" == 'Master' ]]; then
+                #   ... master specific actions ...
+                # else
+                #   ... worker specific actions ...
+                # fi
+              { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+                "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+                "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+              },
+            ],
+            "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+                "A String",
+              ],
+              "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+              "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+                { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                  "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                  "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+                },
+              ],
+              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+                "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+                "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+              },
+              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+                "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+                "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+              },
+            },
+            "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+                "A String",
+              ],
+              "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+              "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+                { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                  "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                  "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+                },
+              ],
+              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+                "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+                "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+              },
+              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+                "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+                "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+              },
+            },
+          },
+          "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+          "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+          "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+          "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
             "a_key": "A String",
           },
           "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -488,110 +691,14 @@
               "a_key": "A String",
             },
           },
-          "configuration": { # The cluster configuration. # [Required] The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
-            "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-              "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified it will default to latest version.
-              "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-                "a_key": "A String",
-              },
+          "statusHistory": [ # Output-only Previous cluster statuses.
+            { # The status of a cluster and its instances.
+              "state": "A String", # The cluster's state.
+              "stateStartTime": "A String", # Time when this state was entered.
+              "detail": "A String", # Optional details of cluster's state.
             },
-            "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of worker node disk options.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-            },
-            "workers": [ # [Deprecated] The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
-              "A String",
-            ],
-            "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-                "A String",
-              ],
-              "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-                "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-                "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-              },
-              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-                "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-                "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-              },
-            },
-            "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Optional] The shared Google Compute Engine configuration settings for all instances in a cluster.
-              "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-              "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `compute.googleapis.com/projects/[project_id]/regions/global/default`.
-              "tags": [ # The Google Compute Engine tags to add to all instances.
-                "A String",
-              ],
-              "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-              "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0`.
-              "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-                "A String",
-              ],
-              "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-                "a_key": "A String",
-              },
-            },
-            "masterName": "A String", # [Deprecated] The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
-            "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
-            "gceConfiguration": { # [Deprecated] Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Deprecated] The Google Compute Engine configuration settings for cluster resources.
-              "machineTypeUri": "A String", # [Deprecated] The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-              "networkUri": "A String", # [Deprecated] The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/default".
-              "zoneUri": "A String", # [Deprecated] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-              "serviceAccountScopes": [ # [Deprecated] The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-                "A String",
-              ],
-              "imageUri": "A String", # [Deprecated] The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-            },
-            "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-                "A String",
-              ],
-              "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-                "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-                "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-              },
-              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-                "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-                "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-              },
-            },
-            "numWorkers": 42, # [Deprecated] The number of worker nodes in the cluster.
-            "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-              { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-                "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-                "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-              },
-            ],
-            "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of master node disk options.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-            },
-            "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-              "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-              "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-              "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-                "A String",
-              ],
-              "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-              "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-              "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-                "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-                "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-              },
-              "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-                "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-                "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-              },
-            },
-          },
-          "createTime": "A String", # [Output-only] The timestamp of cluster creation.
+          ],
+          "createTime": "A String", # Output-only The timestamp of cluster creation.
         },
     ],
   }</pre>
@@ -616,29 +723,152 @@
   <pre>Request to update a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project the cluster belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project the cluster belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  clusterName: string, Required The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-    "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+    "status": { # The status of a cluster and its instances. # Output-only Cluster status.
       "state": "A String", # The cluster's state.
       "stateStartTime": "A String", # Time when this state was entered.
       "detail": "A String", # Optional details of cluster's state.
     },
-    "statusHistory": [ # [Output-only] Previous cluster statuses.
-      { # The status of a cluster and its instances.
-        "state": "A String", # The cluster's state.
-        "stateStartTime": "A String", # Time when this state was entered.
-        "detail": "A String", # Optional details of cluster's state.
+    "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
+      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+        "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression 0-9+.0-9+. If unspecified it will default to latest version.
+        "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+          "a_key": "A String",
+        },
       },
-    ],
-    "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-    "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+      "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
+        "A String",
+      ],
+      "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
+        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
+        "tags": [ # The Google Compute Engine tags to add to all instances.
+          "A String",
+        ],
+        "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+            # roles/logging.logWriter
+            # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+        "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0.
+        "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+          "A String",
+        ],
+        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+          "a_key": "A String",
+        },
+      },
+      "masterName": "A String", # Deprecated The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
+      "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
+      "gceConfiguration": { # Deprecated Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Deprecated The Google Compute Engine configuration settings for cluster resources.
+        "machineTypeUri": "A String", # Deprecated The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "networkUri": "A String", # Deprecated The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/project_id /zones/us-east1-a/default".
+        "zoneUri": "A String", # Deprecated The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a".
+        "serviceAccountScopes": [ # Deprecated The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
+          "A String",
+        ],
+        "imageUri": "A String", # Deprecated The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+      },
+      "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of master node disk options.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+      "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+          # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+          # if [[ "${ROLE}" == 'Master' ]]; then
+          #   ... master specific actions ...
+          # else
+          #   ... worker specific actions ...
+          # fi
+        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+          "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+          "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+        },
+      ],
+      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
+    },
+    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
       "a_key": "A String",
     },
     "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -649,123 +879,50 @@
         "a_key": "A String",
       },
     },
-    "configuration": { # The cluster configuration. # [Required] The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
-      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-        "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified it will default to latest version.
-        "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-          "a_key": "A String",
-        },
+    "statusHistory": [ # Output-only Previous cluster statuses.
+      { # The status of a cluster and its instances.
+        "state": "A String", # The cluster's state.
+        "stateStartTime": "A String", # Time when this state was entered.
+        "detail": "A String", # Optional details of cluster's state.
       },
-      "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of worker node disk options.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "workers": [ # [Deprecated] The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
-        "A String",
-      ],
-      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Optional] The shared Google Compute Engine configuration settings for all instances in a cluster.
-        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `compute.googleapis.com/projects/[project_id]/regions/global/default`.
-        "tags": [ # The Google Compute Engine tags to add to all instances.
-          "A String",
-        ],
-        "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `compute.googleapis.com/projects/[project_id]/regions/us-east1/sub0`.
-        "serviceAccountScopes": [ # The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-          "A String",
-        ],
-        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-          "a_key": "A String",
-        },
-      },
-      "masterName": "A String", # [Deprecated] The Master's hostname. Dataproc derives the name from cluster_name if not set by user (recommended practice is to let Dataproc derive the name). Derived master name example: hadoop-m.
-      "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, then it will create and manage this project-level, per-location bucket for you.
-      "gceConfiguration": { # [Deprecated] Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Deprecated] The Google Compute Engine configuration settings for cluster resources.
-        "machineTypeUri": "A String", # [Deprecated] The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "networkUri": "A String", # [Deprecated] The Google Compute Engine network to be used for machine communications. Inbound SSH connections are necessary to complete cluster configuration. Example "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/default".
-        "zoneUri": "A String", # [Deprecated] The zone where the Google Compute Engine cluster will be located. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a".
-        "serviceAccountScopes": [ # [Deprecated] The service account scopes included in Google Compute Engine instances. Must include devstorage.full_control to enable the Google Cloud Storage connector. Example "auth.googleapis.com/compute" and "auth.googleapis.com/devstorage.full_control".
-          "A String",
-        ],
-        "imageUri": "A String", # [Deprecated] The Google Compute Engine image resource used for cluster instances. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-      },
-      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-      "numWorkers": 42, # [Deprecated] The number of worker nodes in the cluster.
-      "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-          "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-          "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-        },
-      ],
-      "masterDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # [Deprecated] The configuration settings of master node disk options.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/[project_id] /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of Instance Group Manager managing this group.
-        },
-      },
-    },
-    "createTime": "A String", # [Output-only] The timestamp of cluster creation.
+    ],
+    "createTime": "A String", # Output-only The timestamp of cluster creation.
   }
 
-  updateMask: string, [Required] Specifies the path, relative to Cluster, of the field to update. For example, to change the number of workers in a cluster to 5, the update_mask parameter would be specified as "configuration.worker_configuration.num_instances," and the PATCH request body would specify the new value, as follows: { "configuration":{ "workerConfiguration":{ "numInstances":"5" } } } Note: Currently, configuration.worker_configuration.num_instances is the only field that can be updated.
+  updateMask: string, Required Specifies the path, relative to <code>Cluster</code>, of the field to update. For example, to change the number of workers in a cluster to 5, the <code>update_mask</code> parameter would be specified as <code>"configuration.worker_configuration.num_instances,"</code> and the PATCH request body would specify the new value, as follows:
+{
+  "configuration":{
+    "workerConfiguration":{
+      "numInstances":"5"
+    }
+  }
+}
+<strong>Note:</strong> Currently, <code>configuration.worker_configuration.num_instances</code> is the only field that can be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # An asynchronous operation in a project that runs over a given cluster. Used to track the progress of a user request that is running asynchronously. Examples include creating a cluster, updating a cluster, and deleting a cluster.
-    "response": { # The operation response. If the called method returns no data on success, the response is `google.protobuf.Empty`. If the called method is `Get`,`Create` or `Update`, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is `TakeSnapshot()`, the response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
+    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the result is available. If false, the operation is still in progress.
+    "response": { # The operation response. If the called method returns no data on success, the response is google.protobuf.Empty. If the called method is Get,Create or Update, the response is the resource. For all other methods, the response type is a concatenation of the method name and "Response". For example, if the called method is TakeSnapshot(), the response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The name of the operation resource, in the format projects/project_id/operations/operation_id
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -774,11 +931,6 @@
         },
       ],
     },
-    "done": True or False, # Indicates if the operation is done. If true, the operation is complete and the `result` is available. If false, the operation is still in progress.
-    "name": "A String", # The name of the operation resource, in the format projects/[project_id]/operations/[operation_id]
-    "metadata": { # Service-specific metadata associated with the operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
index fd8ebb2..298b4ee 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
@@ -79,11 +79,20 @@
 <p class="firstline">Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs:list or regions/{region}/jobs:get.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, region, jobId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.</p>
+<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, region, jobId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the resource representation for a job in a project.</p>
 <p class="toc_element">
+  <code><a href="#list">list(projectId, region, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists regions/{region}/jobs in a project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(projectId, region, jobId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a job in a project.</p>
+<p class="toc_element">
   <code><a href="#submit">submit(projectId, region, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Submits a job to a cluster.</p>
 <h3>Method Details</h3>
@@ -92,9 +101,9 @@
   <pre>Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs:list or regions/{region}/jobs:get.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -102,388 +111,454 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "insertTime": "A String", # The time of the job request.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
       "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
       "endTime": "A String", # The time when the job completed.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar hdfs:/tmp/test-samples/custom-wordcount.jar file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "insertTime": "A String", # The time of the job request.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-        "startTime": "A String", # The time when the server started the job.
-        "endTime": "A String", # The time when the job completed.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 512 characters.
-    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "driverOutputUri": "A String", # [Output-only] A URI pointing to the location of the mixed stdout/stderr of the job's driver program—for example, gs://sysbucket123/foo-cluster/jobid-123/driver/output.
-    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: "name=[value]").
-        "a_key": "A String",
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-        "A String",
-      ],
-      "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-          "A String",
-        ],
-      },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
       "a_key": "A String",
     },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "name": "A String", # Required The application name.
+      },
+    ],
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of Yarn applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
+        "endTime": "A String", # The time when the job completed.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(projectId, region, jobId, x__xgafv=None)</code>
-  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.
+  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "insertTime": "A String", # The time of the job request.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
       "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
       "endTime": "A String", # The time when the job completed.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar hdfs:/tmp/test-samples/custom-wordcount.jar file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "insertTime": "A String", # The time of the job request.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-        "startTime": "A String", # The time when the server started the job.
-        "endTime": "A String", # The time when the job completed.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 512 characters.
-    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "driverOutputUri": "A String", # [Output-only] A URI pointing to the location of the mixed stdout/stderr of the job's driver program—for example, gs://sysbucket123/foo-cluster/jobid-123/driver/output.
-    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: "name=[value]").
-        "a_key": "A String",
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-        "A String",
-      ],
-      "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-          "A String",
-        ],
-      },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
       "a_key": "A String",
     },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "name": "A String", # Required The application name.
+      },
+    ],
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of Yarn applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
+        "endTime": "A String", # The time when the job completed.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
@@ -492,195 +567,934 @@
   <pre>Gets the resource representation for a job in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "insertTime": "A String", # The time of the job request.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
       "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
       "endTime": "A String", # The time when the job completed.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar hdfs:/tmp/test-samples/custom-wordcount.jar file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "insertTime": "A String", # The time of the job request.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-        "startTime": "A String", # The time when the server started the job.
-        "endTime": "A String", # The time when the job completed.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 512 characters.
-    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "driverOutputUri": "A String", # [Output-only] A URI pointing to the location of the mixed stdout/stderr of the job's driver program—for example, gs://sysbucket123/foo-cluster/jobid-123/driver/output.
-    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: "name=[value]").
-        "a_key": "A String",
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-        "A String",
-      ],
-      "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-          "A String",
-        ],
-      },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
       "a_key": "A String",
     },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "name": "A String", # Required The application name.
+      },
+    ],
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of Yarn applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
+        "endTime": "A String", # The time when the job completed.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, region, body, x__xgafv=None)</code>
+  <pre>Lists regions/{region}/jobs in a project.
+
+Args:
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to list jobs in a project.
+    "filter": "A String", # Optional A filter constraining which jobs to list. Valid filters contain job state and label terms such as: labels.key1 = val1 AND (labels.k2 = val2 OR labels.k3 = val3)
+    "pageToken": "A String", # Optional The page token, returned by a previous call, to request the next page of results.
+    "clusterName": "A String", # Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
+    "jobStateMatcher": "A String", # Optional Specifies enumerated categories of jobs to list.
+    "pageSize": 42, # Optional The number of results to return in each response.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A response to a request to list jobs in a project.
+    "nextPageToken": "A String", # Optional This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListJobsRequest</code>.
+    "jobs": [ # Output-only Jobs list.
+      { # A Cloud Dataproc job resource.
+        "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "startTime": "A String", # The time when the server started the job.
+          "state": "A String", # Required A state message specifying the overall job state.
+          "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+          "insertTime": "A String", # The time of the job request.
+          "endTime": "A String", # The time when the job completed.
+        },
+        "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+          "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+            "a_key": "A String",
+          },
+          "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+            "A String",
+          ],
+          "queryList": { # A list of queries to run on a cluster. # A list of queries.
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
+              "A String",
+            ],
+          },
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
+          "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+            "a_key": "A String",
+          },
+        },
+        "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+          "a_key": "A String",
+        },
+        "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+          { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+            "state": "A String", # Required The application state.
+            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+            "name": "A String", # Required The application name.
+          },
+        ],
+        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+          "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+        },
+        "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+            "A String",
+          ],
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+            "A String",
+          ],
+          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+        "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+          "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+            "a_key": "A String",
+          },
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+            "A String",
+          ],
+          "queryList": { # A list of queries to run on a cluster. # A list of queries.
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
+              "A String",
+            ],
+          },
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
+          "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+        "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+          "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+            "A String",
+          ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+            "A String",
+          ],
+          "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+            "A String",
+          ],
+          "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+        "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+        "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+            "A String",
+          ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+            "A String",
+          ],
+          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+          "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+        "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+          "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+        },
+        "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+        },
+        "statusHistory": [ # Output-only The previous job status.
+          { # Cloud Dataproc job status.
+            "stateStartTime": "A String", # Output-only The time when this state was entered.
+            "startTime": "A String", # The time when the server started the job.
+            "state": "A String", # Required A state message specifying the overall job state.
+            "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+            "insertTime": "A String", # The time of the job request.
+            "endTime": "A String", # The time when the job completed.
+          },
+        ],
+        "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+          "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+            "a_key": "A String",
+          },
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+            "A String",
+          ],
+          "queryList": { # A list of queries to run on a cluster. # A list of queries.
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
+              "A String",
+            ],
+          },
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+      },
+    ],
+  }</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, region, jobId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a job in a project.
+
+Args:
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
+  jobId: string, Required The job ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud Dataproc job resource.
+  "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+    "stateStartTime": "A String", # Output-only The time when this state was entered.
+    "startTime": "A String", # The time when the server started the job.
+    "state": "A String", # Required A state message specifying the overall job state.
+    "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+    "insertTime": "A String", # The time of the job request.
+    "endTime": "A String", # The time when the job completed.
+  },
+  "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "a_key": "A String",
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
+    "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "a_key": "A String",
+    },
+  },
+  "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+    "a_key": "A String",
+  },
+  "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+    { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+      "state": "A String", # Required The application state.
+      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      "name": "A String", # Required The application name.
+    },
+  ],
+  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+    "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+  },
+  "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "A String",
+    ],
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+  "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+      "a_key": "A String",
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
+    "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+  "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+    "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "A String",
+    ],
+    "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+  "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+  "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+    "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+  "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+    "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+  },
+  "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+  },
+  "statusHistory": [ # Output-only The previous job status.
+    { # Cloud Dataproc job status.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
+      "endTime": "A String", # The time when the job completed.
+    },
+  ],
+  "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+      "a_key": "A String",
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+}
+
+  updateMask: string, Required Specifies the path, relative to <code>Job</code>, of the field to update. For example, to update the labels of a Job the <code>update_mask</code> parameter would be specified as <code>labels</code>, and the PATCH request body would specify the new value. <strong>Note:</strong> Currently, <code>labels</code> is the only field that can be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud Dataproc job resource.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
+      "endTime": "A String", # The time when the job completed.
+    },
+    "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+        "a_key": "A String",
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "name": "A String", # Required The application name.
+      },
+    ],
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
+        "endTime": "A String", # The time when the job completed.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+        "a_key": "A String",
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
@@ -689,382 +1503,445 @@
   <pre>Submits a job to a cluster.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, [Required] The Dataproc region in which to handle the request. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required The Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A job submission request.
-    "job": { # A Cloud Dataproc job resource. # [Required] The job resource.
-      "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "insertTime": "A String", # The time of the job request.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "job": { # A Cloud Dataproc job resource. # Required The job resource.
+      "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
         "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
         "endTime": "A String", # The time when the job completed.
       },
-      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-        "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "A String",
-        ],
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-          "A String",
-        ],
-        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar hdfs:/tmp/test-samples/custom-wordcount.jar file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
-        "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "statusHistory": [ # [Output-only] The previous job status.
-        { # Cloud Dataproc job status.
-          "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-          "insertTime": "A String", # The time of the job request.
-          "state": "A String", # [Required] A state message specifying the overall job state.
-          "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-          "startTime": "A String", # The time when the server started the job.
-          "endTime": "A String", # The time when the job completed.
-        },
-      ],
-      "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-        "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-        "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-      },
-      "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-        "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-        "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 512 characters.
-      },
       "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
           "a_key": "A String",
         },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
             "A String",
           ],
         },
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
             "a_key": "A String",
           },
         },
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
           "a_key": "A String",
         },
       },
-      "driverOutputUri": "A String", # [Output-only] A URI pointing to the location of the mixed stdout/stderr of the job's driver program—for example, gs://sysbucket123/foo-cluster/jobid-123/driver/output.
-      "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-        "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: "name=[value]").
-          "a_key": "A String",
-        },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-          "A String",
-        ],
-        "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-            "A String",
-          ],
-        },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-            "a_key": "A String",
-          },
-        },
-        "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-      "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+      "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
         "a_key": "A String",
       },
-      "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-      "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-      "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
-      "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+        { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+          "state": "A String", # Required The application state.
+          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+          "name": "A String", # Required The application name.
+        },
+      ],
+      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+        "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+      },
+      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
           "A String",
         ],
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
             "a_key": "A String",
           },
         },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "A String",
+        ],
+        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+      "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+        "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+          "a_key": "A String",
+        },
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+          "A String",
+        ],
+        "queryList": { # A list of queries to run on a cluster. # A list of queries.
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
+            "A String",
+          ],
+        },
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+            "a_key": "A String",
+          },
+        },
+        "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+      "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+        "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+            "a_key": "A String",
+          },
+        },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+          "A String",
+        ],
+        "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+          "A String",
+        ],
+        "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+      "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+      "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+            "a_key": "A String",
+          },
+        },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
           "A String",
         ],
         "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
           "A String",
         ],
         "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
           "a_key": "A String",
         },
       },
-      "yarnApplications": [ # [Output-only] The collection of Yarn applications spun up by this job.
-        { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-          "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-          "state": "A String", # [Required] The application state.
-          "name": "A String", # [Required] The application name.
-          "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+      "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+        "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+      },
+      "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+      },
+      "statusHistory": [ # Output-only The previous job status.
+        { # Cloud Dataproc job status.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "startTime": "A String", # The time when the server started the job.
+          "state": "A String", # Required A state message specifying the overall job state.
+          "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+          "insertTime": "A String", # The time of the job request.
+          "endTime": "A String", # The time when the job completed.
         },
       ],
-      "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-        "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-          "A String",
-        ],
-        "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-          "A String",
-        ],
-        "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-          "a_key": "A String",
-        },
-      },
       "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
           "a_key": "A String",
         },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-        "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
           "a_key": "A String",
         },
       },
-      "interactive": True or False, # [Optional] If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+      "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "insertTime": "A String", # The time of the job request.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
       "startTime": "A String", # The time when the server started the job.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      "insertTime": "A String", # The time of the job request.
       "endTime": "A String", # The time when the job completed.
     },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar hdfs:/tmp/test-samples/custom-wordcount.jar file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "insertTime": "A String", # The time of the job request.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-        "startTime": "A String", # The time when the server started the job.
-        "endTime": "A String", # The time when the job completed.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 512 characters.
-    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
-    "driverOutputUri": "A String", # [Output-only] A URI pointing to the location of the mixed stdout/stderr of the job's driver program—for example, gs://sysbucket123/foo-cluster/jobid-123/driver/output.
-    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: "name=[value]").
-        "a_key": "A String",
-      },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-        "A String",
-      ],
-      "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-          "A String",
-        ],
-      },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
       "a_key": "A String",
     },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "yarnApplications": [ # Output-only The collection of Yarn applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "name": "A String", # Required The application name.
+      },
+    ],
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully-qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 100 characters.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar  hdfs:/tmp/test-samples/custom-wordcount.jar  file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputUri": "A String", # Output-only A URI pointing to the location of the mixed stdout/stderr of the job's driver program&mdash;for example, <code>gs://sysbucket123/foo-cluster/jobid-123/driver/output</code>.
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of Yarn applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "startTime": "A String", # The time when the server started the job.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        "insertTime": "A String", # The time of the job request.
+        "endTime": "A String", # The time when the job completed.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: 'SET name="value";').
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, then the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataproc_v1beta1.operations.html b/docs/dyn/dataproc_v1beta1.operations.html
index 66a1b7d..799497c 100644
--- a/docs/dyn/dataproc_v1beta1.operations.html
+++ b/docs/dyn/dataproc_v1beta1.operations.html
@@ -76,23 +76,23 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use [operations.get](/dataproc/reference/rest/v1beta1/operations/get) or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation.</p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use operations.get or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</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="cancel">cancel(name, body, x__xgafv=None)</code>
-  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use [operations.get](/dataproc/reference/rest/v1beta1/operations/get) or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation.
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use operations.get or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation.
 
 Args:
   name: string, The name of the operation resource to be cancelled. (required)
@@ -103,26 +103,40 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(name, x__xgafv=None)</code>
-  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.
 
 Args:
   name: string, The name of the operation resource to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -133,15 +147,25 @@
 Args:
   name: string, The name of the operation resource. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -150,17 +174,17 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
 
 Args:
   name: string, The name of the operation collection. (required)
@@ -168,6 +192,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -175,10 +202,17 @@
     { # The response message for Operations.ListOperations.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -187,11 +221,11 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+        "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
       },
     ],
     "nextPageToken": "A String", # The standard List next-page token.
diff --git a/docs/dyn/dataproc_v1beta1.projects.clusters.html b/docs/dyn/dataproc_v1beta1.projects.clusters.html
index 7aca002..d03a939 100644
--- a/docs/dyn/dataproc_v1beta1.projects.clusters.html
+++ b/docs/dyn/dataproc_v1beta1.projects.clusters.html
@@ -82,7 +82,7 @@
 <p class="firstline">Deletes a cluster in a project.</p>
 <p class="toc_element">
   <code><a href="#diagnose">diagnose(projectId, clusterName, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets cluster diagnostic information. After the operation completes, the Operation.response field contains `DiagnoseClusterOutputLocation`.</p>
+<p class="firstline">Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, clusterName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the resource representation for a cluster in a project.</p>
@@ -101,27 +101,128 @@
   <pre>Creates a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
     "state": "A String", # The cluster's state.
     "stateStartTime": "A String", # Time when this state was entered.
     "detail": "A String", # Optional details of cluster's state.
   },
-  "statusHistory": [ # [Output-only] Previous cluster statuses.
-    { # The status of a cluster and its instances.
-      "state": "A String", # The cluster's state.
-      "stateStartTime": "A String", # Time when this state was entered.
-      "detail": "A String", # Optional details of cluster's state.
+  "configuration": { # The cluster configuration. # Required The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+        "a_key": "A String",
+      },
     },
-  ],
-  "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-  "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+    "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine configuration settings for all instances in a cluster.
+      "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+      "tags": [ # The Google Compute Engine tags to add to all instances.
+        "A String",
+      ],
+      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+          # roles/logging.logWriter
+          # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
+        "A String",
+      ],
+      "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+        "a_key": "A String",
+      },
+    },
+    "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+    "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+        # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+        # if [[ "${ROLE}" == 'Master' ]]; then
+        #   ... master specific actions ...
+        # else
+        #   ... worker specific actions ...
+        # fi
+      { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+      },
+    ],
+    "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+    "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+  },
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
     "a_key": "A String",
   },
   "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -132,99 +233,35 @@
       "a_key": "A String",
     },
   },
-  "configuration": { # The cluster configuration. # [Required] The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-      "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-      "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-        "a_key": "A String",
-      },
+  "statusHistory": [ # Output-only Previous cluster statuses.
+    { # The status of a cluster and its instances.
+      "state": "A String", # The cluster's state.
+      "stateStartTime": "A String", # Time when this state was entered.
+      "detail": "A String", # Optional details of cluster's state.
     },
-    "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine configuration settings for all instances in a cluster.
-      "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-      "tags": [ # The Google Compute Engine tags to add to all instances.
-        "A String",
-      ],
-      "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-      "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-      "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
-        "A String",
-      ],
-      "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-        "a_key": "A String",
-      },
-    },
-    "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-    "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-      { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-      },
-    ],
-    "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-    "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-  },
+  ],
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -233,11 +270,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -246,18 +283,28 @@
   <pre>Deletes a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -266,21 +313,21 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="diagnose">diagnose(projectId, clusterName, body, x__xgafv=None)</code>
-  <pre>Gets cluster diagnostic information. After the operation completes, the Operation.response field contains `DiagnoseClusterOutputLocation`.
+  <pre>Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  clusterName: string, Required The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -288,15 +335,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -305,11 +362,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -318,30 +375,134 @@
   <pre>Gets the resource representation for a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  clusterName: string, Required The cluster name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-    "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+    "status": { # The status of a cluster and its instances. # Output-only Cluster status.
       "state": "A String", # The cluster's state.
       "stateStartTime": "A String", # Time when this state was entered.
       "detail": "A String", # Optional details of cluster's state.
     },
-    "statusHistory": [ # [Output-only] Previous cluster statuses.
-      { # The status of a cluster and its instances.
-        "state": "A String", # The cluster's state.
-        "stateStartTime": "A String", # Time when this state was entered.
-        "detail": "A String", # Optional details of cluster's state.
+    "configuration": { # The cluster configuration. # Required The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+        "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+        "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+          "a_key": "A String",
+        },
       },
-    ],
-    "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-    "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine configuration settings for all instances in a cluster.
+        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+        "tags": [ # The Google Compute Engine tags to add to all instances.
+          "A String",
+        ],
+        "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+            # roles/logging.logWriter
+            # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+        "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+        "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
+          "A String",
+        ],
+        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+          "a_key": "A String",
+        },
+      },
+      "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+        },
+      },
+      "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+          # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+          # if [[ "${ROLE}" == 'Master' ]]; then
+          #   ... master specific actions ...
+          # else
+          #   ... worker specific actions ...
+          # fi
+        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+          "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+          "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+        },
+      ],
+      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+        },
+      },
+      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+        },
+      },
+    },
+    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
       "a_key": "A String",
     },
     "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -352,87 +513,13 @@
         "a_key": "A String",
       },
     },
-    "configuration": { # The cluster configuration. # [Required] The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-      "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-        "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-        "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-          "a_key": "A String",
-        },
+    "statusHistory": [ # Output-only Previous cluster statuses.
+      { # The status of a cluster and its instances.
+        "state": "A String", # The cluster's state.
+        "stateStartTime": "A String", # Time when this state was entered.
+        "detail": "A String", # Optional details of cluster's state.
       },
-      "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine configuration settings for all instances in a cluster.
-        "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-        "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-        "tags": [ # The Google Compute Engine tags to add to all instances.
-          "A String",
-        ],
-        "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-        "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-        "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
-          "A String",
-        ],
-        "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-          "a_key": "A String",
-        },
-      },
-      "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-        },
-      },
-      "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-        { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-          "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-          "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-        },
-      ],
-      "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-        },
-      },
-      "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-        },
-      },
-    },
+    ],
   }</pre>
 </div>
 
@@ -441,35 +528,139 @@
   <pre>Lists all clusters in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
   pageSize: integer, The standard List page size.
-  filter: string, [Optional] A filter constraining which clusters to list. Valid filters contain label terms such as: labels.key1 = val1 AND (-labels.k2 = val2 OR labels.k3 = val3)
+  filter: string, Optional A filter constraining which clusters to list. Valid filters contain label terms such as: labels.key1 = val1 AND (-labels.k2 = val2 OR labels.k3 = val3)
   pageToken: string, The standard List page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The list of all clusters in a project.
     "nextPageToken": "A String", # The standard List next-page token.
-    "clusters": [ # [Output-only] The clusters in the project.
+    "clusters": [ # Output-only The clusters in the project.
       { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-        "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+        "status": { # The status of a cluster and its instances. # Output-only Cluster status.
           "state": "A String", # The cluster's state.
           "stateStartTime": "A String", # Time when this state was entered.
           "detail": "A String", # Optional details of cluster's state.
         },
-        "statusHistory": [ # [Output-only] Previous cluster statuses.
-          { # The status of a cluster and its instances.
-            "state": "A String", # The cluster's state.
-            "stateStartTime": "A String", # Time when this state was entered.
-            "detail": "A String", # Optional details of cluster's state.
+        "configuration": { # The cluster configuration. # Required The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+          "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+            "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+            "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+              "a_key": "A String",
+            },
           },
-        ],
-        "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-        "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-        "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-        "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+          "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine configuration settings for all instances in a cluster.
+            "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+            "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+            "tags": [ # The Google Compute Engine tags to add to all instances.
+              "A String",
+            ],
+            "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+                # roles/logging.logWriter
+                # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+            "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+            "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+            "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
+              "A String",
+            ],
+            "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+              "a_key": "A String",
+            },
+          },
+          "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+          "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+              "A String",
+            ],
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+            },
+          },
+          "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+              # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+              # if [[ "${ROLE}" == 'Master' ]]; then
+              #   ... master specific actions ...
+              # else
+              #   ... worker specific actions ...
+              # fi
+            { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+              "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+              "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+            },
+          ],
+          "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+              "A String",
+            ],
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+            },
+          },
+          "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+              "A String",
+            ],
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+            },
+          },
+        },
+        "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+        "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+        "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+        "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
           "a_key": "A String",
         },
         "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -480,87 +671,13 @@
             "a_key": "A String",
           },
         },
-        "configuration": { # The cluster configuration. # [Required] The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-          "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-            "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-            "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-              "a_key": "A String",
-            },
+        "statusHistory": [ # Output-only Previous cluster statuses.
+          { # The status of a cluster and its instances.
+            "state": "A String", # The cluster's state.
+            "stateStartTime": "A String", # Time when this state was entered.
+            "detail": "A String", # Optional details of cluster's state.
           },
-          "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine configuration settings for all instances in a cluster.
-            "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-            "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-            "tags": [ # The Google Compute Engine tags to add to all instances.
-              "A String",
-            ],
-            "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-            "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-            "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
-              "A String",
-            ],
-            "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-              "a_key": "A String",
-            },
-          },
-          "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-          "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-              "A String",
-            ],
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-            },
-            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-            },
-          },
-          "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-            { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-              "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-              "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-            },
-          ],
-          "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-              "A String",
-            ],
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-            },
-            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-            },
-          },
-          "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-            "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-              "A String",
-            ],
-            "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-              "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-            },
-            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-            },
-          },
-        },
+        ],
       },
     ],
   }</pre>
@@ -585,28 +702,129 @@
   <pre>Updates a cluster in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project the cluster belongs to. (required)
-  clusterName: string, [Required] The cluster name. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project the cluster belongs to. (required)
+  clusterName: string, Required The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, configuration, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # [Output-only] Cluster status.
+  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
     "state": "A String", # The cluster's state.
     "stateStartTime": "A String", # Time when this state was entered.
     "detail": "A String", # Optional details of cluster's state.
   },
-  "statusHistory": [ # [Output-only] Previous cluster statuses.
-    { # The status of a cluster and its instances.
-      "state": "A String", # The cluster's state.
-      "stateStartTime": "A String", # Time when this state was entered.
-      "detail": "A String", # Optional details of cluster's state.
+  "configuration": { # The cluster configuration. # Required The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # Optional The configuration settings for software inside the cluster.
+      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional The properties to set on daemon configuration files.Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings:  core - core-site.xml  hdfs - hdfs-site.xml  mapred - mapred-site.xml  yarn - yarn-site.xml  hive - hive-site.xml  pig - pig.properties  spark - spark-defaults.conf
+        "a_key": "A String",
+      },
     },
-  ],
-  "clusterUuid": "A String", # [Output-only] A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # [Required] The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-  "projectId": "A String", # [Required] The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # [Optional] The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given cluster.
+    "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine configuration settings for all instances in a cluster.
+      "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+      "tags": [ # The Google Compute Engine tags to add to all instances.
+        "A String",
+      ],
+      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+          # roles/logging.logWriter
+          # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
+      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
+        "A String",
+      ],
+      "metadata": { # The Google Compute Engine metadata entries to add to all instances.
+        "a_key": "A String",
+      },
+    },
+    "configurationBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+    "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
+        # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
+        # if [[ "${ROLE}" == 'Master' ]]; then
+        #   ... master specific actions ...
+        # else
+        #   ... worker specific actions ...
+        # fi
+      { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
+        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+      },
+    ],
+    "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for additional worker instances in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+    "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for worker instances in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version.
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
+      },
+    },
+  },
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
     "a_key": "A String",
   },
   "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
@@ -617,100 +835,52 @@
       "a_key": "A String",
     },
   },
-  "configuration": { # The cluster configuration. # [Required] The cluster configuration. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfiguration": { # Specifies the selection and configuration of software inside the cluster. # [Optional] The configuration settings for software inside the cluster.
-      "imageVersion": "A String", # [Optional] The version of software inside the cluster. It must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it defaults to the latest version (see [Cloud Dataproc Versioning](/dataproc/versioning)).
-      "properties": { # [Optional] The properties to set on daemon configuration files. Property keys are specified in "prefix:property" format, such as "core:fs.defaultFS". The following are supported prefixes and their mappings: core - core-site.xml hdfs - hdfs-site.xml mapred - mapred-site.xml yarn - yarn-site.xml hive - hive-site.xml pig - pig.properties spark - spark-defaults.conf
-        "a_key": "A String",
-      },
+  "statusHistory": [ # Output-only Previous cluster statuses.
+    { # The status of a cluster and its instances.
+      "state": "A String", # The cluster's state.
+      "stateStartTime": "A String", # Time when this state was entered.
+      "detail": "A String", # Optional details of cluster's state.
     },
-    "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # [Required] The shared Google Compute Engine configuration settings for all instances in a cluster.
-      "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.
-      "tags": [ # The Google Compute Engine tags to add to all instances.
-        "A String",
-      ],
-      "zoneUri": "A String", # [Required] The zone where the Google Compute Engine cluster will be located. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.
-      "subnetworkUri": "A String", # The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.
-      "serviceAccountScopes": [ # The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included: - https://www.googleapis.com/auth/cloud.useraccounts.readonly - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write If no scopes are specfied, the following defaults are also provided: - https://www.googleapis.com/auth/bigquery - https://www.googleapis.com/auth/bigtable.admin.table - https://www.googleapis.com/auth/bigtable.data - https://www.googleapis.com/auth/devstorage.full_control
-        "A String",
-      ],
-      "metadata": { # The Google Compute Engine metadata entries to add to all instances.
-        "a_key": "A String",
-      },
-    },
-    "configurationBucket": "A String", # [Optional] A Google Cloud Storage staging bucket used for sharing generated SSH keys and configuration. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for the master instance in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-    "initializationActions": [ # [Optional] Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below: ROLE=$(/usr/share/google/get_metadata_value attributes/role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi
-      { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # [Optional] Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # [Required] Google Cloud Storage URI of executable file.
-      },
-    ],
-    "secondaryWorkerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for additional worker instances in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-    "workerConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # [Optional] The Google Compute Engine configuration settings for worker instances in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # [Output-only] The Google Compute Engine image resource used for cluster instances. Inferred from `SoftwareConfiguration.image_version`.
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # [Optional] Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # [Optional] Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # [Output-only] The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # [Output-only] The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # [Output-only] The name of the Instance Group Manager for this group.
-      },
-    },
-  },
+  ],
 }
 
-  updateMask: string, [Required] Specifies the path, relative to Cluster, of the field to update. For example, to change the number of workers in a cluster to 5, the update_mask parameter would be specified as configuration.worker_configuration.num_instances, and the `PATCH` request body would specify the new value, as follows: { "configuration":{ "workerConfiguration":{ "numInstances":"5" } } } Similarly, to change the number of preemptible workers in a cluster to 5, the update_mask parameter would be config.secondary_worker_config.num_instances, and the `PATCH` request body would be set as follows: { "config":{ "secondaryWorkerConfig":{ "numInstances":"5" } } } Note: Currently, config.worker_config.num_instances and config.secondary_worker_config.num_instances are the only fields that can be updated.
+  updateMask: string, Required Specifies the path, relative to <code>Cluster</code>, of the field to update. For example, to change the number of workers in a cluster to 5, the <code>update_mask</code> parameter would be specified as <code>configuration.worker_configuration.num_instances</code>, and the PATCH request body would specify the new value, as follows:
+{
+  "configuration":{
+    "workerConfiguration":{
+      "numInstances":"5"
+    }
+  }
+}
+Similarly, to change the number of preemptible workers in a cluster to 5, the <code>update_mask</code> parameter would be <code>config.secondary_worker_config.num_instances</code>, and the PATCH request body would be set as follows:
+{
+  "config":{
+    "secondaryWorkerConfig":{
+      "numInstances":"5"
+    }
+  }
+}
+<strong>Note:</strong> Currently, <code>config.worker_config.num_instances</code> and <code>config.secondary_worker_config.num_instances</code> are the only fields that can be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -719,11 +889,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/dataproc_v1beta1.projects.jobs.html b/docs/dyn/dataproc_v1beta1.projects.jobs.html
index 5c4494d..fc05bfe 100644
--- a/docs/dyn/dataproc_v1beta1.projects.jobs.html
+++ b/docs/dyn/dataproc_v1beta1.projects.jobs.html
@@ -76,10 +76,10 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(projectId, jobId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Starts a job cancellation request. To access the job resource after cancellation, call [jobs.list](/dataproc/reference/rest/v1beta1/projects.jobs/list) or [jobs.get](/dataproc/reference/rest/v1beta1/projects.jobs/get).</p>
+<p class="firstline">Starts a job cancellation request. To access the job resource after cancellation, call jobs.list or jobs.get.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, jobId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.</p>
+<p class="firstline">Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, jobId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the resource representation for a job in a project.</p>
@@ -90,16 +90,19 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
+  <code><a href="#patch">patch(projectId, jobId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a job in a project.</p>
+<p class="toc_element">
   <code><a href="#submit">submit(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Submits a job to a cluster.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="cancel">cancel(projectId, jobId, body, x__xgafv=None)</code>
-  <pre>Starts a job cancellation request. To access the job resource after cancellation, call [jobs.list](/dataproc/reference/rest/v1beta1/projects.jobs/list) or [jobs.get](/dataproc/reference/rest/v1beta1/projects.jobs/get).
+  <pre>Starts a job cancellation request. To access the job resource after cancellation, call jobs.list or jobs.get.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  jobId: string, Required The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -107,200 +110,240 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to `true`, the driver's stdin will be kept open and `driver_input_uri` will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(projectId, jobId, x__xgafv=None)</code>
-  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns `FAILED_PRECONDITION`.
+  <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
+      # service Foo {
+      #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      # }
+      # The JSON representation for Empty is empty JSON object {}.
   }</pre>
 </div>
 
@@ -309,187 +352,220 @@
   <pre>Gets the resource representation for a job in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  jobId: string, [Required] The job ID. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  jobId: string, Required The job ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to `true`, the driver's stdin will be kept open and `driver_input_uri` will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
@@ -498,194 +574,227 @@
   <pre>Lists jobs in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
-  pageSize: integer, [Optional] The number of results to return in each response.
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  pageSize: integer, Optional The number of results to return in each response.
   x__xgafv: string, V1 error format.
-  jobStateMatcher: string, [Optional] Specifies enumerated categories of jobs to list.
-  pageToken: string, [Optional] The page token, returned by a previous call, to request the next page of results.
-  clusterName: string, [Optional] If set, the returned jobs list includes only jobs that were submitted to the named cluster.
-  filter: string, [Optional] A filter constraining which jobs to list. Valid filters contain job state and label terms such as: labels.key1 = val1 AND (labels.k2 = val2 OR labels.k3 = val3)
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  jobStateMatcher: string, Optional Specifies enumerated categories of jobs to list.
+  pageToken: string, Optional The page token, returned by a previous call, to request the next page of results.
+  clusterName: string, Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
+  filter: string, Optional A filter constraining which jobs to list. Valid filters contain job state and label terms such as: labels.key1 = val1 AND (labels.k2 = val2 OR labels.k3 = val3)
 
 Returns:
   An object of the form:
 
     { # A list of jobs in a project.
-    "nextPageToken": "A String", # [Optional] This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the `page_token` in a subsequent ListJobsRequest.
-    "jobs": [ # [Output-only] Jobs list.
+    "nextPageToken": "A String", # Optional This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListJobsRequest</code>.
+    "jobs": [ # Output-only Jobs list.
       { # A Cloud Dataproc job resource.
-        "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-          "state": "A String", # [Required] A state message specifying the overall job state.
-          "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-          "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+        "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+          "state": "A String", # Required A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
         },
         "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-          "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
             "A String",
           ],
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
-          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
             "A String",
           ],
-          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-          "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
             "a_key": "A String",
           },
         },
-        "statusHistory": [ # [Output-only] The previous job status.
-          { # Cloud Dataproc job status.
-            "state": "A String", # [Required] A state message specifying the overall job state.
-            "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-            "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-          },
-        ],
-        "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-          "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-          "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
+        "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+          "a_key": "A String",
         },
-        "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-          "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-          "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
+        "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+        },
+        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+          "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
         },
         "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
             "a_key": "A String",
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+          "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
             "a_key": "A String",
           },
         },
+        "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+          { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+            "state": "A String", # Required The application state.
+            "name": "A String", # Required The application name.
+            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+          },
+        ],
         "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
             "a_key": "A String",
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-          "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+          "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
             "a_key": "A String",
           },
         },
-        "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-        "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
-          "a_key": "A String",
-        },
-        "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-        "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-        "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-        "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+        "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+          "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
             "A String",
           ],
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
-          "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+            "A String",
+          ],
+          "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+            "A String",
+          ],
+          "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+        "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+        "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+            "A String",
+          ],
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+              "a_key": "A String",
+            },
+          },
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
             "A String",
           ],
           "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-          "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
             "a_key": "A String",
           },
         },
-        "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job.
-          { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-            "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-            "state": "A String", # [Required] The application state.
-            "name": "A String", # [Required] The application name.
-            "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+        "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+          "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+        },
+        "statusHistory": [ # Output-only The previous job status.
+          { # Cloud Dataproc job status.
+            "state": "A String", # Required A state message specifying the overall job state.
+            "stateStartTime": "A String", # Output-only The time when this state was entered.
+            "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
           },
         ],
-        "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-          "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-          "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-            "A String",
-          ],
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-            "A String",
-          ],
-          "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-              "a_key": "A String",
-            },
-          },
-          "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-            "A String",
-          ],
-          "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-            "A String",
-          ],
-          "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-            "A String",
-          ],
-          "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-            "a_key": "A String",
-          },
-        },
         "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-          "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
             "a_key": "A String",
           },
-          "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+                # "hiveJob": {
+                #   "queryList": {
+                #     "queries": [
+                #       "query1",
+                #       "query2",
+                #       "query3;query4",
+                #     ]
+                #   }
+                # }
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-          "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
             "a_key": "A String",
           },
         },
-        "interactive": True or False, # [Optional] If set to `true`, the driver's stdin will be kept open and `driver_input_uri` will be set to provide a path at which additional input can be sent to the driver.
+        "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
       },
     ],
   }</pre>
@@ -706,371 +815,866 @@
 </div>
 
 <div class="method">
-    <code class="details" id="submit">submit(projectId, body, x__xgafv=None)</code>
-  <pre>Submits a job to a cluster.
+    <code class="details" id="patch">patch(projectId, jobId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a job in a project.
 
 Args:
-  projectId: string, [Required] The ID of the Google Cloud Platform project that the job belongs to. (required)
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  jobId: string, Required The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A request to submit a job.
-    "job": { # A Cloud Dataproc job resource. # [Required] The job resource.
-      "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-      },
-      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-        "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "A String",
-        ],
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-          "A String",
-        ],
-        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-        "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "statusHistory": [ # [Output-only] The previous job status.
-        { # Cloud Dataproc job status.
-          "state": "A String", # [Required] A state message specifying the overall job state.
-          "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-          "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-        },
-      ],
-      "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-        "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-        "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
-      },
-      "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-        "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-        "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
-      },
-      "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
-        "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
-          "a_key": "A String",
-        },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
-          "A String",
-        ],
-        "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-            "A String",
-          ],
-        },
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
-          "a_key": "A String",
-        },
-      },
-      "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
-        "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
-          "a_key": "A String",
-        },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
-          "A String",
-        ],
-        "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-            "A String",
-          ],
-        },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-      "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
+{ # A Cloud Dataproc job resource.
+  "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+    "state": "A String", # Required A state message specifying the overall job state.
+    "stateStartTime": "A String", # Output-only The time when this state was entered.
+    "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+  },
+  "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "A String",
+    ],
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
-      "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-      "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-      "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-      "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
-          "A String",
-        ],
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
-          "A String",
-        ],
-        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-        "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job.
-        { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-          "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-          "state": "A String", # [Required] The application state.
-          "name": "A String", # [Required] The application name.
-          "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-        },
-      ],
-      "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-        "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-        "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-          "A String",
-        ],
-        "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-          "A String",
-        ],
-        "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
-        "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-        "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
-          "a_key": "A String",
-        },
-        "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
-          "A String",
-        ],
-        "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
-            "A String",
-          ],
-        },
-        "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-        "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "interactive": True or False, # [Optional] If set to `true`, the driver's stdin will be kept open and `driver_input_uri` will be set to provide a path at which additional input can be sent to the driver.
     },
-  }
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+    "a_key": "A String",
+  },
+  "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+  },
+  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+    "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+  },
+  "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "a_key": "A String",
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "a_key": "A String",
+    },
+  },
+  "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+    { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+      "state": "A String", # Required The application state.
+      "name": "A String", # Required The application name.
+      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    },
+  ],
+  "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "a_key": "A String",
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+  "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+    "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "A String",
+    ],
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "A String",
+    ],
+    "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+  "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+  "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "A String",
+    ],
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+    "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+  "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+    "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+  },
+  "statusHistory": [ # Output-only The previous job status.
+    { # Cloud Dataproc job status.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+    },
+  ],
+  "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+    "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "a_key": "A String",
+    },
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "A String",
+    ],
+    "queryList": { # A list of queries to run on a cluster. # A list of queries.
+      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          # "hiveJob": {
+          #   "queryList": {
+          #     "queries": [
+          #       "query1",
+          #       "query2",
+          #       "query3;query4",
+          #     ]
+          #   }
+          # }
+        "A String",
+      ],
+    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+}
 
+  updateMask: string, Required Specifies the path, relative to <code>Job</code>, of the field to update. For example, to update the labels of a Job the <code>update_mask</code> parameter would be specified as <code>labels</code>, and the PATCH request body would specify the new value. <strong>Note:</strong> Currently, <code>labels</code> is the only field that can be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # [Output-only] The job status. Additional application-specific status information may be contained in the type_job and yarn_applications fields.
-      "state": "A String", # [Required] A state message specifying the overall job state.
-      "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-      "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # [Optional] Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # [Optional] A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "statusHistory": [ # [Output-only] The previous job status.
-      { # Cloud Dataproc job status.
-        "state": "A String", # [Required] A state message specifying the overall job state.
-        "stateStartTime": "A String", # [Output-only] The time when this state was entered.
-        "details": "A String", # [Optional] Job state details, such as an error description if the state is ERROR.
-      },
-    ],
-    "placement": { # Cloud Dataproc job configuration. # [Required] Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # [Required] The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # [Output-only] A cluster UUID generated by the Dataproc service when the job is submitted.
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # [Optional] The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a job_id.
-      "projectId": "A String", # [Required] The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # [Required] The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 512 characters.
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "properties": { # [Optional] A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverOutputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdout of the job's driver program.
-    "labels": { # [Optional] The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
-    "submittedBy": "A String", # [Output-only] The email address of the user submitting the job. For jobs submitted on the cluster, the address is username@hostname.
-    "driverInputResourceUri": "A String", # [Output-only] A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
-    "driverControlFilesUri": "A String", # [Output-only] If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as `driver_output_uri`.
-    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
-      "properties": { # [Optional] A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # [Output-only] The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto.
-        "progress": 3.14, # [Required] The numerical progress of the application, from 1 to 100.
-        "state": "A String", # [Required] The application state.
-        "name": "A String", # [Required] The application name.
-        "trackingUrl": "A String", # [Optional] The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
       },
     ],
-    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # [Required] The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # [Optional] The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # [Optional] The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # [Optional] HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "archiveUris": [ # [Optional] HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
-        "A String",
-      ],
-      "pythonFileUris": [ # [Optional] HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
-        "A String",
-      ],
-      "properties": { # [Optional] A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
-        "a_key": "A String",
-      },
-    },
     "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # [Optional] Mapping of query variable names to values (equivalent to the Hive command: `SET name="value";`).
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # [Optional] HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # [Required] The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2", "query3;query4", ] } }
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # [Optional] Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.
-      "properties": { # [Optional] A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
-    "interactive": True or False, # [Optional] If set to `true`, the driver's stdin will be kept open and `driver_input_uri` will be set to provide a path at which additional input can be sent to the driver.
+    "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="submit">submit(projectId, body, x__xgafv=None)</code>
+  <pre>Submits a job to a cluster.
+
+Args:
+  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to submit a job.
+    "job": { # A Cloud Dataproc job resource. # Required The job resource.
+      "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+          "A String",
+        ],
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "A String",
+        ],
+        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+        "a_key": "A String",
+      },
+      "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+      },
+      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+        "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+      },
+      "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+        "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+          "a_key": "A String",
+        },
+        "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+          "A String",
+        ],
+        "queryList": { # A list of queries to run on a cluster. # A list of queries.
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
+            "A String",
+          ],
+        },
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+          "a_key": "A String",
+        },
+      },
+      "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+        { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+          "state": "A String", # Required The application state.
+          "name": "A String", # Required The application name.
+          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        },
+      ],
+      "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+        "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+          "a_key": "A String",
+        },
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+          "A String",
+        ],
+        "queryList": { # A list of queries to run on a cluster. # A list of queries.
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
+            "A String",
+          ],
+        },
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+      "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+        "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+          "A String",
+        ],
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+          "A String",
+        ],
+        "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+          "A String",
+        ],
+        "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+      "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+      "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+          "A String",
+        ],
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+          "A String",
+        ],
+        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+        "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+      "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+        "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+      },
+      "statusHistory": [ # Output-only The previous job status.
+        { # Cloud Dataproc job status.
+          "state": "A String", # Required A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only The time when this state was entered.
+          "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+        },
+      ],
+      "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+        "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+          "a_key": "A String",
+        },
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+          "A String",
+        ],
+        "queryList": { # A list of queries to run on a cluster. # A list of queries.
+          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+              # "hiveJob": {
+              #   "queryList": {
+              #     "queries": [
+              #       "query1",
+              #       "query2",
+              #       "query3;query4",
+              #     ]
+              #   }
+              # }
+            "A String",
+          ],
+        },
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud Dataproc job resource.
+    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Required A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only The time when this state was entered.
+      "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+    },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
+    "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+        "a_key": "A String",
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "a_key": "A String",
+      },
+    },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
+    "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+        "a_key": "A String",
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
+      "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "A String",
+      ],
+      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverInputResourceUri": "A String", # Output-only A URI pointing to the location of the stdin of the job's driver program, only set if the job is interactive.
+    "sparkJob": { # A Cloud Dataproc job for running Spark applications on YARN. # Job is a Spark job.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file that contains the main class.
+      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "submittedBy": "A String", # Output-only The email address of the user submitting the job. For jobs submitted on the cluster, the address is <code>username@hostname</code>.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    },
+    "statusHistory": [ # Output-only The previous job status.
+      { # Cloud Dataproc job status.
+        "state": "A String", # Required A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only The time when this state was entered.
+        "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
+      },
+    ],
+    "hiveJob": { # A Cloud Dataproc job for running Hive queries on YARN. # Job is a Hive job.
+      "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
+      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+        "a_key": "A String",
+      },
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "A String",
+      ],
+      "queryList": { # A list of queries to run on a cluster. # A list of queries.
+        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            # "hiveJob": {
+            #   "queryList": {
+            #     "queries": [
+            #       "query1",
+            #       "query2",
+            #       "query3;query4",
+            #     ]
+            #   }
+            # }
+          "A String",
+        ],
+      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "interactive": True or False, # Optional If set to true, the driver's stdin will be kept open and driver_input_uri will be set to provide a path at which additional input can be sent to the driver.
   }</pre>
 </div>
 
diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html
index 5434038..628c6f7 100644
--- a/docs/dyn/datastore_v1.projects.html
+++ b/docs/dyn/datastore_v1.projects.html
@@ -449,6 +449,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -732,6 +735,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -954,6 +960,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1373,6 +1382,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1675,6 +1687,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1964,6 +1979,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2159,6 +2177,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2308,6 +2329,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2513,6 +2537,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2710,6 +2737,9 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
diff --git a/docs/dyn/datastore_v1beta3.projects.html b/docs/dyn/datastore_v1beta3.projects.html
index 9cb4d9c..4099423 100644
--- a/docs/dyn/datastore_v1beta3.projects.html
+++ b/docs/dyn/datastore_v1beta3.projects.html
@@ -449,6 +449,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -732,6 +735,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -954,6 +960,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1373,6 +1382,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1675,6 +1687,9 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  #
+                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1964,6 +1979,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2159,6 +2177,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2308,6 +2329,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2513,6 +2537,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2710,6 +2737,9 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
diff --git a/docs/dyn/deploymentmanager_alpha.compositeTypes.html b/docs/dyn/deploymentmanager_alpha.compositeTypes.html
new file mode 100644
index 0000000..e5fa339
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.compositeTypes.html
@@ -0,0 +1,752 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.compositeTypes.html">compositeTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, compositeType)</a></code></p>
+<p class="firstline">Deletes a composite type.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, compositeType)</a></code></p>
+<p class="firstline">Gets information about a specific composite type.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a composite type.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all composite types for Deployment Manager.</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, compositeType, body)</a></code></p>
+<p class="firstline">Updates a composite type. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, compositeType, body)</a></code></p>
+<p class="firstline">Updates a composite type.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, compositeType)</code>
+  <pre>Deletes a composite type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  compositeType: string, The name of the type for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, compositeType)</code>
+  <pre>Gets information about a specific composite type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  compositeType: string, The name of the composite type for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Holds the composite type.
+      "status": "A String",
+      "name": "A String", # Name of the composite type.
+      "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "templateContents": { # Files that make up the template contents of a template type. # Files for the template type.
+        "imports": [ # Import files referenced by the main template.
+          {
+            "content": "A String", # The contents of the file.
+            "name": "A String", # The name of the file.
+          },
+        ],
+        "schema": "A String", # The contents of the template schema.
+        "template": "A String", # The contents of the main template file.
+        "interpreter": "A String", # Which interpreter (python or jinja) should be used during expansion.
+      },
+      "insertTime": "A String", # [Output Only] Timestamp when the composite type was created, in RFC3339 text format.
+      "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this composite type.
+        "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+        "clientOperationId": "A String", # [Output Only] Reserved for future use.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+        "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+        "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+        "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+      },
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Self link for the type provider.
+      "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 composite type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Holds the composite type.
+    "status": "A String",
+    "name": "A String", # Name of the composite type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "templateContents": { # Files that make up the template contents of a template type. # Files for the template type.
+      "imports": [ # Import files referenced by the main template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "schema": "A String", # The contents of the template schema.
+      "template": "A String", # The contents of the main template file.
+      "interpreter": "A String", # Which interpreter (python or jinja) should be used during expansion.
+    },
+    "insertTime": "A String", # [Output Only] Timestamp when the composite type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this composite type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all composite types for Deployment Manager.
+
+Args:
+  project: string, The project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response that returns all Composite Types supported by Deployment Manager
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "compositeTypes": [ # [Output Only] A list of resource composite types supported by Deployment Manager.
+      { # Holds the composite type.
+          "status": "A String",
+          "name": "A String", # Name of the composite type.
+          "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+            {
+              "value": "A String",
+              "key": "A String",
+            },
+          ],
+          "templateContents": { # Files that make up the template contents of a template type. # Files for the template type.
+            "imports": [ # Import files referenced by the main template.
+              {
+                "content": "A String", # The contents of the file.
+                "name": "A String", # The name of the file.
+              },
+            ],
+            "schema": "A String", # The contents of the template schema.
+            "template": "A String", # The contents of the main template file.
+            "interpreter": "A String", # Which interpreter (python or jinja) should be used during expansion.
+          },
+          "insertTime": "A String", # [Output Only] Timestamp when the composite type was created, in RFC3339 text format.
+          "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this composite type.
+            "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+            "clientOperationId": "A String", # [Output Only] Reserved for future use.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+            "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+            "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+            "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+            "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+            "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+            "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+            "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+            "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+            "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+              {
+                "message": "A String", # [Output Only] A human-readable description of the warning code.
+                "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+                "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                    # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                  {
+                    "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                    "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                  },
+                ],
+              },
+            ],
+            "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+            "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+            "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+            "name": "A String", # [Output Only] Name of the resource.
+            "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+            "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+              "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+                {
+                  "message": "A String", # [Output Only] An optional, human-readable error message.
+                  "code": "A String", # [Output Only] The error type identifier for this error.
+                  "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+                },
+              ],
+            },
+            "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+          },
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Self link for the type provider.
+          "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="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, compositeType, body)</code>
+  <pre>Updates a composite type. This method supports patch semantics.
+
+Args:
+  project: string, The project ID for this request. (required)
+  compositeType: string, The name of the composite type for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Holds the composite type.
+    "status": "A String",
+    "name": "A String", # Name of the composite type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "templateContents": { # Files that make up the template contents of a template type. # Files for the template type.
+      "imports": [ # Import files referenced by the main template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "schema": "A String", # The contents of the template schema.
+      "template": "A String", # The contents of the main template file.
+      "interpreter": "A String", # Which interpreter (python or jinja) should be used during expansion.
+    },
+    "insertTime": "A String", # [Output Only] Timestamp when the composite type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this composite type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, compositeType, body)</code>
+  <pre>Updates a composite type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  compositeType: string, The name of the composite type for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Holds the composite type.
+    "status": "A String",
+    "name": "A String", # Name of the composite type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "templateContents": { # Files that make up the template contents of a template type. # Files for the template type.
+      "imports": [ # Import files referenced by the main template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "schema": "A String", # The contents of the template schema.
+      "template": "A String", # The contents of the main template file.
+      "interpreter": "A String", # Which interpreter (python or jinja) should be used during expansion.
+    },
+    "insertTime": "A String", # [Output Only] Timestamp when the composite type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this composite type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.deployments.html b/docs/dyn/deploymentmanager_alpha.deployments.html
new file mode 100644
index 0000000..797201f
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.deployments.html
@@ -0,0 +1,1334 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.deployments.html">deployments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancelPreview">cancelPreview(project, deployment, body)</a></code></p>
+<p class="firstline">Cancels and removes the preview currently associated with the deployment.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, deployment, deletePolicy=None)</a></code></p>
+<p class="firstline">Deletes a deployment and all of the resources in the deployment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment)</a></code></p>
+<p class="firstline">Gets information about a specific deployment.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(project, resource)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body, preview=None)</a></code></p>
+<p class="firstline">Creates a deployment and all of the resources described by the deployment manifest.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all deployments for a given project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, deployment, body, deletePolicy=None, createPolicy=None, preview=None)</a></code></p>
+<p class="firstline">Updates a deployment and all of the resources described by the deployment manifest. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(project, resource, body)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
+<p class="toc_element">
+  <code><a href="#stop">stop(project, deployment, body)</a></code></p>
+<p class="firstline">Stops an ongoing operation. This does not roll back any work that has already been completed, but prevents any new work from being started.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, deployment, body, deletePolicy=None, createPolicy=None, preview=None)</a></code></p>
+<p class="firstline">Updates a deployment and all of the resources described by the deployment manifest.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancelPreview">cancelPreview(project, deployment, body)</code>
+  <pre>Cancels and removes the preview currently associated with the deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "fingerprint": "A String", # Specifies a fingerprint for cancelPreview() requests. A fingerprint is a randomly generated value that must be provided in cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that the deployment does not have conflicting requests (e.g. if someone attempts to make a new update request while another user attempts to cancel a preview, this would prevent one of the requests).
+        # 
+        # The fingerprint is initially generated by Deployment Manager and changes after every request to modify a deployment. To get the latest fingerprint value, perform a get() request on the deployment.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, deployment, deletePolicy=None)</code>
+  <pre>Deletes a deployment and all of the resources in the deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  deletePolicy: string, Sets the policy to use for deleting resources.
+    Allowed values
+      ABANDON - 
+      DELETE - 
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, deployment)</code>
+  <pre>Gets information about a specific deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "description": "A String", # An optional user-provided description of the deployment.
+      "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here.
+        "labels": [ # [Output Only] Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+          {
+            "value": "A String",
+            "key": "A String",
+          },
+        ],
+        "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
+        "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
+      },
+      "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
+      "insertTime": "A String", # [Output Only] Timestamp when the deployment was created, in RFC3339 text format .
+      "fingerprint": "A String", # Provides a fingerprint to use in requests to modify a deployment, such as update(), stop(), and cancelPreview() requests. A fingerprint is a randomly generated value that must be provided with update(), stop(), and cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time.
+          #
+          # The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a get() request to a deployment.
+      "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
+        "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+        "clientOperationId": "A String", # [Output Only] Reserved for future use.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+        "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+        "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+        "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+      },
+      "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
+        "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
+          {
+            "content": "A String", # The contents of the file.
+            "name": "A String", # The name of the file.
+          },
+        ],
+        "config": { # The configuration to use for this deployment.
+          "content": "A String", # The contents of the file.
+        },
+      },
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Self link for the deployment.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(project, resource)</code>
+  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, preview=None)</code>
+  <pre>Creates a deployment and all of the resources described by the deployment manifest.
+
+Args:
+  project: string, The project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "description": "A String", # An optional user-provided description of the deployment.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here.
+      "labels": [ # [Output Only] Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
+      "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
+    },
+    "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
+    "insertTime": "A String", # [Output Only] Timestamp when the deployment was created, in RFC3339 text format .
+    "fingerprint": "A String", # Provides a fingerprint to use in requests to modify a deployment, such as update(), stop(), and cancelPreview() requests. A fingerprint is a randomly generated value that must be provided with update(), stop(), and cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time.
+        # 
+        # The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a get() request to a deployment.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
+      "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "config": { # The configuration to use for this deployment.
+        "content": "A String", # The contents of the file.
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the deployment.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  preview: boolean, If set to true, creates a deployment and creates "shell" resources but does not actually instantiate these resources. This allows you to preview what your deployment looks like. After previewing a deployment, you can deploy your resources by making a request with the update() method or you can use the cancelPreview() method to cancel the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all deployments for a given project.
+
+Args:
+  project: string, The project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of deployments and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "deployments": [ # [Output Only] The deployments contained in this response.
+      {
+          "description": "A String", # An optional user-provided description of the deployment.
+          "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+            {
+              "value": "A String",
+              "key": "A String",
+            },
+          ],
+          "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here.
+            "labels": [ # [Output Only] Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+              {
+                "value": "A String",
+                "key": "A String",
+              },
+            ],
+            "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
+            "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
+          },
+          "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
+          "insertTime": "A String", # [Output Only] Timestamp when the deployment was created, in RFC3339 text format .
+          "fingerprint": "A String", # Provides a fingerprint to use in requests to modify a deployment, such as update(), stop(), and cancelPreview() requests. A fingerprint is a randomly generated value that must be provided with update(), stop(), and cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time.
+              #
+              # The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a get() request to a deployment.
+          "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
+            "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+            "clientOperationId": "A String", # [Output Only] Reserved for future use.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+            "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+            "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+            "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+            "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+            "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+            "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+            "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+            "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+            "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+              {
+                "message": "A String", # [Output Only] A human-readable description of the warning code.
+                "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+                "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                    # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                  {
+                    "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                    "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                  },
+                ],
+              },
+            ],
+            "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+            "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+            "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+            "name": "A String", # [Output Only] Name of the resource.
+            "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+            "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+              "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+                {
+                  "message": "A String", # [Output Only] An optional, human-readable error message.
+                  "code": "A String", # [Output Only] The error type identifier for this error.
+                  "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+                },
+              ],
+            },
+            "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+          },
+          "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
+            "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
+              {
+                "content": "A String", # The contents of the file.
+                "name": "A String", # The name of the file.
+              },
+            ],
+            "config": { # The configuration to use for this deployment.
+              "content": "A String", # The contents of the file.
+            },
+          },
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Self link for the deployment.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="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, deployment, body, deletePolicy=None, createPolicy=None, preview=None)</code>
+  <pre>Updates a deployment and all of the resources described by the deployment manifest. This method supports patch semantics.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "description": "A String", # An optional user-provided description of the deployment.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here.
+      "labels": [ # [Output Only] Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
+      "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
+    },
+    "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
+    "insertTime": "A String", # [Output Only] Timestamp when the deployment was created, in RFC3339 text format .
+    "fingerprint": "A String", # Provides a fingerprint to use in requests to modify a deployment, such as update(), stop(), and cancelPreview() requests. A fingerprint is a randomly generated value that must be provided with update(), stop(), and cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time.
+        # 
+        # The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a get() request to a deployment.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
+      "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "config": { # The configuration to use for this deployment.
+        "content": "A String", # The contents of the file.
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the deployment.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  deletePolicy: string, Sets the policy to use for deleting resources.
+    Allowed values
+      ABANDON - 
+      DELETE - 
+  createPolicy: string, Sets the policy to use for creating new resources.
+    Allowed values
+      ACQUIRE - 
+      CREATE_OR_ACQUIRE - 
+  preview: boolean, If set to true, updates the deployment and creates and updates the "shell" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a target.config with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the update() or you can cancelPreview() to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(project, resource, body)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+    # 
+    # 
+    # 
+    # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+    # 
+    # **Example**
+    # 
+    # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+    # 
+    # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
+        "A String",
+      ],
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+            "A String",
+          ],
+          "logType": "A String", # The log type that this config enables.
+        },
+      ],
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+    },
+  ],
+  "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+    { # A rule to be applied in a Policy.
+      "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+        { # Specifies what kind of log the caller must write
+          "counter": { # Options for counters # Counter options.
+            "field": "A String", # The field value to attribute.
+            "metric": "A String", # The metric to update.
+          },
+        },
+      ],
+      "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+        "A String",
+      ],
+      "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+        "A String",
+      ],
+      "action": "A String", # Required
+      "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+        "A String",
+      ],
+      "conditions": [ # Additional restrictions that must be met
+        { # A condition to be met.
+          "iam": "A String", # Trusted attributes supplied by the IAM system.
+          "svc": "A String", # Trusted attributes discharged by the service.
+          "value": "A String", # DEPRECATED. Use 'values' instead.
+          "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+          "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+            "A String",
+          ],
+          "op": "A String", # An operator to apply the subject with.
+        },
+      ],
+      "description": "A String", # Human-readable description of the rule.
+    },
+  ],
+  "version": 42, # Version of the `Policy`. The default version is 0.
+  "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+      # 
+      # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+  "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Associates `members` with a `role`.
+      "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+          #
+          # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+          #
+          # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+          #
+          # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+          #
+          #
+          #
+          # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+          #
+          # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+          #
+          # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "A String",
+      ],
+    },
+  ],
+  "iamOwned": True or False,
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="stop">stop(project, deployment, body)</code>
+  <pre>Stops an ongoing operation. This does not roll back any work that has already been completed, but prevents any new work from being started.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "fingerprint": "A String", # Specifies a fingerprint for stop() requests. A fingerprint is a randomly generated value that must be provided in stop() requests to perform optimistic locking. This ensures optimistic concurrency so that the deployment does not have conflicting requests (e.g. if someone attempts to make a new update request while another user attempts to stop an ongoing update request, this would prevent a collision).
+        # 
+        # The fingerprint is initially generated by Deployment Manager and changes after every request to modify a deployment. To get the latest fingerprint value, perform a get() request on the deployment.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, deployment, body, deletePolicy=None, createPolicy=None, preview=None)</code>
+  <pre>Updates a deployment and all of the resources described by the deployment manifest.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "description": "A String", # An optional user-provided description of the deployment.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here.
+      "labels": [ # [Output Only] Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
+      "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
+    },
+    "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
+    "insertTime": "A String", # [Output Only] Timestamp when the deployment was created, in RFC3339 text format .
+    "fingerprint": "A String", # Provides a fingerprint to use in requests to modify a deployment, such as update(), stop(), and cancelPreview() requests. A fingerprint is a randomly generated value that must be provided with update(), stop(), and cancelPreview() requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time.
+        # 
+        # The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a get() request to a deployment.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
+      "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
+        {
+          "content": "A String", # The contents of the file.
+          "name": "A String", # The name of the file.
+        },
+      ],
+      "config": { # The configuration to use for this deployment.
+        "content": "A String", # The contents of the file.
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the deployment.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  deletePolicy: string, Sets the policy to use for deleting resources.
+    Allowed values
+      ABANDON - 
+      DELETE - 
+  createPolicy: string, Sets the policy to use for creating new resources.
+    Allowed values
+      ACQUIRE - 
+      CREATE_OR_ACQUIRE - 
+  preview: boolean, If set to true, updates the deployment and creates and updates the "shell" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a target.config with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the update() or you can cancelPreview() to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.html b/docs/dyn/deploymentmanager_alpha.html
new file mode 100644
index 0000000..ed03cf3
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.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="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.compositeTypes.html">compositeTypes()</a></code>
+</p>
+<p class="firstline">Returns the compositeTypes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.deployments.html">deployments()</a></code>
+</p>
+<p class="firstline">Returns the deployments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.manifests.html">manifests()</a></code>
+</p>
+<p class="firstline">Returns the manifests Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.resources.html">resources()</a></code>
+</p>
+<p class="firstline">Returns the resources Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.typeProviders.html">typeProviders()</a></code>
+</p>
+<p class="firstline">Returns the typeProviders Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_alpha.types.html">types()</a></code>
+</p>
+<p class="firstline">Returns the types Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.manifests.html b/docs/dyn/deploymentmanager_alpha.manifests.html
new file mode 100644
index 0000000..cd09623
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.manifests.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="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.manifests.html">manifests</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment, manifest)</a></code></p>
+<p class="firstline">Gets information about a specific manifest.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, deployment, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all manifests for a given deployment.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, deployment, manifest)</code>
+  <pre>Gets information about a specific manifest.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  manifest: string, The name of the manifest for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "layout": "A String", # [Output Only] The YAML layout for this manifest.
+    "name": "A String", # [Output Only] The name of the manifest.
+    "expandedConfig": "A String", # [Output Only] The fully-expanded configuration file, including any templates and references.
+    "imports": [ # [Output Only] The imported files for this manifest.
+      {
+        "content": "A String", # The contents of the file.
+        "name": "A String", # The name of the file.
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the manifest was created, in RFC3339 text format.
+    "config": { # [Output Only] The YAML configuration for this manifest.
+      "content": "A String", # The contents of the file.
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the manifest.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, deployment, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all manifests for a given deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of manifests and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "manifests": [ # [Output Only] Manifests contained in this list response.
+      {
+        "layout": "A String", # [Output Only] The YAML layout for this manifest.
+        "name": "A String", # [Output Only] The name of the manifest.
+        "expandedConfig": "A String", # [Output Only] The fully-expanded configuration file, including any templates and references.
+        "imports": [ # [Output Only] The imported files for this manifest.
+          {
+            "content": "A String", # The contents of the file.
+            "name": "A String", # The name of the file.
+          },
+        ],
+        "insertTime": "A String", # [Output Only] Timestamp when the manifest was created, in RFC3339 text format.
+        "config": { # [Output Only] The YAML configuration for this manifest.
+          "content": "A String", # The contents of the file.
+        },
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Self link for the manifest.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.operations.html b/docs/dyn/deploymentmanager_alpha.operations.html
new file mode 100644
index 0000000..a271f3c
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.operations.html
@@ -0,0 +1,237 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, operation)</a></code></p>
+<p class="firstline">Gets information about a specific operation.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all operations for a project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, operation)</code>
+  <pre>Gets information about a specific operation.
+
+Args:
+  project: string, The project ID for this request. (required)
+  operation: string, The name of the operation for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all operations for a project.
+
+Args:
+  project: string, The project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of operations and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "operations": [ # [Output Only] Operations contained in this list response.
+      { # An Operation resource, used to manage asynchronous API requests.
+        "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+        "clientOperationId": "A String", # [Output Only] Reserved for future use.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+        "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+        "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+        "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.resources.html b/docs/dyn/deploymentmanager_alpha.resources.html
new file mode 100644
index 0000000..22d6715
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.resources.html
@@ -0,0 +1,267 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.resources.html">resources</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment, resource)</a></code></p>
+<p class="firstline">Gets information about a single resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, deployment, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all resources in a given deployment.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, deployment, resource)</code>
+  <pre>Gets information about a single resource.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  resource: string, The name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "accessControl": { # The access controls set on the resource. # The Access Control Policy set on this resource.
+      "gcpIamPolicy": "A String", # The GCP IAM Policy to set on the resource.
+    },
+    "finalProperties": "A String", # [Output Only] The evaluated properties of the resource with references expanded. Returned as serialized YAML.
+    "properties": "A String", # [Output Only] The current properties of the resource before any references have been filled in. Returned as serialized YAML.
+    "name": "A String", # [Output Only] The name of the resource as it appears in the YAML config.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of this resource, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "url": "A String", # [Output Only] The URL of the actual resource.
+    "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this resource, the updated configuration appears here.
+      "accessControl": { # The access controls set on the resource. # The Access Control Policy to set on this resource after updating the resource itself.
+        "gcpIamPolicy": "A String", # The GCP IAM Policy to set on the resource.
+      },
+      "finalProperties": "A String", # [Output Only] The expanded properties of the resource with reference values expanded. Returned as serialized YAML.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of this resource, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this resource.
+      "state": "A String", # [Output Only] The state of the resource.
+      "intent": "A String", # [Output Only] The intent of the resource: PREVIEW, UPDATE, or CANCEL.
+      "error": { # [Output Only] If errors are generated during update of the resource, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "properties": "A String", # [Output Only] The set of updated properties for this resource, before references are expanded. Returned as serialized YAML.
+    },
+    "updateTime": "A String", # [Output Only] Timestamp when the resource was updated, in RFC3339 text format .
+    "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
+    "insertTime": "A String", # [Output Only] Timestamp when the resource was created or acquired, in RFC3339 text format .
+    "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or cloudfunctions.v1beta1.function.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, deployment, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all resources in a given deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of resources and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "resources": [ # Resources contained in this list response.
+      {
+        "accessControl": { # The access controls set on the resource. # The Access Control Policy set on this resource.
+          "gcpIamPolicy": "A String", # The GCP IAM Policy to set on the resource.
+        },
+        "finalProperties": "A String", # [Output Only] The evaluated properties of the resource with references expanded. Returned as serialized YAML.
+        "properties": "A String", # [Output Only] The current properties of the resource before any references have been filled in. Returned as serialized YAML.
+        "name": "A String", # [Output Only] The name of the resource as it appears in the YAML config.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of this resource, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "url": "A String", # [Output Only] The URL of the actual resource.
+        "update": { # [Output Only] If Deployment Manager is currently updating or previewing an update to this resource, the updated configuration appears here.
+          "accessControl": { # The access controls set on the resource. # The Access Control Policy to set on this resource after updating the resource itself.
+            "gcpIamPolicy": "A String", # The GCP IAM Policy to set on the resource.
+          },
+          "finalProperties": "A String", # [Output Only] The expanded properties of the resource with reference values expanded. Returned as serialized YAML.
+          "warnings": [ # [Output Only] If warning messages are generated during processing of this resource, this field will be populated.
+            {
+              "message": "A String", # [Output Only] A human-readable description of the warning code.
+              "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+              "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                  # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                {
+                  "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                  "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                },
+              ],
+            },
+          ],
+          "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this resource.
+          "state": "A String", # [Output Only] The state of the resource.
+          "intent": "A String", # [Output Only] The intent of the resource: PREVIEW, UPDATE, or CANCEL.
+          "error": { # [Output Only] If errors are generated during update of the resource, this field will be populated.
+            "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+              {
+                "message": "A String", # [Output Only] An optional, human-readable error message.
+                "code": "A String", # [Output Only] The error type identifier for this error.
+                "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+              },
+            ],
+          },
+          "properties": "A String", # [Output Only] The set of updated properties for this resource, before references are expanded. Returned as serialized YAML.
+        },
+        "updateTime": "A String", # [Output Only] Timestamp when the resource was updated, in RFC3339 text format .
+        "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
+        "insertTime": "A String", # [Output Only] Timestamp when the resource was created or acquired, in RFC3339 text format .
+        "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or cloudfunctions.v1beta1.function.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.typeProviders.html b/docs/dyn/deploymentmanager_alpha.typeProviders.html
new file mode 100644
index 0000000..b9af5c8
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.typeProviders.html
@@ -0,0 +1,902 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.typeProviders.html">typeProviders</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, typeProvider)</a></code></p>
+<p class="firstline">Deletes a type provider.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, typeProvider)</a></code></p>
+<p class="firstline">Gets information about a specific type provider.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a type provider.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all resource type providers for Deployment Manager.</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, typeProvider, body)</a></code></p>
+<p class="firstline">Updates a type provider. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, typeProvider, body)</a></code></p>
+<p class="firstline">Updates a type provider.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, typeProvider)</code>
+  <pre>Deletes a type provider.
+
+Args:
+  project: string, The project ID for this request. (required)
+  typeProvider: string, The name of the type provider for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, typeProvider)</code>
+  <pre>Gets information about a specific type provider.
+
+Args:
+  project: string, The project ID for this request. (required)
+  typeProvider: string, The name of the type provider for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # A type provider that describes a service-backed Type.
+      "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+        "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+          "password": "A String",
+          "user": "A String",
+        },
+      },
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+        "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+          "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+          "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+        },
+        "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+        "inputMappings": [ # The mappings that apply for requests.
+          { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+            "fieldName": "A String", # The name of the field that is going to be injected.
+            "location": "A String", # The location where this mapping applies.
+            "value": "A String", # A jsonPath expression to select an element.
+            "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+          },
+        ],
+      },
+      "collectionOverrides": [ # Allows resource handling overrides for specific collections
+        { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+          "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+            "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+              "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+              "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+            },
+            "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+            "inputMappings": [ # The mappings that apply for requests.
+              { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                "fieldName": "A String", # The name of the field that is going to be injected.
+                "location": "A String", # The location where this mapping applies.
+                "value": "A String", # A jsonPath expression to select an element.
+                "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+              },
+            ],
+          },
+          "collection": "A String", # The collection that identifies this resource within its service.
+        },
+      ],
+      "insertTime": "A String", # [Output Only] Timestamp when the type provider was created, in RFC3339 text format.
+      "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type provider.
+        "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+        "clientOperationId": "A String", # [Output Only] Reserved for future use.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+        "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+        "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+        "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+      },
+      "descriptorUrl": "A String", # Descriptor Url for the this type provider.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Self link for the type provider.
+      "name": "A String", # Name of the type provider.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a type provider.
+
+Args:
+  project: string, The project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A type provider that describes a service-backed Type.
+    "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+      "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+        "password": "A String",
+        "user": "A String",
+      },
+    },
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+      "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+        "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+        "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+      },
+      "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+      "inputMappings": [ # The mappings that apply for requests.
+        { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+          "fieldName": "A String", # The name of the field that is going to be injected.
+          "location": "A String", # The location where this mapping applies.
+          "value": "A String", # A jsonPath expression to select an element.
+          "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+        },
+      ],
+    },
+    "collectionOverrides": [ # Allows resource handling overrides for specific collections
+      { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+        "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+          "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+            "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+            "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+          },
+          "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+          "inputMappings": [ # The mappings that apply for requests.
+            { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+              "fieldName": "A String", # The name of the field that is going to be injected.
+              "location": "A String", # The location where this mapping applies.
+              "value": "A String", # A jsonPath expression to select an element.
+              "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+            },
+          ],
+        },
+        "collection": "A String", # The collection that identifies this resource within its service.
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type provider was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type provider.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "descriptorUrl": "A String", # Descriptor Url for the this type provider.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "name": "A String", # Name of the type provider.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all resource type providers for Deployment Manager.
+
+Args:
+  project: string, The project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response that returns all Type Providers supported by Deployment Manager
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "typeProviders": [ # [Output Only] A list of resource type providers supported by Deployment Manager.
+      { # A type provider that describes a service-backed Type.
+          "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+            "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+              "password": "A String",
+              "user": "A String",
+            },
+          },
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+            {
+              "value": "A String",
+              "key": "A String",
+            },
+          ],
+          "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+            "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+              "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+              "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+            },
+            "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+            "inputMappings": [ # The mappings that apply for requests.
+              { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                "fieldName": "A String", # The name of the field that is going to be injected.
+                "location": "A String", # The location where this mapping applies.
+                "value": "A String", # A jsonPath expression to select an element.
+                "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+              },
+            ],
+          },
+          "collectionOverrides": [ # Allows resource handling overrides for specific collections
+            { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+              "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+                "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+                  "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+                  "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+                },
+                "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+                "inputMappings": [ # The mappings that apply for requests.
+                  { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                    "fieldName": "A String", # The name of the field that is going to be injected.
+                    "location": "A String", # The location where this mapping applies.
+                    "value": "A String", # A jsonPath expression to select an element.
+                    "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+                  },
+                ],
+              },
+              "collection": "A String", # The collection that identifies this resource within its service.
+            },
+          ],
+          "insertTime": "A String", # [Output Only] Timestamp when the type provider was created, in RFC3339 text format.
+          "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type provider.
+            "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+            "clientOperationId": "A String", # [Output Only] Reserved for future use.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+            "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+            "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+            "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+            "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+            "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+            "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+            "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+            "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+            "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+              {
+                "message": "A String", # [Output Only] A human-readable description of the warning code.
+                "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+                "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                    # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                  {
+                    "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                    "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                  },
+                ],
+              },
+            ],
+            "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+            "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+            "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+            "name": "A String", # [Output Only] Name of the resource.
+            "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+            "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+              "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+                {
+                  "message": "A String", # [Output Only] An optional, human-readable error message.
+                  "code": "A String", # [Output Only] The error type identifier for this error.
+                  "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+                },
+              ],
+            },
+            "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+          },
+          "descriptorUrl": "A String", # Descriptor Url for the this type provider.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Self link for the type provider.
+          "name": "A String", # Name of the type provider.
+        },
+    ],
+  }</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, typeProvider, body)</code>
+  <pre>Updates a type provider. This method supports patch semantics.
+
+Args:
+  project: string, The project ID for this request. (required)
+  typeProvider: string, The name of the type provider for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A type provider that describes a service-backed Type.
+    "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+      "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+        "password": "A String",
+        "user": "A String",
+      },
+    },
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+      "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+        "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+        "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+      },
+      "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+      "inputMappings": [ # The mappings that apply for requests.
+        { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+          "fieldName": "A String", # The name of the field that is going to be injected.
+          "location": "A String", # The location where this mapping applies.
+          "value": "A String", # A jsonPath expression to select an element.
+          "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+        },
+      ],
+    },
+    "collectionOverrides": [ # Allows resource handling overrides for specific collections
+      { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+        "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+          "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+            "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+            "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+          },
+          "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+          "inputMappings": [ # The mappings that apply for requests.
+            { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+              "fieldName": "A String", # The name of the field that is going to be injected.
+              "location": "A String", # The location where this mapping applies.
+              "value": "A String", # A jsonPath expression to select an element.
+              "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+            },
+          ],
+        },
+        "collection": "A String", # The collection that identifies this resource within its service.
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type provider was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type provider.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "descriptorUrl": "A String", # Descriptor Url for the this type provider.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "name": "A String", # Name of the type provider.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, typeProvider, body)</code>
+  <pre>Updates a type provider.
+
+Args:
+  project: string, The project ID for this request. (required)
+  typeProvider: string, The name of the type provider for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A type provider that describes a service-backed Type.
+    "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+      "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+        "password": "A String",
+        "user": "A String",
+      },
+    },
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+      "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+        "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+        "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+      },
+      "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+      "inputMappings": [ # The mappings that apply for requests.
+        { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+          "fieldName": "A String", # The name of the field that is going to be injected.
+          "location": "A String", # The location where this mapping applies.
+          "value": "A String", # A jsonPath expression to select an element.
+          "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+        },
+      ],
+    },
+    "collectionOverrides": [ # Allows resource handling overrides for specific collections
+      { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+        "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+          "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+            "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+            "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+          },
+          "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+          "inputMappings": [ # The mappings that apply for requests.
+            { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+              "fieldName": "A String", # The name of the field that is going to be injected.
+              "location": "A String", # The location where this mapping applies.
+              "value": "A String", # A jsonPath expression to select an element.
+              "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+            },
+          ],
+        },
+        "collection": "A String", # The collection that identifies this resource within its service.
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type provider was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type provider.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "descriptorUrl": "A String", # Descriptor Url for the this type provider.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type provider.
+    "name": "A String", # Name of the type provider.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_alpha.types.html b/docs/dyn/deploymentmanager_alpha.types.html
new file mode 100644
index 0000000..1e56fdf
--- /dev/null
+++ b/docs/dyn/deploymentmanager_alpha.types.html
@@ -0,0 +1,912 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_alpha.html">Google Cloud Deployment Manager Alpha API</a> . <a href="deploymentmanager_alpha.types.html">types</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, type)</a></code></p>
+<p class="firstline">Deletes a type and all of the resources in the type.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, type)</a></code></p>
+<p class="firstline">Gets information about a specific type.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a type.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists all resource types for Deployment Manager.</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, type, body)</a></code></p>
+<p class="firstline">Updates a type. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, type, body)</a></code></p>
+<p class="firstline">Updates a type.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, type)</code>
+  <pre>Deletes a type and all of the resources in the type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  type: string, The name of the type for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, type)</code>
+  <pre>Gets information about a specific type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  type: string, The name of the type for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # A resource type supported by Deployment Manager.
+      "name": "A String", # Name of the type.
+      "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
+      "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
+        "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+        "clientOperationId": "A String", # [Output Only] Reserved for future use.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+        "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+        "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+          {
+            "message": "A String", # [Output Only] A human-readable description of the warning code.
+            "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+            "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+              {
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+        "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+      },
+      "configurableService": { # BaseType that describes a service-backed Type. # Base Type (configurable service) that backs this Type.
+        "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+          "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+            "password": "A String",
+            "user": "A String",
+          },
+        },
+        "descriptorUrl": "A String", # Descriptor Url for the this type.
+        "collectionOverrides": [ # Allows resource handling overrides for specific collections
+          { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+            "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+              "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+                "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+                "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+              },
+              "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+              "inputMappings": [ # The mappings that apply for requests.
+                { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                  "fieldName": "A String", # The name of the field that is going to be injected.
+                  "location": "A String", # The location where this mapping applies.
+                  "value": "A String", # A jsonPath expression to select an element.
+                  "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+                },
+              ],
+            },
+            "collection": "A String", # The collection that identifies this resource within its service.
+          },
+        ],
+        "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+          "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+            "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+            "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+          },
+          "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+          "inputMappings": [ # The mappings that apply for requests.
+            { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+              "fieldName": "A String", # The name of the field that is going to be injected.
+              "location": "A String", # The location where this mapping applies.
+              "value": "A String", # A jsonPath expression to select an element.
+              "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+            },
+          ],
+        },
+      },
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Self link for the type.
+      "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 type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A resource type supported by Deployment Manager.
+    "name": "A String", # Name of the type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "configurableService": { # BaseType that describes a service-backed Type. # Base Type (configurable service) that backs this Type.
+      "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+        "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+          "password": "A String",
+          "user": "A String",
+        },
+      },
+      "descriptorUrl": "A String", # Descriptor Url for the this type.
+      "collectionOverrides": [ # Allows resource handling overrides for specific collections
+        { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+          "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+            "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+              "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+              "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+            },
+            "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+            "inputMappings": [ # The mappings that apply for requests.
+              { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                "fieldName": "A String", # The name of the field that is going to be injected.
+                "location": "A String", # The location where this mapping applies.
+                "value": "A String", # A jsonPath expression to select an element.
+                "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+              },
+            ],
+          },
+          "collection": "A String", # The collection that identifies this resource within its service.
+        },
+      ],
+      "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+        "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+          "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+          "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+        },
+        "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+        "inputMappings": [ # The mappings that apply for requests.
+          { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+            "fieldName": "A String", # The name of the field that is going to be injected.
+            "location": "A String", # The location where this mapping applies.
+            "value": "A String", # A jsonPath expression to select an element.
+            "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+          },
+        ],
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists all resource types for Deployment Manager.
+
+Args:
+  project: string, The project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # A response that returns all Types supported by Deployment Manager
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "types": [ # [Output Only] A list of resource types supported by Deployment Manager.
+      { # A resource type supported by Deployment Manager.
+          "name": "A String", # Name of the type.
+          "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+            {
+              "value": "A String",
+              "key": "A String",
+            },
+          ],
+          "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
+          "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
+            "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+            "clientOperationId": "A String", # [Output Only] Reserved for future use.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+            "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+            "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+            "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+            "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+            "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+            "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+            "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+            "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+            "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+              {
+                "message": "A String", # [Output Only] A human-readable description of the warning code.
+                "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+                "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                    # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                  {
+                    "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                    "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                  },
+                ],
+              },
+            ],
+            "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+            "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+            "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+            "name": "A String", # [Output Only] Name of the resource.
+            "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+            "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+              "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+                {
+                  "message": "A String", # [Output Only] An optional, human-readable error message.
+                  "code": "A String", # [Output Only] The error type identifier for this error.
+                  "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+                },
+              ],
+            },
+            "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+          },
+          "configurableService": { # BaseType that describes a service-backed Type. # Base Type (configurable service) that backs this Type.
+            "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+              "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+                "password": "A String",
+                "user": "A String",
+              },
+            },
+            "descriptorUrl": "A String", # Descriptor Url for the this type.
+            "collectionOverrides": [ # Allows resource handling overrides for specific collections
+              { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+                "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+                  "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+                    "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+                    "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+                  },
+                  "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+                  "inputMappings": [ # The mappings that apply for requests.
+                    { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                      "fieldName": "A String", # The name of the field that is going to be injected.
+                      "location": "A String", # The location where this mapping applies.
+                      "value": "A String", # A jsonPath expression to select an element.
+                      "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+                    },
+                  ],
+                },
+                "collection": "A String", # The collection that identifies this resource within its service.
+              },
+            ],
+            "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+              "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+                "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+                "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+              },
+              "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+              "inputMappings": [ # The mappings that apply for requests.
+                { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                  "fieldName": "A String", # The name of the field that is going to be injected.
+                  "location": "A String", # The location where this mapping applies.
+                  "value": "A String", # A jsonPath expression to select an element.
+                  "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+                },
+              ],
+            },
+          },
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Self link for the type.
+          "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="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, type, body)</code>
+  <pre>Updates a type. This method supports patch semantics.
+
+Args:
+  project: string, The project ID for this request. (required)
+  type: string, The name of the type for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A resource type supported by Deployment Manager.
+    "name": "A String", # Name of the type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "configurableService": { # BaseType that describes a service-backed Type. # Base Type (configurable service) that backs this Type.
+      "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+        "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+          "password": "A String",
+          "user": "A String",
+        },
+      },
+      "descriptorUrl": "A String", # Descriptor Url for the this type.
+      "collectionOverrides": [ # Allows resource handling overrides for specific collections
+        { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+          "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+            "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+              "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+              "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+            },
+            "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+            "inputMappings": [ # The mappings that apply for requests.
+              { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                "fieldName": "A String", # The name of the field that is going to be injected.
+                "location": "A String", # The location where this mapping applies.
+                "value": "A String", # A jsonPath expression to select an element.
+                "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+              },
+            ],
+          },
+          "collection": "A String", # The collection that identifies this resource within its service.
+        },
+      ],
+      "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+        "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+          "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+          "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+        },
+        "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+        "inputMappings": [ # The mappings that apply for requests.
+          { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+            "fieldName": "A String", # The name of the field that is going to be injected.
+            "location": "A String", # The location where this mapping applies.
+            "value": "A String", # A jsonPath expression to select an element.
+            "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+          },
+        ],
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, type, body)</code>
+  <pre>Updates a type.
+
+Args:
+  project: string, The project ID for this request. (required)
+  type: string, The name of the type for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A resource type supported by Deployment Manager.
+    "name": "A String", # Name of the type.
+    "labels": [ # Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])? Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
+    "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
+      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+      "clientOperationId": "A String", # [Output Only] Reserved for future use.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+      "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+      "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+      "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+      "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+      "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+        {
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      ],
+      "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+      "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+      "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+      "name": "A String", # [Output Only] Name of the resource.
+      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+      "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+          },
+        ],
+      },
+      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+    },
+    "configurableService": { # BaseType that describes a service-backed Type. # Base Type (configurable service) that backs this Type.
+      "credential": { # Credential used by ConfigurableResourceTypes. # Credential used when interacting with this type.
+        "basicAuth": { # Basic Auth used as a credential. # Basic Auth Credentials for this Type.
+          "password": "A String",
+          "user": "A String",
+        },
+      },
+      "descriptorUrl": "A String", # Descriptor Url for the this type.
+      "collectionOverrides": [ # Allows resource handling overrides for specific collections
+        { # CollectionOverride allows resource handling overrides for specific resources within a BaseType
+          "options": { # Options allows customized resource handling by Deployment Manager. # The options to apply to this resource-level override
+            "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+              "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+              "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+            },
+            "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+            "inputMappings": [ # The mappings that apply for requests.
+              { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+                "fieldName": "A String", # The name of the field that is going to be injected.
+                "location": "A String", # The location where this mapping applies.
+                "value": "A String", # A jsonPath expression to select an element.
+                "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+              },
+            ],
+          },
+          "collection": "A String", # The collection that identifies this resource within its service.
+        },
+      ],
+      "options": { # Options allows customized resource handling by Deployment Manager. # Options to apply when handling any resources in this service.
+        "validationOptions": { # Options for how to validate and process properties on a resource. # Options for how to validate and process properties on a resource.
+          "undeclaredProperties": "A String", # Specify what to do with extra properties when executing a request.
+          "schemaValidation": "A String", # Customize how deployment manager will validate the resource against schema errors.
+        },
+        "nameProperty": "A String", # The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.
+        "inputMappings": [ # The mappings that apply for requests.
+          { # InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.
+            "fieldName": "A String", # The name of the field that is going to be injected.
+            "location": "A String", # The location where this mapping applies.
+            "value": "A String", # A jsonPath expression to select an element.
+            "methodMatch": "A String", # Regex to evaluate on method to decide if input applies.
+          },
+        ],
+      },
+    },
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the type.
+    "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", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "deploymentmanager#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2.deployments.html b/docs/dyn/deploymentmanager_v2.deployments.html
index 265cdc6..64c7076 100644
--- a/docs/dyn/deploymentmanager_v2.deployments.html
+++ b/docs/dyn/deploymentmanager_v2.deployments.html
@@ -134,7 +134,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -196,7 +196,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -266,6 +266,7 @@
             "key": "A String",
           },
         ],
+        "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
         "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
       },
       "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
@@ -276,7 +277,7 @@
       "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -357,16 +358,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -464,6 +469,7 @@
           "key": "A String",
         },
       ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
       "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
     },
     "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
@@ -474,7 +480,7 @@
     "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
       "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
       "clientOperationId": "A String", # [Output Only] Reserved for future use.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
       "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -540,7 +546,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -595,7 +601,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -628,6 +634,7 @@
                 "key": "A String",
               },
             ],
+            "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
             "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
           },
           "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
@@ -638,7 +645,7 @@
           "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
             "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
             "clientOperationId": "A String", # [Output Only] Reserved for future use.
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
             "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
             "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -738,6 +745,7 @@
           "key": "A String",
         },
       ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
       "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
     },
     "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
@@ -748,7 +756,7 @@
     "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
       "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
       "clientOperationId": "A String", # [Output Only] Reserved for future use.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
       "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -822,7 +830,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -887,16 +895,20 @@
     # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-  "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-      # 
-      # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-    { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-      "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+  "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+        #
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+      "exemptedMembers": [
         "A String",
       ],
-      "auditLogConfigs": [ # The configuration for each type of logging
-        { # Provides the configuration for a sub-type of logging.
-          "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+      "auditLogConfigs": [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example:
+            #
+            # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+            #
+            # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+          "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
             "A String",
           ],
           "logType": "A String", # The log type that this config enables.
@@ -984,16 +996,20 @@
       # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service. Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging Follows the same format of Binding.members.
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
               "A String",
             ],
             "logType": "A String", # The log type that this config enables.
@@ -1090,7 +1106,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1186,6 +1202,7 @@
           "key": "A String",
         },
       ],
+      "description": "A String", # [Output Only] An optional user-provided description of the deployment after the current update has been applied.
       "manifest": "A String", # [Output Only] URL of the manifest representing the update configuration of this deployment.
     },
     "manifest": "A String", # [Output Only] URL of the manifest representing the last manifest that was successfully deployed.
@@ -1196,7 +1213,7 @@
     "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this deployment.
       "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
       "clientOperationId": "A String", # [Output Only] Reserved for future use.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
       "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -1270,7 +1287,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/deploymentmanager_v2.manifests.html b/docs/dyn/deploymentmanager_v2.manifests.html
index fc82781..c64d1ca 100644
--- a/docs/dyn/deploymentmanager_v2.manifests.html
+++ b/docs/dyn/deploymentmanager_v2.manifests.html
@@ -127,7 +127,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/deploymentmanager_v2.operations.html b/docs/dyn/deploymentmanager_v2.operations.html
index 45db8e0..5d04c4e 100644
--- a/docs/dyn/deploymentmanager_v2.operations.html
+++ b/docs/dyn/deploymentmanager_v2.operations.html
@@ -98,7 +98,7 @@
     { # An Operation resource, used to manage asynchronous API requests.
     "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
     "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
     "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
@@ -153,7 +153,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -174,7 +174,7 @@
       { # An Operation resource, used to manage asynchronous API requests.
         "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
         "clientOperationId": "A String", # [Output Only] Reserved for future use.
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
         "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/deploymentmanager_v2.resources.html b/docs/dyn/deploymentmanager_v2.resources.html
index 6eb200f..4b3b9ff 100644
--- a/docs/dyn/deploymentmanager_v2.resources.html
+++ b/docs/dyn/deploymentmanager_v2.resources.html
@@ -169,7 +169,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
diff --git a/docs/dyn/deploymentmanager_v2.types.html b/docs/dyn/deploymentmanager_v2.types.html
index f58ad6c..f43ce07 100644
--- a/docs/dyn/deploymentmanager_v2.types.html
+++ b/docs/dyn/deploymentmanager_v2.types.html
@@ -92,7 +92,7 @@
 You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
 
 Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
   pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
   filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
 
@@ -115,7 +115,7 @@
         "operation": { # An Operation resource, used to manage asynchronous API requests. # [Output Only] The Operation that most recently ran, or is currently running, on this type.
           "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
           "clientOperationId": "A String", # [Output Only] Reserved for future use.
-          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
           "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
diff --git a/docs/dyn/dns_v2beta1.dnsKeys.html b/docs/dyn/dns_v2beta1.dnsKeys.html
new file mode 100644
index 0000000..9895347
--- /dev/null
+++ b/docs/dyn/dns_v2beta1.dnsKeys.html
@@ -0,0 +1,180 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_v2beta1.html">Google Cloud DNS API</a> . <a href="dns_v2beta1.dnsKeys.html">dnsKeys</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, managedZone, dnsKeyId, digestType=None, clientOperationId=None)</a></code></p>
+<p class="firstline">Fetch the representation of an existing DnsKey.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, managedZone, pageToken=None, digestType=None, maxResults=None)</a></code></p>
+<p class="firstline">Enumerate DnsKeys 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="get">get(project, managedZone, dnsKeyId, digestType=None, clientOperationId=None)</code>
+  <pre>Fetch the representation of an existing DnsKey.
+
+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)
+  dnsKeyId: string, The identifier of the requested DnsKey. (required)
+  digestType: string, An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type will be computed and displayed.
+  clientOperationId: string, For mutating operation requests only. An optional identifier specified by the client. Must be unique for operation resources in the Operations collection.
+
+Returns:
+  An object of the form:
+
+    { # A DNSSEC key pair.
+    "keyTag": 42, # The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone's DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B. Output only.
+    "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
+    "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
+    "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
+    "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
+    "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
+    "publicKey": "A String", # Base64 encoded public half of this key. Output only.
+    "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
+    "digests": [ # Cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Output only.
+      {
+        "type": "A String", # Specifies the algorithm used to calculate this digest.
+        "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
+      },
+    ],
+    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    "isActive": True or False, # Active keys will be used to sign subsequent changes to the ManagedZone. Inactive keys will still be present as DNSKEY Resource Records for the use of resolvers validating existing signatures.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, managedZone, pageToken=None, digestType=None, maxResults=None)</code>
+  <pre>Enumerate DnsKeys 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.
+  digestType: string, An optional comma-separated list of digest types to compute and display for key signing keys. If omitted, the recommended digest type will be computed and displayed.
+  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:
+
+    { # The response to a request to enumerate DnsKeys in a ManagedZone.
+    "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.
+    "header": { # Elements common to every response.
+      "operationId": "A String", # For mutating operation requests that completed successfully. This is the client_operation_id if the client specified it, otherwise it is generated by the server (output only).
+    },
+    "dnsKeys": [ # The requested resources.
+      { # A DNSSEC key pair.
+        "keyTag": 42, # The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone's DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B. Output only.
+        "kind": "dns#dnsKey", # Identifies what kind of resource this is. Value: the fixed string "dns#dnsKey".
+        "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the resource's function.
+        "algorithm": "A String", # String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time.
+        "keyLength": 42, # Length of the key in bits. Specified at creation time then immutable.
+        "creationTime": "A String", # The time that this resource was created in the control plane. This is in RFC3339 text format. Output only.
+        "publicKey": "A String", # Base64 encoded public half of this key. Output only.
+        "type": "A String", # One of "KEY_SIGNING" or "ZONE_SIGNING". Keys of type KEY_SIGNING have the Secure Entry Point flag set and, when active, will be used to sign only resource record sets of type DNSKEY. Otherwise, the Secure Entry Point flag will be cleared and this key will be used to sign only resource record sets of other types. Immutable after creation time.
+        "digests": [ # Cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Output only.
+          {
+            "type": "A String", # Specifies the algorithm used to calculate this digest.
+            "digest": "A String", # The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.
+          },
+        ],
+        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+        "isActive": True or False, # Active keys will be used to sign subsequent changes to the ManagedZone. Inactive keys will still be present as DNSKEY Resource Records for the use of resolvers validating existing signatures.
+      },
+    ],
+    "kind": "dns#dnsKeysListResponse", # 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.sdf.html b/docs/dyn/doubleclickbidmanager_v1.sdf.html
index ca4f7bd..285f502 100644
--- a/docs/dyn/doubleclickbidmanager_v1.sdf.html
+++ b/docs/dyn/doubleclickbidmanager_v1.sdf.html
@@ -92,7 +92,7 @@
     "fileTypes": [ # File types that will be returned.
       "A String",
     ],
-    "filterIds": [ # The IDs of the specified filter type. This is used to filter entities to fetch. At least one ID must be specified. Only one ID is allowed for the ADVERTISER_ID filter type. For INSERTION_ORDER_ID or LINE_ITEM_ID filter types all IDs must be from the same Advertiser.
+    "filterIds": [ # The IDs of the specified filter type. This is used to filter entities to fetch. At least one ID must be specified. Only one ID is allowed for the ADVERTISER_ID filter type. For INSERTION_ORDER_ID or LINE_ITEM_ID filter types, all IDs must be from the same Advertiser.
       "A String",
     ],
   }
diff --git a/docs/dyn/doubleclicksearch_v2.conversion.html b/docs/dyn/doubleclicksearch_v2.conversion.html
index 3517d55..5792954 100644
--- a/docs/dyn/doubleclicksearch_v2.conversion.html
+++ b/docs/dyn/doubleclicksearch_v2.conversion.html
@@ -134,7 +134,8 @@
           "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "deviceType": "A String", # The type of device on which the conversion occurred.
           "adId": "A String", # DS ad ID.
-          "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+          "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+              # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
           "channel": "A String", # Sales channel for the product. Acceptable values are:
               # - "local": a physical store
@@ -196,7 +197,8 @@
         "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "deviceType": "A String", # The type of device on which the conversion occurred.
         "adId": "A String", # DS ad ID.
-        "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+        "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+            # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
         "channel": "A String", # Sales channel for the product. Acceptable values are:
             # - "local": a physical store
@@ -253,7 +255,8 @@
           "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "deviceType": "A String", # The type of device on which the conversion occurred.
           "adId": "A String", # DS ad ID.
-          "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+          "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+              # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
           "channel": "A String", # Sales channel for the product. Acceptable values are:
               # - "local": a physical store
@@ -322,7 +325,8 @@
         "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "deviceType": "A String", # The type of device on which the conversion occurred.
         "adId": "A String", # DS ad ID.
-        "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+        "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+            # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
         "channel": "A String", # Sales channel for the product. Acceptable values are:
             # - "local": a physical store
@@ -379,7 +383,8 @@
           "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "deviceType": "A String", # The type of device on which the conversion occurred.
           "adId": "A String", # DS ad ID.
-          "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+          "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+              # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
           "channel": "A String", # Sales channel for the product. Acceptable values are:
               # - "local": a physical store
@@ -441,7 +446,8 @@
         "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "deviceType": "A String", # The type of device on which the conversion occurred.
         "adId": "A String", # DS ad ID.
-        "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+        "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+            # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
         "channel": "A String", # Sales channel for the product. Acceptable values are:
             # - "local": a physical store
@@ -498,7 +504,8 @@
           "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "deviceType": "A String", # The type of device on which the conversion occurred.
           "adId": "A String", # DS ad ID.
-          "conversionId": "A String", # For offline conversions, this is an ID that advertisers are required to provide. Advertisers can specify any ID that is meaningful to them. For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
+          "conversionId": "A String", # For offline conversions, advertisers provide this ID. Advertisers can specify any ID that is meaningful to them. Each conversion in a request must specify a unique ID, and the combination of ID and timestamp must be unique amongst all conversions within the advertiser.
+              # For online conversions, DS copies the dsConversionId or floodlightOrderId into this property depending on the advertiser's Floodlight instructions.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
           "channel": "A String", # Sales channel for the product. Acceptable values are:
               # - "local": a physical store
diff --git a/docs/dyn/drive_v2.apps.html b/docs/dyn/drive_v2.apps.html
index 8101889..eb655a6 100644
--- a/docs/dyn/drive_v2.apps.html
+++ b/docs/dyn/drive_v2.apps.html
@@ -149,7 +149,7 @@
   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.
+    "items": [ # The 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",
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
index e0a37c5..431b105 100644
--- a/docs/dyn/drive_v2.changes.html
+++ b/docs/dyn/drive_v2.changes.html
@@ -75,34 +75,60 @@
 <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>
+  <code><a href="#get">get(changeId, supportsTeamDrives=None, teamDriveId=None)</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, spaces=None)</a></code></p>
-<p class="firstline">Lists the changes for a user.</p>
+  <code><a href="#getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</a></code></p>
+<p class="firstline">Gets the starting pageToken for listing future changes.</p>
+<p class="toc_element">
+  <code><a href="#list">list(includeSubscribed=None, includeDeleted=None, includeTeamDriveItems=None, pageToken=None, supportsTeamDrives=None, maxResults=None, startChangeId=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None)</a></code></p>
+<p class="firstline">Lists the changes for a user or Team Drive.</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, spaces=None)</a></code></p>
+  <code><a href="#watch">watch(body, supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeTeamDriveItems=None, includeCorpusRemovals=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>
+    <code class="details" id="get">get(changeId, supportsTeamDrives=None, teamDriveId=None)</code>
   <pre>Gets a specific change.
 
 Args:
   changeId: string, The ID of the change. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  teamDriveId: string, The Team Drive from which the change will be returned.
 
 Returns:
   An object of the form:
 
-    { # Representation of a change to a file.
+    { # Representation of a change to a file or Team Drive.
+    "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been deleted.
+      "kind": "drive#teamDrive", # This is always drive#teamDrive
+      "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+      "capabilities": { # Capabilities the current user has on this Team Drive.
+        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+        "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+        "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+        "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+        "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+        "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+        "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+        "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+        "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+        "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+        "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+        "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+        "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+      },
+      "name": "A String", # The name of this Team Drive.
+    },
     "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.
+    "deleted": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
+    "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
       "hasThumbnail": True or False, # Whether this file has a thumbnail.
       "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+      "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
       "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
       "appDataContents": True or False, # Whether this file is in the Application Data folder.
       "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -117,12 +143,12 @@
       "indexableText": { # Indexable text attributes for the file (can only be written)
         "text": "A String", # The text to be indexed for this file.
       },
-      "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+      "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
       "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
       "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
       "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.
+      "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+      "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
         { # Information about a Drive user.
           "picture": { # The user's profile picture.
             "url": "A String", # A URL that points to a profile picture of this user.
@@ -134,7 +160,7 @@
           "emailAddress": "A String", # The email address of the user.
         },
       ],
-      "ownedByMe": True or False, # Whether the file is owned by the current user.
+      "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
       "id": "A String", # The ID of the file.
       "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
         "picture": { # The user's profile picture.
@@ -146,6 +172,16 @@
         "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
         "emailAddress": "A String", # The email address of the user.
       },
+      "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+        "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.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "emailAddress": "A String", # The email address of the user.
+      },
       "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.
       "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
         "picture": { # The user's profile picture.
@@ -157,12 +193,30 @@
         "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
         "emailAddress": "A String", # The email address of the user.
       },
-      "copyable": True or False, # Whether the file can be copied by the current user.
-      "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+      "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+      "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
       "markedViewedByMeDate": "A String", # Deprecated.
-      "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
         "A String",
       ],
+      "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+        "canTrash": True or False, # Whether the file can be trashed by the current user.
+        "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+        "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+        "canDelete": True or False, # Whether the file can be deleted by the current user.
+        "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+        "canRename": True or False, # Whether the file can be renamed by the current user.
+        "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+        "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+        "canDownload": True or False, # Whether the file can be downloaded by the current user.
+        "canComment": True or False, # Whether the current user can comment on the file.
+        "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+        "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+        "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+        "canEdit": True or False, # Whether the file can be edited by the current user.
+        "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      },
       "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.
@@ -179,20 +233,41 @@
       "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.
-      "permissions": [ # The list of permissions for users with access to this file.
+      "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+      "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
         { # 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 present when the permission type is user, group or domain.
           "name": "A String", # The name for this permission.
+          "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+            {
+              "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+              "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                  # - organizer
+                  # - reader
+                  # - writer
+              "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+                "A String",
+              ],
+              "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                  # - file
+                  # - member
+              "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+            },
+          ],
           "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-          "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-          "role": "A String", # The primary role for this user. Allowed values are:
+          "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+              # - They can only be set on user and group permissions
+              # - The date must be in the future
+              # - The date cannot be more than a year in the future
+              # - The date can only be set on drive.permissions.update requests
+          "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+              # - organizer
               # - owner
               # - reader
               # - writer
@@ -201,7 +276,7 @@
               # - group
               # - domain
               # - anyone
-          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
             "A String",
           ],
           "selfLink": "A String", # A link back to this permission.
@@ -212,7 +287,7 @@
       "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",
       },
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
       "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.
@@ -247,12 +322,13 @@
         "durationMillis": "A String", # The duration of the video in milliseconds.
         "height": 42, # The height of the video in pixels.
       },
-      "editable": True or False, # Whether the file can be edited by the current user.
+      "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
       "kind": "drive#file", # The type of file. This is always drive#file.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
       "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
       "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
       "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+      "teamDriveId": "A String", # ID of the Team Drive the file resides in.
       "properties": [ # The list of properties.
         { # A key-value pair attached to a file that is either public or private to an application.
             # The following limits apply to file properties:
@@ -284,14 +360,35 @@
         "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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -300,7 +397,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -309,14 +406,17 @@
       "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
         "A String",
       ],
-      "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
       "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
       "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+      "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
       "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
       "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.
+    "teamDriveId": "A String", # The ID of the Team Drive associated with this change.
+    "type": "A String", # The type of the change. Possible values are file and teamDrive.
     "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.
@@ -324,30 +424,72 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None, spaces=None)</code>
-  <pre>Lists the changes for a user.
+    <code class="details" id="getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</code>
+  <pre>Gets the starting pageToken for listing future changes.
+
+Args:
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  teamDriveId: string, The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "drive#startPageToken", # Identifies what kind of resource this is. Value: the fixed string "drive#startPageToken".
+    "startPageToken": "A String", # The starting page token for listing changes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(includeSubscribed=None, includeDeleted=None, includeTeamDriveItems=None, pageToken=None, supportsTeamDrives=None, maxResults=None, startChangeId=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None)</code>
+  <pre>Lists the changes for a user or Team Drive.
 
 Args:
   includeSubscribed: boolean, Whether to include public files the user has opened and shared files. When set to false, the list only includes owned files plus any shared or public files the user has explicitly added to a folder they own.
-  includeDeleted: boolean, Whether to include deleted items.
-  pageToken: string, Page token for changes.
+  includeDeleted: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
+  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
+  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   maxResults: integer, Maximum number of changes to return.
   startChangeId: string, Change ID to start listing changes from.
   spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
+  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
+  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
 
 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.
+    "nextPageToken": "A String", # The page token for the next page of changes. This will be absent if the end of the changes list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#changeList", # This is always drive#changeList.
-    "items": [ # The actual list of changes.
-      { # Representation of a change to a file.
+    "items": [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+      { # Representation of a change to a file or Team Drive.
+        "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been deleted.
+          "kind": "drive#teamDrive", # This is always drive#teamDrive
+          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+          "capabilities": { # Capabilities the current user has on this Team Drive.
+            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+            "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+            "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+            "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+            "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+            "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+            "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+            "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+            "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+            "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+            "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+            "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+            "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+          },
+          "name": "A String", # The name of this Team Drive.
+        },
         "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.
+        "deleted": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
+        "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
           "hasThumbnail": True or False, # Whether this file has a thumbnail.
           "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+          "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
           "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
           "appDataContents": True or False, # Whether this file is in the Application Data folder.
           "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -362,12 +504,12 @@
           "indexableText": { # Indexable text attributes for the file (can only be written)
             "text": "A String", # The text to be indexed for this file.
           },
-          "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+          "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
           "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
           "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
           "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.
+          "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+          "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
             { # Information about a Drive user.
               "picture": { # The user's profile picture.
                 "url": "A String", # A URL that points to a profile picture of this user.
@@ -379,7 +521,7 @@
               "emailAddress": "A String", # The email address of the user.
             },
           ],
-          "ownedByMe": True or False, # Whether the file is owned by the current user.
+          "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
           "id": "A String", # The ID of the file.
           "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
             "picture": { # The user's profile picture.
@@ -391,6 +533,16 @@
             "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
             "emailAddress": "A String", # The email address of the user.
           },
+          "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+            "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.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "emailAddress": "A String", # The email address of the user.
+          },
           "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.
           "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
             "picture": { # The user's profile picture.
@@ -402,12 +554,30 @@
             "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
             "emailAddress": "A String", # The email address of the user.
           },
-          "copyable": True or False, # Whether the file can be copied by the current user.
-          "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+          "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+          "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
           "markedViewedByMeDate": "A String", # Deprecated.
-          "ownerNames": [ # Name(s) of the owner(s) of this file.
+          "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
             "A String",
           ],
+          "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+            "canTrash": True or False, # Whether the file can be trashed by the current user.
+            "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+            "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+            "canDelete": True or False, # Whether the file can be deleted by the current user.
+            "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+            "canRename": True or False, # Whether the file can be renamed by the current user.
+            "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+            "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+            "canDownload": True or False, # Whether the file can be downloaded by the current user.
+            "canComment": True or False, # Whether the current user can comment on the file.
+            "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+            "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+            "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+            "canEdit": True or False, # Whether the file can be edited by the current user.
+            "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+          },
           "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.
@@ -424,20 +594,41 @@
           "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.
-          "permissions": [ # The list of permissions for users with access to this file.
+          "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+          "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
             { # 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 present when the permission type is user, group or domain.
               "name": "A String", # The name for this permission.
+              "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+                {
+                  "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+                  "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                      # - organizer
+                      # - reader
+                      # - writer
+                  "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+                    "A String",
+                  ],
+                  "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                      # - file
+                      # - member
+                  "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+                },
+              ],
               "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
               "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
               "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-              "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-              "role": "A String", # The primary role for this user. Allowed values are:
+              "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+                  # - They can only be set on user and group permissions
+                  # - The date must be in the future
+                  # - The date cannot be more than a year in the future
+                  # - The date can only be set on drive.permissions.update requests
+              "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+                  # - organizer
                   # - owner
                   # - reader
                   # - writer
@@ -446,7 +637,7 @@
                   # - group
                   # - domain
                   # - anyone
-              "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+              "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
                 "A String",
               ],
               "selfLink": "A String", # A link back to this permission.
@@ -457,7 +648,7 @@
           "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",
           },
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
           "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.
@@ -492,12 +683,13 @@
             "durationMillis": "A String", # The duration of the video in milliseconds.
             "height": 42, # The height of the video in pixels.
           },
-          "editable": True or False, # Whether the file can be edited by the current user.
+          "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
           "kind": "drive#file", # The type of file. This is always drive#file.
-          "canComment": True or False, # Whether the current user can comment on the file.
+          "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
           "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
           "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
           "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+          "teamDriveId": "A String", # ID of the Team Drive the file resides in.
           "properties": [ # The list of properties.
             { # A key-value pair attached to a file that is either public or private to an application.
                 # The following limits apply to file properties:
@@ -529,14 +721,35 @@
             "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 present when the permission type is user, group or domain.
             "name": "A String", # The name for this permission.
+            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+              {
+                "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+                "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                    # - organizer
+                    # - reader
+                    # - writer
+                "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+                  "A String",
+                ],
+                "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                    # - file
+                    # - member
+                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+              },
+            ],
             "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-            "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-            "role": "A String", # The primary role for this user. Allowed values are:
+            "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+                # - They can only be set on user and group permissions
+                # - The date must be in the future
+                # - The date cannot be more than a year in the future
+                # - The date can only be set on drive.permissions.update requests
+            "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+                # - organizer
                 # - owner
                 # - reader
                 # - writer
@@ -545,7 +758,7 @@
                 # - group
                 # - domain
                 # - anyone
-            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
               "A String",
             ],
             "selfLink": "A String", # A link back to this permission.
@@ -554,14 +767,17 @@
           "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
             "A String",
           ],
-          "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+          "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
           "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
           "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+          "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
           "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
           "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.
+        "teamDriveId": "A String", # The ID of the Team Drive associated with this change.
+        "type": "A String", # The type of the change. Possible values are file and teamDrive.
         "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.
@@ -569,6 +785,7 @@
     ],
     "nextLink": "A String", # A link to the next page of changes.
     "etag": "A String", # The ETag of the list.
+    "newStartPageToken": "A String", # The starting page token for future changes. This will be present only if the end of the current changes list has been reached.
     "largestChangeId": "A String", # The current largest change ID.
     "selfLink": "A String", # A link back to this list.
   }</pre>
@@ -589,7 +806,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(body, includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None, spaces=None)</code>
+    <code class="details" id="watch">watch(body, supportsTeamDrives=None, spaces=None, startChangeId=None, pageToken=None, includeSubscribed=None, includeDeleted=None, maxResults=None, teamDriveId=None, includeTeamDriveItems=None, includeCorpusRemovals=None)</code>
   <pre>Subscribe to changes for a user.
 
 Args:
@@ -611,12 +828,16 @@
     "id": "A String", # A UUID or similar unique string that identifies this channel.
   }
 
-  includeSubscribed: boolean, Whether to include public files the user has opened and shared files. When set to false, the list only includes owned files plus any shared or public files the user has explicitly added to a folder they own.
-  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.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
+  startChangeId: string, Change ID to start listing changes from.
+  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.
+  includeSubscribed: boolean, Whether to include public files the user has opened and shared files. When set to false, the list only includes owned files plus any shared or public files the user has explicitly added to a folder they own.
+  includeDeleted: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
+  maxResults: integer, Maximum number of changes to return.
+  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
+  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
+  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/drive_v2.children.html b/docs/dyn/drive_v2.children.html
index 03529ab..59d9772 100644
--- a/docs/dyn/drive_v2.children.html
+++ b/docs/dyn/drive_v2.children.html
@@ -81,7 +81,7 @@
   <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>
+  <code><a href="#insert">insert(folderId, body, supportsTeamDrives=None)</a></code></p>
 <p class="firstline">Inserts a file into a folder.</p>
 <p class="toc_element">
   <code><a href="#list">list(folderId, orderBy=None, q=None, pageToken=None, maxResults=None)</a></code></p>
@@ -120,7 +120,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(folderId, body)</code>
+    <code class="details" id="insert">insert(folderId, body, supportsTeamDrives=None)</code>
   <pre>Inserts a file into a folder.
 
 Args:
@@ -135,6 +135,7 @@
     "selfLink": "A String", # A link back to this reference.
   }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -162,9 +163,9 @@
   An object of the form:
 
     { # A list of children of a file.
-    "nextPageToken": "A String", # The page token for the next page of children.
+    "nextPageToken": "A String", # The page token for the next page of children. This will be absent if the end of the children list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#childList", # This is always drive#childList.
-    "items": [ # The actual list of children.
+    "items": [ # The list of children. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # A reference to a folder's child.
           "kind": "drive#childReference", # This is always drive#childReference.
           "childLink": "A String", # A link to the child.
diff --git a/docs/dyn/drive_v2.comments.html b/docs/dyn/drive_v2.comments.html
index 898fc2e..f71ae04 100644
--- a/docs/dyn/drive_v2.comments.html
+++ b/docs/dyn/drive_v2.comments.html
@@ -313,8 +313,8 @@
   An object of the form:
 
     { # 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.
+    "nextPageToken": "A String", # The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "items": [ # The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # 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.
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
index 834122b..35b29bd 100644
--- a/docs/dyn/drive_v2.files.html
+++ b/docs/dyn/drive_v2.files.html
@@ -75,11 +75,11 @@
 <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>
+  <code><a href="#copy">copy(fileId, body, pinned=None, convert=None, supportsTeamDrives=None, ocrLanguage=None, visibility=None, ocr=None, timedTextTrackName=None, timedTextLanguage=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. The currently authenticated user must own the file.</p>
+  <code><a href="#delete">delete(fileId, supportsTeamDrives=None)</a></code></p>
+<p class="firstline">Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.</p>
 <p class="toc_element">
   <code><a href="#emptyTrash">emptyTrash()</a></code></p>
 <p class="firstline">Permanently deletes all of the user's trashed files.</p>
@@ -93,44 +93,44 @@
   <code><a href="#generateIds">generateIds(space=None, maxResults=None)</a></code></p>
 <p class="firstline">Generates a set of file IDs which can be provided in insert requests.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#get">get(fileId, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Gets a file's metadata by ID.</p>
 <p class="toc_element">
-  <code><a href="#get_media">get_media(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#get_media">get_media(fileId, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Gets a file's metadata by ID.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(body=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, visibility=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, timedTextLanguage=None)</a></code></p>
+  <code><a href="#insert">insert(body=None, supportsTeamDrives=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, visibility=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, timedTextLanguage=None)</a></code></p>
 <p class="firstline">Insert a new file.</p>
 <p class="toc_element">
-  <code><a href="#list">list(orderBy=None, q=None, projection=None, pageToken=None, maxResults=None, spaces=None, corpus=None)</a></code></p>
+  <code><a href="#list">list(orderBy=None, projection=None, supportsTeamDrives=None, spaces=None, pageToken=None, corpus=None, maxResults=None, teamDriveId=None, includeTeamDriveItems=None, corpora=None, q=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, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
+  <code><a href="#patch">patch(fileId, body, supportsTeamDrives=None, newRevision=None, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
 <p class="firstline">Updates file metadata and/or content. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#touch">touch(fileId)</a></code></p>
+  <code><a href="#touch">touch(fileId, supportsTeamDrives=None)</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. The currently authenticated user must own the file.</p>
+  <code><a href="#trash">trash(fileId, supportsTeamDrives=None)</a></code></p>
+<p class="firstline">Moves a file to the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.</p>
 <p class="toc_element">
-  <code><a href="#untrash">untrash(fileId)</a></code></p>
+  <code><a href="#untrash">untrash(fileId, supportsTeamDrives=None)</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, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
+  <code><a href="#update">update(fileId, body=None, supportsTeamDrives=None, newRevision=None, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=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, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#watch">watch(fileId, body, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Subscribe to changes on a file</p>
 <p class="toc_element">
-  <code><a href="#watch_media">watch_media(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#watch_media">watch_media(fileId, body, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Subscribe to changes on a file</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="copy">copy(fileId, body, pinned=None, convert=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None)</code>
+    <code class="details" id="copy">copy(fileId, body, pinned=None, convert=None, supportsTeamDrives=None, ocrLanguage=None, visibility=None, ocr=None, timedTextTrackName=None, timedTextLanguage=None)</code>
   <pre>Creates a copy of the specified file.
 
 Args:
@@ -141,6 +141,7 @@
 { # The metadata for a file.
   "hasThumbnail": True or False, # Whether this file has a thumbnail.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
   "appDataContents": True or False, # Whether this file is in the Application Data folder.
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -155,12 +156,12 @@
   "indexableText": { # Indexable text attributes for the file (can only be written)
     "text": "A String", # The text to be indexed for this file.
   },
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
   "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.
+  "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+  "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
     { # Information about a Drive user.
       "picture": { # The user's profile picture.
         "url": "A String", # A URL that points to a profile picture of this user.
@@ -172,7 +173,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
   ],
-  "ownedByMe": True or False, # Whether the file is owned by the current user.
+  "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
     "picture": { # The user's profile picture.
@@ -184,6 +185,16 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "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.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "emailAddress": "A String", # The email address of the user.
+  },
   "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.
   "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
     "picture": { # The user's profile picture.
@@ -195,12 +206,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user.
-  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
-  "ownerNames": [ # Name(s) of the owner(s) of this file.
+  "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the current user.
+    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the file can be edited by the current user.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+  },
   "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.
@@ -217,20 +246,41 @@
   "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.
-  "permissions": [ # The list of permissions for users with access to this file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
     { # 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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -239,7 +289,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -250,7 +300,7 @@
   "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",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
   "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.
@@ -285,12 +335,13 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user.
+  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file.
+  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": [ # The list of properties.
     { # A key-value pair attached to a file that is either public or private to an application.
         # The following limits apply to file properties:
@@ -322,14 +373,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -338,7 +410,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -347,9 +419,10 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "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.
@@ -357,14 +430,15 @@
 
   pinned: boolean, Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned revisions.
   convert: boolean, Whether to convert this file to the corresponding Google Docs format.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are BCP 47 codes.
   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 BCP 47 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.
+  timedTextLanguage: string, The language of the timed text.
 
 Returns:
   An object of the form:
@@ -372,6 +446,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -386,12 +461,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -403,7 +478,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -415,6 +490,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -426,12 +511,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -448,20 +551,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -470,7 +594,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -481,7 +605,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -516,12 +640,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -553,14 +678,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -569,7 +715,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -578,9 +724,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -588,11 +735,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(fileId)</code>
-  <pre>Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file.
+    <code class="details" id="delete">delete(fileId, supportsTeamDrives=None)</code>
+  <pre>Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.
 
 Args:
   fileId: string, The ID of the file to delete. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
@@ -645,7 +793,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+    <code class="details" id="get">get(fileId, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Gets a file's metadata by ID.
 
 Args:
@@ -655,6 +803,7 @@
       BASIC - Deprecated
       FULL - Deprecated
   revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.
 
@@ -664,6 +813,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -678,12 +828,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -695,7 +845,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -707,6 +857,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -718,12 +878,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -740,20 +918,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -762,7 +961,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -773,7 +972,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -808,12 +1007,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -845,14 +1045,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -861,7 +1082,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -870,9 +1091,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -880,7 +1102,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get_media">get_media(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+    <code class="details" id="get_media">get_media(fileId, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Gets a file's metadata by ID.
 
 Args:
@@ -890,6 +1112,7 @@
       BASIC - Deprecated
       FULL - Deprecated
   revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.
 
@@ -900,7 +1123,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(body=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, visibility=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, timedTextLanguage=None)</code>
+    <code class="details" id="insert">insert(body=None, supportsTeamDrives=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, visibility=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, timedTextLanguage=None)</code>
   <pre>Insert a new file.
 
 Args:
@@ -910,6 +1133,7 @@
 { # The metadata for a file.
   "hasThumbnail": True or False, # Whether this file has a thumbnail.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
   "appDataContents": True or False, # Whether this file is in the Application Data folder.
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -924,12 +1148,12 @@
   "indexableText": { # Indexable text attributes for the file (can only be written)
     "text": "A String", # The text to be indexed for this file.
   },
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
   "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.
+  "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+  "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
     { # Information about a Drive user.
       "picture": { # The user's profile picture.
         "url": "A String", # A URL that points to a profile picture of this user.
@@ -941,7 +1165,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
   ],
-  "ownedByMe": True or False, # Whether the file is owned by the current user.
+  "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
     "picture": { # The user's profile picture.
@@ -953,6 +1177,16 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "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.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "emailAddress": "A String", # The email address of the user.
+  },
   "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.
   "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
     "picture": { # The user's profile picture.
@@ -964,12 +1198,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user.
-  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
-  "ownerNames": [ # Name(s) of the owner(s) of this file.
+  "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the current user.
+    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the file can be edited by the current user.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+  },
   "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.
@@ -986,20 +1238,41 @@
   "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.
-  "permissions": [ # The list of permissions for users with access to this file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
     { # 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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -1008,7 +1281,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -1019,7 +1292,7 @@
   "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",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
   "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.
@@ -1054,12 +1327,13 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user.
+  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file.
+  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": [ # The list of properties.
     { # A key-value pair attached to a file that is either public or private to an application.
         # The following limits apply to file properties:
@@ -1091,14 +1365,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -1107,7 +1402,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -1116,14 +1411,16 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "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.
 }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   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 BCP 47 codes.
   ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
@@ -1144,6 +1441,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -1158,12 +1456,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -1175,7 +1473,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -1187,6 +1485,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -1198,12 +1506,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -1220,20 +1546,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -1242,7 +1589,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -1253,7 +1600,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -1288,12 +1635,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -1325,14 +1673,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -1341,7 +1710,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -1350,9 +1719,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -1360,34 +1730,40 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(orderBy=None, q=None, projection=None, pageToken=None, maxResults=None, spaces=None, corpus=None)</code>
+    <code class="details" id="list">list(orderBy=None, projection=None, supportsTeamDrives=None, spaces=None, pageToken=None, corpus=None, maxResults=None, teamDriveId=None, includeTeamDriveItems=None, corpora=None, q=None)</code>
   <pre>Lists the user's files.
 
 Args:
   orderBy: string, A comma-separated list of sort keys. Valid keys are 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', and 'title'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.
-  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.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  corpus: string, The body of items (files/documents) to which the query applies.
+  pageToken: string, Page token for files.
+  corpus: string, The body of items (files/documents) to which the query applies. Deprecated: use 'corpora' instead.
     Allowed values
       DEFAULT - The items that the user has accessed.
       DOMAIN - Items shared to the user's domain.
+  maxResults: integer, Maximum number of files to return.
+  teamDriveId: string, ID of Team Drive to search.
+  includeTeamDriveItems: boolean, Whether Team Drive items should be included in results.
+  corpora: string, Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'default'; all other values must be used in isolation. Prefer 'default' or 'teamDrive' to 'allTeamDrives' for efficiency.
+  q: string, Query string for searching files.
 
 Returns:
   An object of the form:
 
     { # A list of files.
-    "nextPageToken": "A String", # The page token for the next page of files.
+    "incompleteSearch": True or False, # Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple Team Drives with the "default,allTeamDrives" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as "default" or "teamDrive".
+    "nextPageToken": "A String", # The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#fileList", # This is always drive#fileList.
-    "items": [ # The actual list of files.
+    "items": [ # The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # The metadata for a file.
         "hasThumbnail": True or False, # Whether this file has a thumbnail.
         "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+        "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
         "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
         "appDataContents": True or False, # Whether this file is in the Application Data folder.
         "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -1402,12 +1778,12 @@
         "indexableText": { # Indexable text attributes for the file (can only be written)
           "text": "A String", # The text to be indexed for this file.
         },
-        "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+        "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
         "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
         "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
         "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.
+        "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+        "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
           { # Information about a Drive user.
             "picture": { # The user's profile picture.
               "url": "A String", # A URL that points to a profile picture of this user.
@@ -1419,7 +1795,7 @@
             "emailAddress": "A String", # The email address of the user.
           },
         ],
-        "ownedByMe": True or False, # Whether the file is owned by the current user.
+        "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
         "id": "A String", # The ID of the file.
         "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
           "picture": { # The user's profile picture.
@@ -1431,6 +1807,16 @@
           "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
           "emailAddress": "A String", # The email address of the user.
         },
+        "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+          "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.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "emailAddress": "A String", # The email address of the user.
+        },
         "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.
         "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
           "picture": { # The user's profile picture.
@@ -1442,12 +1828,30 @@
           "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
           "emailAddress": "A String", # The email address of the user.
         },
-        "copyable": True or False, # Whether the file can be copied by the current user.
-        "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+        "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+        "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
         "markedViewedByMeDate": "A String", # Deprecated.
-        "ownerNames": [ # Name(s) of the owner(s) of this file.
+        "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
           "A String",
         ],
+        "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+          "canTrash": True or False, # Whether the file can be trashed by the current user.
+          "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+          "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+          "canDelete": True or False, # Whether the file can be deleted by the current user.
+          "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+          "canRename": True or False, # Whether the file can be renamed by the current user.
+          "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+          "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+          "canDownload": True or False, # Whether the file can be downloaded by the current user.
+          "canComment": True or False, # Whether the current user can comment on the file.
+          "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+          "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+          "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+          "canEdit": True or False, # Whether the file can be edited by the current user.
+          "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+        },
         "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.
@@ -1464,20 +1868,41 @@
         "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.
-        "permissions": [ # The list of permissions for users with access to this file.
+        "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+        "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
           { # 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 present when the permission type is user, group or domain.
             "name": "A String", # The name for this permission.
+            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+              {
+                "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+                "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                    # - organizer
+                    # - reader
+                    # - writer
+                "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+                  "A String",
+                ],
+                "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                    # - file
+                    # - member
+                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+              },
+            ],
             "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-            "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-            "role": "A String", # The primary role for this user. Allowed values are:
+            "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+                # - They can only be set on user and group permissions
+                # - The date must be in the future
+                # - The date cannot be more than a year in the future
+                # - The date can only be set on drive.permissions.update requests
+            "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+                # - organizer
                 # - owner
                 # - reader
                 # - writer
@@ -1486,7 +1911,7 @@
                 # - group
                 # - domain
                 # - anyone
-            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
               "A String",
             ],
             "selfLink": "A String", # A link back to this permission.
@@ -1497,7 +1922,7 @@
         "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",
         },
-        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
         "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.
@@ -1532,12 +1957,13 @@
           "durationMillis": "A String", # The duration of the video in milliseconds.
           "height": 42, # The height of the video in pixels.
         },
-        "editable": True or False, # Whether the file can be edited by the current user.
+        "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
         "kind": "drive#file", # The type of file. This is always drive#file.
-        "canComment": True or False, # Whether the current user can comment on the file.
+        "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
         "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
         "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
         "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+        "teamDriveId": "A String", # ID of the Team Drive the file resides in.
         "properties": [ # The list of properties.
           { # A key-value pair attached to a file that is either public or private to an application.
               # The following limits apply to file properties:
@@ -1569,14 +1995,35 @@
           "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 present when the permission type is user, group or domain.
           "name": "A String", # The name for this permission.
+          "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+            {
+              "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+              "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                  # - organizer
+                  # - reader
+                  # - writer
+              "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+                "A String",
+              ],
+              "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                  # - file
+                  # - member
+              "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+            },
+          ],
           "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-          "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-          "role": "A String", # The primary role for this user. Allowed values are:
+          "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+              # - They can only be set on user and group permissions
+              # - The date must be in the future
+              # - The date cannot be more than a year in the future
+              # - The date can only be set on drive.permissions.update requests
+          "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+              # - organizer
               # - owner
               # - reader
               # - writer
@@ -1585,7 +2032,7 @@
               # - group
               # - domain
               # - anyone
-          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
             "A String",
           ],
           "selfLink": "A String", # A link back to this permission.
@@ -1594,9 +2041,10 @@
         "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
           "A String",
         ],
-        "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+        "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
         "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
         "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+        "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
         "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
         "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.
@@ -1623,7 +2071,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(fileId, body, newRevision=None, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</code>
+    <code class="details" id="patch">patch(fileId, body, supportsTeamDrives=None, newRevision=None, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=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:
@@ -1634,6 +2082,7 @@
 { # The metadata for a file.
   "hasThumbnail": True or False, # Whether this file has a thumbnail.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
   "appDataContents": True or False, # Whether this file is in the Application Data folder.
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -1648,12 +2097,12 @@
   "indexableText": { # Indexable text attributes for the file (can only be written)
     "text": "A String", # The text to be indexed for this file.
   },
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
   "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.
+  "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+  "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
     { # Information about a Drive user.
       "picture": { # The user's profile picture.
         "url": "A String", # A URL that points to a profile picture of this user.
@@ -1665,7 +2114,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
   ],
-  "ownedByMe": True or False, # Whether the file is owned by the current user.
+  "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
     "picture": { # The user's profile picture.
@@ -1677,6 +2126,16 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "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.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "emailAddress": "A String", # The email address of the user.
+  },
   "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.
   "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
     "picture": { # The user's profile picture.
@@ -1688,12 +2147,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user.
-  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
-  "ownerNames": [ # Name(s) of the owner(s) of this file.
+  "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the current user.
+    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the file can be edited by the current user.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+  },
   "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.
@@ -1710,20 +2187,41 @@
   "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.
-  "permissions": [ # The list of permissions for users with access to this file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
     { # 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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -1732,7 +2230,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -1743,7 +2241,7 @@
   "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",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
   "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.
@@ -1778,12 +2276,13 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user.
+  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file.
+  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": [ # The list of properties.
     { # A key-value pair attached to a file that is either public or private to an application.
         # The following limits apply to file properties:
@@ -1815,14 +2314,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -1831,7 +2351,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -1840,14 +2360,16 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "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.
 }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center.
   modifiedDateBehavior: string, Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.
     Allowed values
@@ -1875,6 +2397,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -1889,12 +2412,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -1906,7 +2429,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -1918,6 +2441,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -1929,12 +2462,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -1951,20 +2502,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -1973,7 +2545,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -1984,7 +2556,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -2019,12 +2591,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -2056,14 +2629,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -2072,7 +2666,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -2081,9 +2675,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -2091,11 +2686,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="touch">touch(fileId)</code>
+    <code class="details" id="touch">touch(fileId, supportsTeamDrives=None)</code>
   <pre>Set the file's updated time to the current server time.
 
 Args:
   fileId: string, The ID of the file to update. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -2103,6 +2699,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -2117,12 +2714,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -2134,7 +2731,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -2146,6 +2743,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -2157,12 +2764,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -2179,20 +2804,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -2201,7 +2847,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -2212,7 +2858,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -2247,12 +2893,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -2284,14 +2931,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -2300,7 +2968,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -2309,9 +2977,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -2319,11 +2988,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="trash">trash(fileId)</code>
-  <pre>Moves a file to the trash. The currently authenticated user must own the file.
+    <code class="details" id="trash">trash(fileId, supportsTeamDrives=None)</code>
+  <pre>Moves a file to the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.
 
 Args:
   fileId: string, The ID of the file to trash. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -2331,6 +3001,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -2345,12 +3016,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -2362,7 +3033,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -2374,6 +3045,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -2385,12 +3066,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -2407,20 +3106,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -2429,7 +3149,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -2440,7 +3160,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -2475,12 +3195,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -2512,14 +3233,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -2528,7 +3270,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -2537,9 +3279,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -2547,11 +3290,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="untrash">untrash(fileId)</code>
+    <code class="details" id="untrash">untrash(fileId, supportsTeamDrives=None)</code>
   <pre>Restores a file from the trash.
 
 Args:
   fileId: string, The ID of the file to untrash. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -2559,6 +3303,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -2573,12 +3318,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -2590,7 +3335,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -2602,6 +3347,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -2613,12 +3368,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -2635,20 +3408,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -2657,7 +3451,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -2668,7 +3462,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -2703,12 +3497,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -2740,14 +3535,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -2756,7 +3572,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -2765,9 +3581,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -2775,7 +3592,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(fileId, body=None, newRevision=None, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, setModifiedDate=None, timedTextLanguage=None)</code>
+    <code class="details" id="update">update(fileId, body=None, supportsTeamDrives=None, newRevision=None, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, media_mime_type=None, setModifiedDate=None, timedTextLanguage=None)</code>
   <pre>Updates file metadata and/or content.
 
 Args:
@@ -2786,6 +3603,7 @@
 { # The metadata for a file.
   "hasThumbnail": True or False, # Whether this file has a thumbnail.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
   "appDataContents": True or False, # Whether this file is in the Application Data folder.
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -2800,12 +3618,12 @@
   "indexableText": { # Indexable text attributes for the file (can only be written)
     "text": "A String", # The text to be indexed for this file.
   },
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
   "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.
+  "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+  "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
     { # Information about a Drive user.
       "picture": { # The user's profile picture.
         "url": "A String", # A URL that points to a profile picture of this user.
@@ -2817,7 +3635,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
   ],
-  "ownedByMe": True or False, # Whether the file is owned by the current user.
+  "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
     "picture": { # The user's profile picture.
@@ -2829,6 +3647,16 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "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.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "emailAddress": "A String", # The email address of the user.
+  },
   "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.
   "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
     "picture": { # The user's profile picture.
@@ -2840,12 +3668,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user.
-  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
-  "ownerNames": [ # Name(s) of the owner(s) of this file.
+  "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the current user.
+    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the file can be edited by the current user.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+  },
   "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.
@@ -2862,20 +3708,41 @@
   "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.
-  "permissions": [ # The list of permissions for users with access to this file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
     { # 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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -2884,7 +3751,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -2895,7 +3762,7 @@
   "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",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
   "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.
@@ -2930,12 +3797,13 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user.
+  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file.
+  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": [ # The list of properties.
     { # A key-value pair attached to a file that is either public or private to an application.
         # The following limits apply to file properties:
@@ -2967,14 +3835,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -2983,7 +3872,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -2992,14 +3881,16 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "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.
 }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center.
   modifiedDateBehavior: string, Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.
     Allowed values
@@ -3029,6 +3920,7 @@
     { # The metadata for a file.
     "hasThumbnail": True or False, # Whether this file has a thumbnail.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
     "appDataContents": True or False, # Whether this file is in the Application Data folder.
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
@@ -3043,12 +3935,12 @@
     "indexableText": { # Indexable text attributes for the file (can only be written)
       "text": "A String", # The text to be indexed for this file.
     },
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
     "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.
+    "writersCanShare": True or False, # Whether writers can share the document with other users. Not populated for Team Drive files.
+    "owners": [ # The owner(s) of this file. Not populated for Team Drive files.
       { # Information about a Drive user.
         "picture": { # The user's profile picture.
           "url": "A String", # A URL that points to a profile picture of this user.
@@ -3060,7 +3952,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
     ],
-    "ownedByMe": True or False, # Whether the file is owned by the current user.
+    "ownedByMe": True or False, # Whether the file is owned by the current user. Not populated for Team Drive files.
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # User that shared the item with the current user, if available.
       "picture": { # The user's profile picture.
@@ -3072,6 +3964,16 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "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.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "emailAddress": "A String", # The email address of the user.
+    },
     "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.
     "lastModifyingUser": { # Information about a Drive user. # The last user to modify this file.
       "picture": { # The user's profile picture.
@@ -3083,12 +3985,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user.
-    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
+    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
-    "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the current user.
+      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
+      "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the file can be edited by the current user.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    },
     "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.
@@ -3105,20 +4025,41 @@
     "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.
-    "permissions": [ # The list of permissions for users with access to this file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The list of permissions for users with access to this file. Not populated for Team Drive files.
       { # 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -3127,7 +4068,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -3138,7 +4079,7 @@
     "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",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
     "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.
@@ -3173,12 +4114,13 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user.
+    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": [ # The list of properties.
       { # A key-value pair attached to a file that is either public or private to an application.
           # The following limits apply to file properties:
@@ -3210,14 +4152,35 @@
       "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 present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - reader
+              # - writer
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+            "A String",
+          ],
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-      "role": "A String", # The primary role for this user. Allowed values are:
+      "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The date must be in the future
+          # - The date cannot be more than a year in the future
+          # - The date can only be set on drive.permissions.update requests
+      "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - reader
           # - writer
@@ -3226,7 +4189,7 @@
           # - group
           # - domain
           # - anyone
-      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
         "A String",
       ],
       "selfLink": "A String", # A link back to this permission.
@@ -3235,9 +4198,10 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
+    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "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.
@@ -3245,7 +4209,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+    <code class="details" id="watch">watch(fileId, body, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Subscribe to changes on a file
 
 Args:
@@ -3273,6 +4237,7 @@
       BASIC - Deprecated
       FULL - Deprecated
   revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.
 
@@ -3296,7 +4261,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch_media">watch_media(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+    <code class="details" id="watch_media">watch_media(fileId, body, projection=None, revisionId=None, supportsTeamDrives=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Subscribe to changes on a file
 
 Args:
@@ -3324,6 +4289,7 @@
       BASIC - Deprecated
       FULL - Deprecated
   revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.
 
diff --git a/docs/dyn/drive_v2.html b/docs/dyn/drive_v2.html
index fa04076..c49dcad 100644
--- a/docs/dyn/drive_v2.html
+++ b/docs/dyn/drive_v2.html
@@ -140,6 +140,11 @@
 <p class="firstline">Returns the revisions Resource.</p>
 
 <p class="toc_element">
+  <code><a href="drive_v2.teamdrives.html">teamdrives()</a></code>
+</p>
+<p class="firstline">Returns the teamdrives Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/drive_v2.parents.html b/docs/dyn/drive_v2.parents.html
index 4dc0671..423ebac 100644
--- a/docs/dyn/drive_v2.parents.html
+++ b/docs/dyn/drive_v2.parents.html
@@ -81,7 +81,7 @@
   <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>
+  <code><a href="#insert">insert(fileId, body, supportsTeamDrives=None)</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>
@@ -118,7 +118,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(fileId, body)</code>
+    <code class="details" id="insert">insert(fileId, body, supportsTeamDrives=None)</code>
   <pre>Adds a parent folder for a file.
 
 Args:
@@ -134,6 +134,7 @@
   "parentLink": "A String", # A link to the parent.
 }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -158,7 +159,7 @@
   An object of the form:
 
     { # A list of a file's parents.
-    "items": [ # The actual list of parents.
+    "items": [ # The 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.
diff --git a/docs/dyn/drive_v2.permissions.html b/docs/dyn/drive_v2.permissions.html
index 9434d8a..74709ef 100644
--- a/docs/dyn/drive_v2.permissions.html
+++ b/docs/dyn/drive_v2.permissions.html
@@ -75,44 +75,49 @@
 <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>
+  <code><a href="#delete">delete(fileId, permissionId, supportsTeamDrives=None)</a></code></p>
+<p class="firstline">Deletes a permission from a file or Team Drive.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, permissionId)</a></code></p>
+  <code><a href="#get">get(fileId, permissionId, supportsTeamDrives=None)</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>
+  <code><a href="#insert">insert(fileId, body, supportsTeamDrives=None, sendNotificationEmails=None, emailMessage=None)</a></code></p>
+<p class="firstline">Inserts a permission for a file or Team Drive.</p>
 <p class="toc_element">
-  <code><a href="#list">list(fileId)</a></code></p>
-<p class="firstline">Lists a file's permissions.</p>
+  <code><a href="#list">list(fileId, pageToken=None, supportsTeamDrives=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists a file's or Team Drive's permissions.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</a></code></p>
+  <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, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</a></code></p>
 <p class="firstline">Updates a permission using patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</a></code></p>
+  <code><a href="#update">update(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, 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.
+    <code class="details" id="delete">delete(fileId, permissionId, supportsTeamDrives=None)</code>
+  <pre>Deletes a permission from a file or Team Drive.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
   permissionId: string, The ID for the permission. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, permissionId)</code>
+    <code class="details" id="get">get(fileId, permissionId, supportsTeamDrives=None)</code>
   <pre>Gets a permission by ID.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
   permissionId: string, The ID for the permission. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -121,14 +126,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -137,7 +163,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -162,11 +188,11 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(fileId, body, sendNotificationEmails=None, emailMessage=None)</code>
-  <pre>Inserts a permission for a file.
+    <code class="details" id="insert">insert(fileId, body, supportsTeamDrives=None, sendNotificationEmails=None, emailMessage=None)</code>
+  <pre>Inserts a permission for a file or Team Drive.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -174,14 +200,35 @@
   "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 present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
+  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    {
+      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+          # - organizer
+          # - reader
+          # - writer
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+        "A String",
+      ],
+      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+          # - file
+          # - member
+      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+    },
+  ],
   "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-  "role": "A String", # The primary role for this user. Allowed values are:
+  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+      # - They can only be set on user and group permissions
+      # - The date must be in the future
+      # - The date cannot be more than a year in the future
+      # - The date can only be set on drive.permissions.update requests
+  "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+      # - organizer
       # - owner
       # - reader
       # - writer
@@ -190,13 +237,14 @@
       # - group
       # - domain
       # - anyone
-  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
     "A String",
   ],
   "selfLink": "A String", # A link back to this permission.
   "photoLink": "A String", # A link to the profile photo, if available.
 }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   sendNotificationEmails: boolean, Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the role is owner.
   emailMessage: string, A custom message to include in notification emails.
 
@@ -207,14 +255,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -223,7 +292,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -232,29 +301,54 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(fileId)</code>
-  <pre>Lists a file's permissions.
+    <code class="details" id="list">list(fileId, pageToken=None, supportsTeamDrives=None, maxResults=None)</code>
+  <pre>Lists a file's or Team Drive's permissions.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
+  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  maxResults: integer, The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.
 
 Returns:
   An object of the form:
 
     { # A list of permissions associated with a file.
-    "items": [ # The actual list of permissions.
+    "nextPageToken": "A String", # The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "items": [ # The 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 present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - reader
+                # - writer
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+              "A String",
+            ],
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-        "role": "A String", # The primary role for this user. Allowed values are:
+        "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The date must be in the future
+            # - The date cannot be more than a year in the future
+            # - The date can only be set on drive.permissions.update requests
+        "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - reader
             # - writer
@@ -263,7 +357,7 @@
             # - group
             # - domain
             # - anyone
-        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
           "A String",
         ],
         "selfLink": "A String", # A link back to this permission.
@@ -277,11 +371,25 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</code>
+    <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, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</code>
   <pre>Updates a permission using patch semantics.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
   permissionId: string, The ID for the permission. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -290,14 +398,35 @@
   "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 present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
+  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    {
+      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+          # - organizer
+          # - reader
+          # - writer
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+        "A String",
+      ],
+      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+          # - file
+          # - member
+      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+    },
+  ],
   "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-  "role": "A String", # The primary role for this user. Allowed values are:
+  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+      # - They can only be set on user and group permissions
+      # - The date must be in the future
+      # - The date cannot be more than a year in the future
+      # - The date can only be set on drive.permissions.update requests
+  "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+      # - organizer
       # - owner
       # - reader
       # - writer
@@ -306,7 +435,7 @@
       # - group
       # - domain
       # - anyone
-  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
     "A String",
   ],
   "selfLink": "A String", # A link back to this permission.
@@ -314,6 +443,7 @@
 }
 
   removeExpiration: boolean, Whether to remove the expiration date.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether changing a role to 'owner' downgrades the current owners to writers. Does nothing if the specified role is not 'owner'.
 
 Returns:
@@ -323,14 +453,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -339,7 +490,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
@@ -348,11 +499,11 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</code>
+    <code class="details" id="update">update(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</code>
   <pre>Updates a permission.
 
 Args:
-  fileId: string, The ID for the file. (required)
+  fileId: string, The ID for the file or Team Drive. (required)
   permissionId: string, The ID for the permission. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -361,14 +512,35 @@
   "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 present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
+  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    {
+      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+          # - organizer
+          # - reader
+          # - writer
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+        "A String",
+      ],
+      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+          # - file
+          # - member
+      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+    },
+  ],
   "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-  "role": "A String", # The primary role for this user. Allowed values are:
+  "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+      # - They can only be set on user and group permissions
+      # - The date must be in the future
+      # - The date cannot be more than a year in the future
+      # - The date can only be set on drive.permissions.update requests
+  "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+      # - organizer
       # - owner
       # - reader
       # - writer
@@ -377,7 +549,7 @@
       # - group
       # - domain
       # - anyone
-  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
     "A String",
   ],
   "selfLink": "A String", # A link back to this permission.
@@ -385,6 +557,7 @@
 }
 
   removeExpiration: boolean, Whether to remove the expiration date.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether changing a role to 'owner' downgrades the current owners to writers. Does nothing if the specified role is not 'owner'.
 
 Returns:
@@ -394,14 +567,35 @@
     "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 present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - reader
+            # - writer
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.
+          "A String",
+        ],
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "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 the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "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 or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
-    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time).
-    "role": "A String", # The primary role for this user. Allowed values are:
+    "expirationDate": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration dates have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The date must be in the future
+        # - The date cannot be more than a year in the future
+        # - The date can only be set on drive.permissions.update requests
+    "role": "A String", # The primary role for this user. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - reader
         # - writer
@@ -410,7 +604,7 @@
         # - group
         # - domain
         # - anyone
-    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed, though more may be supported in the future.
       "A String",
     ],
     "selfLink": "A String", # A link back to this permission.
diff --git a/docs/dyn/drive_v2.replies.html b/docs/dyn/drive_v2.replies.html
index a4a7b63..d820dda 100644
--- a/docs/dyn/drive_v2.replies.html
+++ b/docs/dyn/drive_v2.replies.html
@@ -220,8 +220,8 @@
   An object of the form:
 
     { # 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.
+    "nextPageToken": "A String", # The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "items": [ # The list of replies. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # A comment on a file in Google Drive.
         "kind": "drive#commentReply", # This is always drive#commentReply.
         "author": { # Information about a Drive user. # The user who wrote this reply.
diff --git a/docs/dyn/drive_v2.revisions.html b/docs/dyn/drive_v2.revisions.html
index ce9e776..df622b1 100644
--- a/docs/dyn/drive_v2.revisions.html
+++ b/docs/dyn/drive_v2.revisions.html
@@ -161,7 +161,7 @@
 
     { # A list of revisions of a file.
     "nextPageToken": "A String", # The page token for the next page of revisions. This field will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded and pagination should be restarted from the first page of results.
-    "items": [ # The actual list of revisions.
+    "items": [ # The list of revisions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # 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.
diff --git a/docs/dyn/drive_v2.teamdrives.html b/docs/dyn/drive_v2.teamdrives.html
new file mode 100644
index 0000000..4d3475a
--- /dev/null
+++ b/docs/dyn/drive_v2.teamdrives.html
@@ -0,0 +1,302 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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.teamdrives.html">teamdrives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(teamDriveId)</a></code></p>
+<p class="firstline">Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.</p>
+<p class="toc_element">
+  <code><a href="#get">get(teamDriveId)</a></code></p>
+<p class="firstline">Gets a Team Drive's metadata by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(requestId, body)</a></code></p>
+<p class="firstline">Creates a new Team Drive.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the user's Team Drives.</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(teamDriveId, body)</a></code></p>
+<p class="firstline">Updates a Team Drive's metadata</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(teamDriveId)</code>
+  <pre>Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(teamDriveId)</code>
+  <pre>Gets a Team Drive's metadata by ID.
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # This is always drive#teamDrive
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(requestId, body)</code>
+  <pre>Creates a new Team Drive.
+
+Args:
+  requestId: string, An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Representation of a Team Drive.
+  "kind": "drive#teamDrive", # This is always drive#teamDrive
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "capabilities": { # Capabilities the current user has on this Team Drive.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+  },
+  "name": "A String", # The name of this Team Drive.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # This is always drive#teamDrive
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>Lists the user's Team Drives.
+
+Args:
+  pageToken: string, Page token for Team Drives.
+  maxResults: integer, Maximum number of Team Drives to return.
+
+Returns:
+  An object of the form:
+
+    { # A list of Team Drives.
+    "nextPageToken": "A String", # The page token for the next page of Team Drives.
+    "items": [ # The list of Team Drives.
+      { # Representation of a Team Drive.
+        "kind": "drive#teamDrive", # This is always drive#teamDrive
+        "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+        "capabilities": { # Capabilities the current user has on this Team Drive.
+          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+          "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+          "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+          "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+          "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+          "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+          "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+          "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+          "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+          "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+          "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+          "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+          "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+        },
+        "name": "A String", # The name of this Team Drive.
+      },
+    ],
+    "kind": "drive#teamDriveList", # This is always drive#teamDriveList
+  }</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(teamDriveId, body)</code>
+  <pre>Updates a Team Drive's metadata
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Representation of a Team Drive.
+  "kind": "drive#teamDrive", # This is always drive#teamDrive
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "capabilities": { # Capabilities the current user has on this Team Drive.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+  },
+  "name": "A String", # The name of this Team Drive.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # This is always drive#teamDrive
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v3.changes.html b/docs/dyn/drive_v3.changes.html
index 0dcb58f..e34cffe 100644
--- a/docs/dyn/drive_v3.changes.html
+++ b/docs/dyn/drive_v3.changes.html
@@ -75,23 +75,25 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.changes.html">changes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#getStartPageToken">getStartPageToken()</a></code></p>
+  <code><a href="#getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</a></code></p>
 <p class="firstline">Gets the starting pageToken for listing future changes.</p>
 <p class="toc_element">
-  <code><a href="#list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</a></code></p>
-<p class="firstline">Lists changes for a user.</p>
+  <code><a href="#list">list(pageToken, pageSize=None, includeTeamDriveItems=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None, includeRemoved=None)</a></code></p>
+<p class="firstline">Lists the changes for a user or Team Drive.</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(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)</a></code></p>
+  <code><a href="#watch">watch(pageToken, body, pageSize=None, includeTeamDriveItems=None, includeRemoved=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, includeCorpusRemovals=None, teamDriveId=None)</a></code></p>
 <p class="firstline">Subscribes to changes for a user.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getStartPageToken">getStartPageToken()</code>
+    <code class="details" id="getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</code>
   <pre>Gets the starting pageToken for listing future changes.
 
 Args:
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  teamDriveId: string, The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.
 
 Returns:
   An object of the form:
@@ -103,39 +105,61 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</code>
-  <pre>Lists changes for a user.
+    <code class="details" id="list">list(pageToken, pageSize=None, includeTeamDriveItems=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None, includeRemoved=None)</code>
+  <pre>Lists the changes for a user or Team Drive.
 
 Args:
   pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method. (required)
+  pageSize: integer, The maximum number of changes to return per page.
+  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
   spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  pageSize: integer, The maximum number of changes to return per page.
-  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.
+  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
+  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
+  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
 
 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. This will be absent if the end of the current changes list has been reached.
+    "nextPageToken": "A String", # The page token for the next page of changes. This will be absent if the end of the changes list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#changeList", # Identifies what kind of resource this is. Value: the fixed string "drive#changeList".
-    "changes": [ # The page of changes.
-      { # A change to a file.
+    "changes": [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+      { # A change to a file or Team Drive.
+        "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been removed.
+          "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+          "capabilities": { # Capabilities the current user has on this Team Drive.
+            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+            "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+            "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+            "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+            "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+            "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+            "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+            "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+            "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+            "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+            "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+            "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+            "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+          },
+          "name": "A String", # The name of this Team Drive.
+        },
         "kind": "drive#change", # Identifies what kind of resource this is. Value: the fixed string "drive#change".
-        "removed": True or False, # Whether the file has been removed from the view of the changes list, for example by deletion or lost access.
-        "time": "A String", # The time of this change (RFC 3339 date-time).
-        "file": { # The metadata for a file. # The updated state of the file. Present if the file has not been removed.
+        "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
           "hasThumbnail": True or False, # Whether this file has a thumbnail.
           "mimeType": "A String", # The MIME type of the file.
               # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
               # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
           "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
           "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-          "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+          "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
           "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
           "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-          "ownedByMe": True or False, # Whether the user owns the file.
+          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+          "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
           "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
           "id": "A String", # The ID of the file.
           "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -166,13 +190,25 @@
               # Entries with null values are cleared in update and copy requests.
             "a_key": "A String",
           },
-          "capabilities": { # Capabilities the current user has on the file.
-            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-            "canCopy": True or False, # Whether the user can copy the file.
+          "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+            "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+            "canTrash": True or False, # Whether the file can be trashed by the user.
+            "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
             "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-            "canEdit": True or False, # Whether the user can edit the file's content.
+            "canDelete": True or False, # Whether the file can be deleted by the user.
+            "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+            "canRename": True or False, # Whether the file can be renamed by the user.
+            "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+            "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+            "canDownload": True or False, # Whether the file can be downloaded by the user.
             "canComment": True or False, # Whether the user can comment on the file.
+            "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+            "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+            "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+            "canEdit": True or False, # Whether the user can edit the file's content.
+            "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
           },
+          "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
           "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
           "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
           "parents": [ # The IDs of the parent folders which contain the file.
@@ -180,21 +216,40 @@
             "A String",
           ],
           "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-          "shared": True or False, # Whether the file has been shared.
-          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+          "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
             { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
               "domain": "A String", # The domain to which this permission refers.
               "displayName": "A String", # A displayable name for users, groups or domains.
+              "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+                {
+                  "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+                  "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                      # - organizer
+                      # - writer
+                      # - commenter
+                      # - reader
+                  "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                      # - file
+                      # -
+                      # - member
+                  "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+                },
+              ],
               "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
               "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
               "emailAddress": "A String", # The email address of the user or group to which this permission refers.
               "photoLink": "A String", # A link to the user's profile photo, if available.
-              "role": "A String", # The role granted by this permission. Valid values are:
+              "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+                  # - organizer
                   # - owner
                   # - writer
                   # - commenter
                   # - reader
-              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+                  # - They can only be set on user and group permissions
+                  # - The time must be in the future
+                  # - The time cannot be more than a year in the future
               "type": "A String", # The type of the grantee. Valid values are:
                   # - user
                   # - group
@@ -212,7 +267,7 @@
               # Note that setting modifiedTime will also update modifiedByMeTime for the user.
           "viewedByMe": True or False, # Whether the file has been viewed by this user.
           "modifiedByMe": True or False, # Whether the file has been modified by this user.
-          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
             { # Information about a Drive user.
               "me": True or False, # Whether this user is the requesting user.
               "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -224,6 +279,7 @@
           ],
           "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
           "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+          "teamDriveId": "A String", # ID of the Team Drive the file resides in.
           "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
               # Entries with null values are cleared in update and copy requests.
             "a_key": "A String",
@@ -260,6 +316,14 @@
           "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
           "name": "A String", # The name of the file. This is not necessarily unique within a folder.
           "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+          "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+            "me": True or False, # Whether this user is the requesting user.
+            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in Permission resources.
+            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+            "photoLink": "A String", # A link to the user's profile photo, if available.
+          },
           "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
             "A String",
           ],
@@ -272,9 +336,14 @@
             },
           },
           "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+          "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
           "starred": True or False, # Whether the user has starred the file.
           "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
         },
+        "time": "A String", # The time of this change (RFC 3339 date-time).
+        "teamDriveId": "A String", # The ID of the Team Drive associated with this change.
+        "removed": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
+        "type": "A String", # The type of the change. Possible values are file and teamDrive.
         "fileId": "A String", # The ID of the file which has changed.
       },
     ],
@@ -297,7 +366,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)</code>
+    <code class="details" id="watch">watch(pageToken, body, pageSize=None, includeTeamDriveItems=None, includeRemoved=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, includeCorpusRemovals=None, teamDriveId=None)</code>
   <pre>Subscribes to changes for a user.
 
 Args:
@@ -321,9 +390,13 @@
   }
 
   pageSize: integer, The maximum number of changes to return per page.
+  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
+  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
   spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.
+  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
+  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/drive_v3.comments.html b/docs/dyn/drive_v3.comments.html
index a39c587..9564dad 100644
--- a/docs/dyn/drive_v3.comments.html
+++ b/docs/dyn/drive_v3.comments.html
@@ -283,9 +283,9 @@
   An object of the form:
 
     { # A list of comments on a file.
-    "nextPageToken": "A String", # The page token for the next page of comments. This will be absent if the end of the comments list has been reached.
+    "nextPageToken": "A String", # The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#commentList", # Identifies what kind of resource this is. Value: the fixed string "drive#commentList".
-    "comments": [ # The page of comments.
+    "comments": [ # The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # A comment on a file.
           "resolved": True or False, # Whether the comment has been resolved by one of its replies.
           "kind": "drive#comment", # Identifies what kind of resource this is. Value: the fixed string "drive#comment".
diff --git a/docs/dyn/drive_v3.files.html b/docs/dyn/drive_v3.files.html
index 16cb74e..e3ea11f 100644
--- a/docs/dyn/drive_v3.files.html
+++ b/docs/dyn/drive_v3.files.html
@@ -75,14 +75,14 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.files.html">files</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#copy">copy(fileId, body, keepRevisionForever=None, ignoreDefaultVisibility=None, ocrLanguage=None)</a></code></p>
+  <code><a href="#copy">copy(fileId, body, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</a></code></p>
 <p class="firstline">Creates a copy of a file and applies any requested updates with patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=None)</a></code></p>
+  <code><a href="#create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</a></code></p>
 <p class="firstline">Creates a new file.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(fileId)</a></code></p>
-<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.</p>
+  <code><a href="#delete">delete(fileId, supportsTeamDrives=None)</a></code></p>
+<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.</p>
 <p class="toc_element">
   <code><a href="#emptyTrash">emptyTrash()</a></code></p>
 <p class="firstline">Permanently deletes all of the user's trashed files.</p>
@@ -96,29 +96,29 @@
   <code><a href="#generateIds">generateIds(count=None, space=None)</a></code></p>
 <p class="firstline">Generates a set of file IDs which can be provided in create requests.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#get">get(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Gets a file's metadata or content by ID.</p>
 <p class="toc_element">
-  <code><a href="#get_media">get_media(fileId, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#get_media">get_media(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Gets a file's metadata or content by ID.</p>
 <p class="toc_element">
-  <code><a href="#list">list(orderBy=None, q=None, pageSize=None, pageToken=None, spaces=None, corpus=None)</a></code></p>
+  <code><a href="#list">list(orderBy=None, q=None, includeTeamDriveItems=None, pageSize=None, pageToken=None, corpora=None, supportsTeamDrives=None, spaces=None, teamDriveId=None, corpus=None)</a></code></p>
 <p class="firstline">Lists or searches 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="#update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=None)</a></code></p>
+  <code><a href="#update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None)</a></code></p>
 <p class="firstline">Updates a file's metadata and/or content with patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#watch">watch(fileId, body, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#watch">watch(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Subscribes to changes to a file</p>
 <p class="toc_element">
-  <code><a href="#watch_media">watch_media(fileId, body, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#watch_media">watch_media(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Subscribes to changes to a file</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="copy">copy(fileId, body, keepRevisionForever=None, ignoreDefaultVisibility=None, ocrLanguage=None)</code>
+    <code class="details" id="copy">copy(fileId, body, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</code>
   <pre>Creates a copy of a file and applies any requested updates with patch semantics.
 
 Args:
@@ -133,11 +133,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-  "ownedByMe": True or False, # Whether the user owns the file.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -168,13 +168,25 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-    "canCopy": True or False, # Whether the user can copy the file.
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the user.
+    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canDelete": True or False, # Whether the file can be deleted by the user.
+    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the user.
+    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the user.
     "canComment": True or False, # Whether the user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
   },
+  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -182,21 +194,40 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - writer
+              # - commenter
+              # - reader
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # -
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. Valid values are:
+      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The time must be in the future
+          # - The time cannot be more than a year in the future
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -214,7 +245,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -226,6 +257,7 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -262,6 +294,14 @@
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
   "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "me": True or False, # Whether this user is the requesting user.
+    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in Permission resources.
+    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+    "photoLink": "A String", # A link to the user's profile photo, if available.
+  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -274,13 +314,15 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
 
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
-  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
+  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
 
 Returns:
   An object of the form:
@@ -292,11 +334,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-    "ownedByMe": True or False, # Whether the user owns the file.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -327,13 +369,25 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-      "canCopy": True or False, # Whether the user can copy the file.
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the user.
+      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canDelete": True or False, # Whether the file can be deleted by the user.
+      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the user.
+      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the user.
       "canComment": True or False, # Whether the user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
     },
+    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -341,21 +395,40 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - writer
+                # - commenter
+                # - reader
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # -
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. Valid values are:
+        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The time must be in the future
+            # - The time cannot be more than a year in the future
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -373,7 +446,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -385,6 +458,7 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -421,6 +495,14 @@
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
     "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "me": True or False, # Whether this user is the requesting user.
+      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in Permission resources.
+      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+      "photoLink": "A String", # A link to the user's profile photo, if available.
+    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -433,13 +515,14 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=None)</code>
+    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</code>
   <pre>Creates a new file.
 
 Args:
@@ -453,11 +536,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-  "ownedByMe": True or False, # Whether the user owns the file.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -488,13 +571,25 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-    "canCopy": True or False, # Whether the user can copy the file.
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the user.
+    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canDelete": True or False, # Whether the file can be deleted by the user.
+    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the user.
+    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the user.
     "canComment": True or False, # Whether the user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
   },
+  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -502,21 +597,40 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - writer
+              # - commenter
+              # - reader
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # -
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. Valid values are:
+      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The time must be in the future
+          # - The time cannot be more than a year in the future
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -534,7 +648,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -546,6 +660,7 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -582,6 +697,14 @@
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
   "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "me": True or False, # Whether this user is the requesting user.
+    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in Permission resources.
+    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+    "photoLink": "A String", # A link to the user's profile photo, if available.
+  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -594,6 +717,7 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
@@ -602,8 +726,9 @@
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
-  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
+  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
 
 Returns:
   An object of the form:
@@ -615,11 +740,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-    "ownedByMe": True or False, # Whether the user owns the file.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -650,13 +775,25 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-      "canCopy": True or False, # Whether the user can copy the file.
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the user.
+      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canDelete": True or False, # Whether the file can be deleted by the user.
+      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the user.
+      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the user.
       "canComment": True or False, # Whether the user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
     },
+    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -664,21 +801,40 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - writer
+                # - commenter
+                # - reader
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # -
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. Valid values are:
+        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The time must be in the future
+            # - The time cannot be more than a year in the future
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -696,7 +852,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -708,6 +864,7 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -744,6 +901,14 @@
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
     "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "me": True or False, # Whether this user is the requesting user.
+      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in Permission resources.
+      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+      "photoLink": "A String", # A link to the user's profile photo, if available.
+    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -756,17 +921,19 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(fileId)</code>
-  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.
+    <code class="details" id="delete">delete(fileId, supportsTeamDrives=None)</code>
+  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.
 
 Args:
   fileId: string, The ID of the file. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
@@ -819,11 +986,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, acknowledgeAbuse=None)</code>
+    <code class="details" id="get">get(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
   <pre>Gets a file's metadata or content by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -836,11 +1004,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-    "ownedByMe": True or False, # Whether the user owns the file.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -871,13 +1039,25 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-      "canCopy": True or False, # Whether the user can copy the file.
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the user.
+      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canDelete": True or False, # Whether the file can be deleted by the user.
+      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the user.
+      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the user.
       "canComment": True or False, # Whether the user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
     },
+    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -885,21 +1065,40 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - writer
+                # - commenter
+                # - reader
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # -
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. Valid values are:
+        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The time must be in the future
+            # - The time cannot be more than a year in the future
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -917,7 +1116,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -929,6 +1128,7 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -965,6 +1165,14 @@
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
     "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "me": True or False, # Whether this user is the requesting user.
+      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in Permission resources.
+      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+      "photoLink": "A String", # A link to the user's profile photo, if available.
+    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -977,17 +1185,19 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get_media">get_media(fileId, acknowledgeAbuse=None)</code>
+    <code class="details" id="get_media">get_media(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
   <pre>Gets a file's metadata or content by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -997,16 +1207,20 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(orderBy=None, q=None, pageSize=None, pageToken=None, spaces=None, corpus=None)</code>
+    <code class="details" id="list">list(orderBy=None, q=None, includeTeamDriveItems=None, pageSize=None, pageToken=None, corpora=None, supportsTeamDrives=None, spaces=None, teamDriveId=None, corpus=None)</code>
   <pre>Lists or searches files.
 
 Args:
   orderBy: string, A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.
   q: string, A query for filtering the file results. See the "Search for Files" guide for supported syntax.
+  includeTeamDriveItems: boolean, Whether Team Drive items should be included in results.
   pageSize: integer, The maximum number of files to return per page.
   pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
+  corpora: string, Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   spaces: string, A comma-separated list of spaces to query within the corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  corpus: string, The source of files to list.
+  teamDriveId: string, ID of Team Drive to search.
+  corpus: string, The source of files to list. Deprecated: use 'corpora' instead.
     Allowed values
       domain - Files shared to the user's domain.
       user - Files owned by or shared to the user.
@@ -1015,7 +1229,7 @@
   An object of the form:
 
     { # A list of files.
-    "files": [ # The page of files.
+    "files": [ # The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # The metadata for a file.
         "hasThumbnail": True or False, # Whether this file has a thumbnail.
         "mimeType": "A String", # The MIME type of the file.
@@ -1023,11 +1237,11 @@
             # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
         "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
         "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-        "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+        "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
         "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
         "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-        "ownedByMe": True or False, # Whether the user owns the file.
+        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+        "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
         "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
         "id": "A String", # The ID of the file.
         "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1058,13 +1272,25 @@
             # Entries with null values are cleared in update and copy requests.
           "a_key": "A String",
         },
-        "capabilities": { # Capabilities the current user has on the file.
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-          "canCopy": True or False, # Whether the user can copy the file.
+        "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+          "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+          "canTrash": True or False, # Whether the file can be trashed by the user.
+          "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
           "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-          "canEdit": True or False, # Whether the user can edit the file's content.
+          "canDelete": True or False, # Whether the file can be deleted by the user.
+          "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+          "canRename": True or False, # Whether the file can be renamed by the user.
+          "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+          "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+          "canDownload": True or False, # Whether the file can be downloaded by the user.
           "canComment": True or False, # Whether the user can comment on the file.
+          "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+          "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+          "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+          "canEdit": True or False, # Whether the user can edit the file's content.
+          "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
         },
+        "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
         "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
         "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
         "parents": [ # The IDs of the parent folders which contain the file.
@@ -1072,21 +1298,40 @@
           "A String",
         ],
         "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-        "shared": True or False, # Whether the file has been shared.
-        "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+        "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+        "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
           { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
             "domain": "A String", # The domain to which this permission refers.
             "displayName": "A String", # A displayable name for users, groups or domains.
+            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+              {
+                "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+                "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                    # - organizer
+                    # - writer
+                    # - commenter
+                    # - reader
+                "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                    # - file
+                    # -
+                    # - member
+                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+              },
+            ],
             "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
             "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
             "emailAddress": "A String", # The email address of the user or group to which this permission refers.
             "photoLink": "A String", # A link to the user's profile photo, if available.
-            "role": "A String", # The role granted by this permission. Valid values are:
+            "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+                # - organizer
                 # - owner
                 # - writer
                 # - commenter
                 # - reader
-            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+                # - They can only be set on user and group permissions
+                # - The time must be in the future
+                # - The time cannot be more than a year in the future
             "type": "A String", # The type of the grantee. Valid values are:
                 # - user
                 # - group
@@ -1104,7 +1349,7 @@
             # Note that setting modifiedTime will also update modifiedByMeTime for the user.
         "viewedByMe": True or False, # Whether the file has been viewed by this user.
         "modifiedByMe": True or False, # Whether the file has been modified by this user.
-        "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+        "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
           { # Information about a Drive user.
             "me": True or False, # Whether this user is the requesting user.
             "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1116,6 +1361,7 @@
         ],
         "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
         "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+        "teamDriveId": "A String", # ID of the Team Drive the file resides in.
         "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
             # Entries with null values are cleared in update and copy requests.
           "a_key": "A String",
@@ -1152,6 +1398,14 @@
         "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
         "name": "A String", # The name of the file. This is not necessarily unique within a folder.
         "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+        "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+          "me": True or False, # Whether this user is the requesting user.
+          "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in Permission resources.
+          "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+          "photoLink": "A String", # A link to the user's profile photo, if available.
+        },
         "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
           "A String",
         ],
@@ -1164,12 +1418,14 @@
           },
         },
         "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+        "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
         "starred": True or False, # Whether the user has starred the file.
         "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
       },
     ],
-    "nextPageToken": "A String", # The page token for the next page of files. This will be absent if the end of the files list has been reached.
+    "incompleteSearch": True or False, # Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple Team Drives with the "user,allTeamDrives" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as "user" or "teamDrive".
     "kind": "drive#fileList", # Identifies what kind of resource this is. Value: the fixed string "drive#fileList".
+    "nextPageToken": "A String", # The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
   }</pre>
 </div>
 
@@ -1188,7 +1444,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=None)</code>
+    <code class="details" id="update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None)</code>
   <pre>Updates a file's metadata and/or content with patch semantics.
 
 Args:
@@ -1203,11 +1459,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-  "ownedByMe": True or False, # Whether the user owns the file.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1238,13 +1494,25 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-    "canCopy": True or False, # Whether the user can copy the file.
+  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the file can be trashed by the user.
+    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canDelete": True or False, # Whether the file can be deleted by the user.
+    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+    "canRename": True or False, # Whether the file can be renamed by the user.
+    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+    "canDownload": True or False, # Whether the file can be downloaded by the user.
     "canComment": True or False, # Whether the user can comment on the file.
+    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+    "canEdit": True or False, # Whether the user can edit the file's content.
+    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
   },
+  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -1252,21 +1520,40 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
+      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        {
+          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+              # - organizer
+              # - writer
+              # - commenter
+              # - reader
+          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+              # - file
+              # -
+              # - member
+          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+        },
+      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. Valid values are:
+      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+          # - organizer
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+          # - They can only be set on user and group permissions
+          # - The time must be in the future
+          # - The time cannot be more than a year in the future
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -1284,7 +1571,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1296,6 +1583,7 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -1332,6 +1620,14 @@
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
   "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+    "me": True or False, # Whether this user is the requesting user.
+    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in Permission resources.
+    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+    "photoLink": "A String", # A link to the user's profile photo, if available.
+  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -1344,6 +1640,7 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
@@ -1354,6 +1651,7 @@
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
 
 Returns:
@@ -1366,11 +1664,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
-    "ownedByMe": True or False, # Whether the user owns the file.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
+    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1401,13 +1699,25 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
-      "canCopy": True or False, # Whether the user can copy the file.
+    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the file can be trashed by the user.
+      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canDelete": True or False, # Whether the file can be deleted by the user.
+      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
+      "canRename": True or False, # Whether the file can be renamed by the user.
+      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
+      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
+      "canDownload": True or False, # Whether the file can be downloaded by the user.
       "canComment": True or False, # Whether the user can comment on the file.
+      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
+      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
+      "canEdit": True or False, # Whether the user can edit the file's content.
+      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
     },
+    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -1415,21 +1725,40 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
+    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - writer
+                # - commenter
+                # - reader
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # -
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. Valid values are:
+        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The time must be in the future
+            # - The time cannot be more than a year in the future
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -1447,7 +1776,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1459,6 +1788,7 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
+    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -1495,6 +1825,14 @@
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
     "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
+    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
+      "me": True or False, # Whether this user is the requesting user.
+      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in Permission resources.
+      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
+      "photoLink": "A String", # A link to the user's profile photo, if available.
+    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -1507,13 +1845,14 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
+    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(fileId, body, acknowledgeAbuse=None)</code>
+    <code class="details" id="watch">watch(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
   <pre>Subscribes to changes to a file
 
 Args:
@@ -1536,6 +1875,7 @@
     "id": "A String", # A UUID or similar unique string that identifies this channel.
   }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -1558,7 +1898,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch_media">watch_media(fileId, body, acknowledgeAbuse=None)</code>
+    <code class="details" id="watch_media">watch_media(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
   <pre>Subscribes to changes to a file
 
 Args:
@@ -1581,6 +1921,7 @@
     "id": "A String", # A UUID or similar unique string that identifies this channel.
   }
 
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
diff --git a/docs/dyn/drive_v3.html b/docs/dyn/drive_v3.html
index d1cc6b0..603e5f6 100644
--- a/docs/dyn/drive_v3.html
+++ b/docs/dyn/drive_v3.html
@@ -115,6 +115,11 @@
 <p class="firstline">Returns the revisions Resource.</p>
 
 <p class="toc_element">
+  <code><a href="drive_v3.teamdrives.html">teamdrives()</a></code>
+</p>
+<p class="firstline">Returns the teamdrives Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/drive_v3.permissions.html b/docs/dyn/drive_v3.permissions.html
index d7ca2e1..33341f9 100644
--- a/docs/dyn/drive_v3.permissions.html
+++ b/docs/dyn/drive_v3.permissions.html
@@ -75,43 +75,65 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.permissions.html">permissions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(fileId, body, sendNotificationEmail=None, transferOwnership=None, emailMessage=None)</a></code></p>
-<p class="firstline">Creates a permission for a file.</p>
+  <code><a href="#create">create(fileId, body, sendNotificationEmail=None, supportsTeamDrives=None, transferOwnership=None, emailMessage=None)</a></code></p>
+<p class="firstline">Creates a permission for a file or Team Drive.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(fileId, permissionId)</a></code></p>
+  <code><a href="#delete">delete(fileId, permissionId, supportsTeamDrives=None)</a></code></p>
 <p class="firstline">Deletes a permission.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, permissionId)</a></code></p>
+  <code><a href="#get">get(fileId, permissionId, supportsTeamDrives=None)</a></code></p>
 <p class="firstline">Gets a permission by ID.</p>
 <p class="toc_element">
-  <code><a href="#list">list(fileId)</a></code></p>
-<p class="firstline">Lists a file's permissions.</p>
+  <code><a href="#list">list(fileId, pageToken=None, supportsTeamDrives=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists a file's or Team Drive's permissions.</p>
 <p class="toc_element">
-  <code><a href="#update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</a></code></p>
+  <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(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</a></code></p>
 <p class="firstline">Updates a permission with patch semantics.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(fileId, body, sendNotificationEmail=None, transferOwnership=None, emailMessage=None)</code>
-  <pre>Creates a permission for a file.
+    <code class="details" id="create">create(fileId, body, sendNotificationEmail=None, supportsTeamDrives=None, transferOwnership=None, emailMessage=None)</code>
+  <pre>Creates a permission for a file or Team Drive.
 
 Args:
-  fileId: string, The ID of the file. (required)
+  fileId: string, The ID of the file or Team Drive. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
   "domain": "A String", # The domain to which this permission refers.
   "displayName": "A String", # A displayable name for users, groups or domains.
+  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    {
+      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+          # - organizer
+          # - writer
+          # - commenter
+          # - reader
+      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+          # - file
+          # -
+          # - member
+      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+    },
+  ],
   "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
   "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
   "emailAddress": "A String", # The email address of the user or group to which this permission refers.
   "photoLink": "A String", # A link to the user's profile photo, if available.
-  "role": "A String", # The role granted by this permission. Valid values are:
+  "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+      # - organizer
       # - owner
       # - writer
       # - commenter
       # - reader
-  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+      # - They can only be set on user and group permissions
+      # - The time must be in the future
+      # - The time cannot be more than a year in the future
   "type": "A String", # The type of the grantee. Valid values are:
       # - user
       # - group
@@ -121,6 +143,7 @@
 }
 
   sendNotificationEmail: boolean, Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
   emailMessage: string, A custom message to include in the notification email.
 
@@ -130,16 +153,35 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - writer
+            # - commenter
+            # - reader
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # -
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. Valid values are:
+    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The time must be in the future
+        # - The time cannot be more than a year in the future
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
@@ -150,22 +192,24 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(fileId, permissionId)</code>
+    <code class="details" id="delete">delete(fileId, permissionId, supportsTeamDrives=None)</code>
   <pre>Deletes a permission.
 
 Args:
-  fileId: string, The ID of the file. (required)
+  fileId: string, The ID of the file or Team Drive. (required)
   permissionId: string, The ID of the permission. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, permissionId)</code>
+    <code class="details" id="get">get(fileId, permissionId, supportsTeamDrives=None)</code>
   <pre>Gets a permission by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
   permissionId: string, The ID of the permission. (required)
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -173,16 +217,35 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - writer
+            # - commenter
+            # - reader
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # -
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. Valid values are:
+    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The time must be in the future
+        # - The time cannot be more than a year in the future
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
@@ -193,31 +256,54 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(fileId)</code>
-  <pre>Lists a file's permissions.
+    <code class="details" id="list">list(fileId, pageToken=None, supportsTeamDrives=None, pageSize=None)</code>
+  <pre>Lists a file's or Team Drive's permissions.
 
 Args:
-  fileId: string, The ID of the file. (required)
+  fileId: string, The ID of the file or Team Drive. (required)
+  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
+  pageSize: integer, The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.
 
 Returns:
   An object of the form:
 
     { # A list of permissions for a file.
+    "nextPageToken": "A String", # The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#permissionList", # Identifies what kind of resource this is. Value: the fixed string "drive#permissionList".
-    "permissions": [ # The full list of permissions.
+    "permissions": [ # The list of permissions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
+        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          {
+            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+                # - organizer
+                # - writer
+                # - commenter
+                # - reader
+            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+                # - file
+                # -
+                # - member
+            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+          },
+        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. Valid values are:
+        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+            # - organizer
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+            # - They can only be set on user and group permissions
+            # - The time must be in the future
+            # - The time cannot be more than a year in the future
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -230,11 +316,25 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</code>
+    <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(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</code>
   <pre>Updates a permission with patch semantics.
 
 Args:
-  fileId: string, The ID of the file. (required)
+  fileId: string, The ID of the file or Team Drive. (required)
   permissionId: string, The ID of the permission. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -242,16 +342,35 @@
 { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
   "domain": "A String", # The domain to which this permission refers.
   "displayName": "A String", # A displayable name for users, groups or domains.
+  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    {
+      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+          # - organizer
+          # - writer
+          # - commenter
+          # - reader
+      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+          # - file
+          # -
+          # - member
+      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+    },
+  ],
   "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
   "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
   "emailAddress": "A String", # The email address of the user or group to which this permission refers.
   "photoLink": "A String", # A link to the user's profile photo, if available.
-  "role": "A String", # The role granted by this permission. Valid values are:
+  "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+      # - organizer
       # - owner
       # - writer
       # - commenter
       # - reader
-  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+      # - They can only be set on user and group permissions
+      # - The time must be in the future
+      # - The time cannot be more than a year in the future
   "type": "A String", # The type of the grantee. Valid values are:
       # - user
       # - group
@@ -261,6 +380,7 @@
 }
 
   removeExpiration: boolean, Whether to remove the expiration date.
+  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
 
 Returns:
@@ -269,16 +389,35 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
+    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      {
+        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
+        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
+            # - organizer
+            # - writer
+            # - commenter
+            # - reader
+        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
+            # - file
+            # -
+            # - member
+        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
+      },
+    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. Valid values are:
+    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
+        # - organizer
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
+        # - They can only be set on user and group permissions
+        # - The time must be in the future
+        # - The time cannot be more than a year in the future
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
diff --git a/docs/dyn/drive_v3.replies.html b/docs/dyn/drive_v3.replies.html
index 5f925fa..c70344b 100644
--- a/docs/dyn/drive_v3.replies.html
+++ b/docs/dyn/drive_v3.replies.html
@@ -211,9 +211,9 @@
   An object of the form:
 
     { # A list of replies to a comment on a file.
-    "nextPageToken": "A String", # The page token for the next page of replies. This will be absent if the end of the replies list has been reached.
+    "nextPageToken": "A String", # The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#replyList", # Identifies what kind of resource this is. Value: the fixed string "drive#replyList".
-    "replies": [ # The page of replies.
+    "replies": [ # The list of replies. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # A reply to a comment on a file.
         "kind": "drive#reply", # Identifies what kind of resource this is. Value: the fixed string "drive#reply".
         "modifiedTime": "A String", # The last time the reply was modified (RFC 3339 date-time).
diff --git a/docs/dyn/drive_v3.revisions.html b/docs/dyn/drive_v3.revisions.html
index 2c86689..932165c 100644
--- a/docs/dyn/drive_v3.revisions.html
+++ b/docs/dyn/drive_v3.revisions.html
@@ -167,9 +167,9 @@
   An object of the form:
 
     { # A list of revisions of a file.
-    "nextPageToken": "A String", # The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached.
+    "nextPageToken": "A String", # The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#revisionList", # Identifies what kind of resource this is. Value: the fixed string "drive#revisionList".
-    "revisions": [ # The full list of revisions.
+    "revisions": [ # The list of revisions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # The metadata for a revision to a file.
         "mimeType": "A String", # The MIME type of the revision.
         "kind": "drive#revision", # Identifies what kind of resource this is. Value: the fixed string "drive#revision".
diff --git a/docs/dyn/drive_v3.teamdrives.html b/docs/dyn/drive_v3.teamdrives.html
new file mode 100644
index 0000000..67ee7db
--- /dev/null
+++ b/docs/dyn/drive_v3.teamdrives.html
@@ -0,0 +1,302 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 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_v3.html">Drive API</a> . <a href="drive_v3.teamdrives.html">teamdrives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(requestId, body)</a></code></p>
+<p class="firstline">Creates a new Team Drive.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(teamDriveId)</a></code></p>
+<p class="firstline">Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.</p>
+<p class="toc_element">
+  <code><a href="#get">get(teamDriveId)</a></code></p>
+<p class="firstline">Gets a Team Drive's metadata by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the user's Team Drives.</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(teamDriveId, body)</a></code></p>
+<p class="firstline">Updates a Team Drive's metadata</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(requestId, body)</code>
+  <pre>Creates a new Team Drive.
+
+Args:
+  requestId: string, An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Representation of a Team Drive.
+  "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "capabilities": { # Capabilities the current user has on this Team Drive.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+  },
+  "name": "A String", # The name of this Team Drive.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(teamDriveId)</code>
+  <pre>Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(teamDriveId)</code>
+  <pre>Gets a Team Drive's metadata by ID.
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, pageSize=None)</code>
+  <pre>Lists the user's Team Drives.
+
+Args:
+  pageToken: string, Page token for Team Drives.
+  pageSize: integer, Maximum number of Team Drives to return.
+
+Returns:
+  An object of the form:
+
+    { # A list of Team Drives.
+    "nextPageToken": "A String", # The page token for the next page of Team Drives. This will be absent if the end of the Team Drives list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "kind": "drive#teamDriveList", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDriveList".
+    "teamDrives": [ # The list of Team Drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+      { # Representation of a Team Drive.
+        "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+        "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+        "capabilities": { # Capabilities the current user has on this Team Drive.
+          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+          "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+          "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+          "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+          "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+          "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+          "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+          "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+          "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+          "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+          "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+          "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+          "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+        },
+        "name": "A String", # The name of this Team Drive.
+      },
+    ],
+  }</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(teamDriveId, body)</code>
+  <pre>Updates a Team Drive's metadata
+
+Args:
+  teamDriveId: string, The ID of the Team Drive (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Representation of a Team Drive.
+  "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "capabilities": { # Capabilities the current user has on this Team Drive.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+  },
+  "name": "A String", # The name of this Team Drive.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Representation of a Team Drive.
+    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "capabilities": { # Capabilities the current user has on this Team Drive.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
+      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
+      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
+      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
+      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
+      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
+      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
+      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    },
+    "name": "A String", # The name of this Team Drive.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
index f09450e..e60a18f 100644
--- a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
+++ b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
@@ -97,6 +97,10 @@
 { # Request to create a short Dynamic Link.
     "dynamicLinkInfo": { # Information about a Dynamic Link. # Information about the Dynamic Link to be shortened.
         # [Learn more](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
+      "navigationInfo": { # Information of navigation behavior. # Information of navigation behavior of a Firebase Dynamic Links.
+        "enableForcedRedirect": True or False, # If this option is on, FDL click will be forced to redirect rather than
+            # show an interstitial page.
+      },
       "analyticsInfo": { # Tracking parameters supported by Dynamic Link. # Parameters used for tracking. See all tracking parameters in the
           # [documentation](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
         "googlePlayAnalytics": { # Parameters for Google Play Campaign Measurements. # Google Play Campaign Measurements.
@@ -135,8 +139,8 @@
       },
       "androidInfo": { # Android related attributes to the Dynamic Link. # Android related information. See Android related parameters in the
           # [documentation](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
-        "androidFallbackLink": "A String", # Link to open on Android if the app is not installed.
         "androidPackageName": "A String", # Android package name of the app.
+        "androidFallbackLink": "A String", # Link to open on Android if the app is not installed.
         "androidLink": "A String", # If specified, this overrides the ‘link’ parameter on Android.
         "androidMinPackageVersionCode": "A String", # Minimum version code for the Android app. If the installed app’s version
             # code is lower, then the user is taken to the Play Store.
@@ -178,14 +182,14 @@
   An object of the form:
 
     { # Response to create a short Dynamic Link.
-    "shortLink": "A String", # Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz
+    "previewLink": "A String", # Preivew link to show the link flow chart.
     "warning": [ # Information about potential warnings on link creation.
       { # Dynamic Links warning messages.
         "warningCode": "A String", # The warning code.
         "warningMessage": "A String", # The warning message to help developers improve their requests.
       },
     ],
-    "previewLink": "A String", # Preivew link to show the link flow chart.
+    "shortLink": "A String", # Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz
   }</pre>
 </div>
 
diff --git a/docs/dyn/fitness_v1.users.dataSources.datasets.html b/docs/dyn/fitness_v1.users.dataSources.datasets.html
index 4bedb9d..5c5ae6b 100644
--- a/docs/dyn/fitness_v1.users.dataSources.datasets.html
+++ b/docs/dyn/fitness_v1.users.dataSources.datasets.html
@@ -86,6 +86,9 @@
 <p class="toc_element">
   <code><a href="#patch">patch(userId, dataSourceId, datasetId, body, currentTimeMillis=None)</a></code></p>
 <p class="firstline">Adds data points to a dataset. The dataset need not be previously created. All points within the given dataset will be returned with subsquent calls to retrieve this dataset. Data points can belong to more than one dataset. This method does not use patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#patch_next">patch_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(userId, dataSourceId, datasetId, modifiedTimeMillis=None, currentTimeMillis=None)</code>
@@ -275,4 +278,18 @@
     }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="patch_next">patch_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1.annotations.html b/docs/dyn/genomics_v1.annotations.html
index ac8bcdc..959c505 100644
--- a/docs/dyn/genomics_v1.annotations.html
+++ b/docs/dyn/genomics_v1.annotations.html
@@ -76,35 +76,58 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#batchCreate">batchCreate(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together. If the request has a systemic issue, such as an attempt to write to an inaccessible annotation set, the entire RPC will fail accordingly. For lesser data issues, when possible an error will be isolated to the corresponding batch entry in the response; the remaining well formed annotations will be created normally. For details on the requirements for each individual annotation resource, see CreateAnnotation.</p>
+<p class="firstline">Creates one or more new annotations atomically. All annotations must</p>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new annotation. Caller must have WRITE permission for the associated annotation set. The following fields are required: * annotationSetId * referenceName or referenceId ### Transcripts For annotations of type TRANSCRIPT, the following fields of transcript must be provided: * exons.start * exons.end All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field). The annotated range must be no longer than 100Mbp (mega base pairs). See the Annotation resource for additional restrictions on each field.</p>
+<p class="firstline">Creates a new annotation. Caller must have WRITE permission</p>
 <p class="toc_element">
   <code><a href="#delete">delete(annotationId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes an annotation. Caller must have WRITE permission for the associated annotation set.</p>
+<p class="firstline">Deletes an annotation. Caller must have WRITE permission for</p>
 <p class="toc_element">
   <code><a href="#get">get(annotationId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets an annotation. Caller must have READ permission for the associated annotation set.</p>
+<p class="firstline">Gets an annotation. Caller must have READ permission</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches for annotations that match the given criteria. Results are ordered by genomic coordinate (by reference sequence, then position). Annotations with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotations in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried annotation sets.</p>
+<p class="firstline">Searches for annotations that match the given criteria. Results are</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>
 <p class="toc_element">
   <code><a href="#update">update(annotationId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates an annotation. Caller must have WRITE permission for the associated dataset.</p>
+<p class="firstline">Updates an annotation. Caller must have</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="batchCreate">batchCreate(body, x__xgafv=None)</code>
-  <pre>Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together. If the request has a systemic issue, such as an attempt to write to an inaccessible annotation set, the entire RPC will fail accordingly. For lesser data issues, when possible an error will be isolated to the corresponding batch entry in the response; the remaining well formed annotations will be created normally. For details on the requirements for each individual annotation resource, see CreateAnnotation.
+  <pre>Creates one or more new annotations atomically. All annotations must
+belong to the same annotation set. Caller must have WRITE
+permission for this annotation set. For optimal performance, batch
+positionally adjacent annotations together.
+
+If the request has a systemic issue, such as an attempt to write to
+an inaccessible annotation set, the entire RPC will fail accordingly. For
+lesser data issues, when possible an error will be isolated to the
+corresponding batch entry in the response; the remaining well formed
+annotations will be created normally.
+
+For details on the requirements for each individual annotation resource,
+see
+CreateAnnotation.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 {
-    "annotations": [ # The annotations to be created. At most 4096 can be specified in a single request.
-      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+    "annotations": [ # The annotations to be created. At most 4096 can be specified in a single
+        # request.
+      { # An annotation describes a region of reference genome. The value of an
+          # annotation may be one of several canonical types, supplemented by arbitrary
+          # info tags. An annotation is not inherently associated with a specific
+          # sample or individual (though a client could choose to use annotations in
+          # this way). Example canonical annotation types are `GENE` and
+          # `VARIANT`.
+        "info": { # A map of additional read alignment information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
@@ -112,75 +135,211 @@
         "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
         "end": "A String", # The end position of the range on the reference, 0-based exclusive.
         "name": "A String", # The display name of this annotation.
-        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-          },
-          "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+        "type": "A String", # The data type for this annotation. Must match the containing annotation
+            # set's type.
+        "variant": { # A variant annotation, which describes the effect of a variant on the
+            # genome, the coding sequence, and/or higher level consequences at the
+            # organism level e.g. pathogenicity. This field is only set for annotations
+            # of type `VARIANT`.
+          "conditions": [ # The set of conditions associated with this variant.
+              # A condition describes the way a variant influences human health.
             {
-              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-              "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-            },
-          ],
-          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-        },
-        "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-          "effect": "A String", # Effect of the variant on the coding sequence.
-          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-            "A String",
-          ],
-          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-            {
-              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
               "externalIds": [ # The set of external IDs for this condition.
                 {
                   "sourceName": "A String", # The name of the source of this data.
                   "id": "A String", # The id used by the source of this data.
                 },
               ],
-              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+              "omimId": "A String", # The OMIM id for this condition.
+                  # Search for these IDs at http://omim.org/
+              "conceptId": "A String", # The MedGen concept id associated with this gene.
+                  # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
               "names": [ # A set of names for the condition.
                 "A String",
               ],
             },
           ],
-          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+          "effect": "A String", # Effect of the variant on the coding sequence.
+          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+              # should be provided when the variant is created.
+            "A String",
+          ],
+          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+              # exist at this location, create a separate variant for each one, as they
+              # may represent distinct conditions.
+          "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+              # It is adapted from the ClinVar controlled vocabulary for clinical
+              # significance described at:
+              # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+              # be provided when the variant is created.
         },
         "start": "A String", # The start position of the range on the reference, 0-based inclusive.
         "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-        "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-        "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+        "referenceName": "A String", # The display name corresponding to the reference specified by
+            # `referenceId`, for example `chr1`, `1`, or `chrX`.
+        "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+            # strand. Note that regardless of this field, the start/end position of the
+            # range always refer to the forward strand.
+        "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+            # the reference genome may be transcribed as RNA. An alternative splicing
+            # pattern would be represented as a separate transcript object. This field
+            # is only set for annotations of type `TRANSCRIPT`.
+            # reference genome may be transcribed as RNA.
+          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+              # the exact ranges of coding sequence, intersect this range with those of the
+              # exons, if any. If there are any
+              # exons, the
+              # codingSequence must start
+              # and end within them.
+              #
+              # Note that in some cases, the reference genome will not exactly match the
+              # observed mRNA transcript e.g. due to variance in the source genome from
+              # reference. In these cases,
+              # exon.frame will not necessarily
+              # match the expected reference reading frame and coding exon reference bases
+              # cannot necessarily be concatenated to produce the original transcript mRNA.
+            "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+                # 0-based inclusive. Note that this position is relative to the reference
+                # start, and *not* the containing annotation start.
+            "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+                # 0-based exclusive. Note that this position is relative to the reference
+                # start, and *not* the containing annotation start.
+          },
+          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+          "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+              # this transcript. This field should be unset for genomes where transcript
+              # splicing does not occur, for example prokaryotes.
+              #
+              # Introns are regions of the transcript that are not included in the
+              # spliced RNA product. Though not explicitly modeled here, intron ranges can
+              # be deduced; all regions of this transcript that are not exons are introns.
+              #
+              # Exonic sequences do not necessarily code for a translational product
+              # (amino acids). Only the regions of exons bounded by the
+              # codingSequence correspond
+              # to coding DNA sequence.
+              #
+              # Exons are ordered by start position and may not overlap.
+            {
+              "start": "A String", # The start position of the exon on this annotation's reference sequence,
+                  # 0-based inclusive. Note that this is relative to the reference start, and
+                  # **not** the containing annotation start.
+              "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+                  # the offset of the first coding base of the exon within the reading frame
+                  # of the coding DNA sequence, if any. This field is dependent on the
+                  # strandedness of this annotation (see
+                  # Annotation.reverse_strand).
+                  # For forward stranded annotations, this offset is relative to the
+                  # exon.start. For reverse
+                  # strand annotations, this offset is relative to the
+                  # exon.end `- 1`.
+                  #
+                  # Unset if this exon does not intersect the coding sequence. Upon creation
+                  # of a transcript, the frame must be populated for all or none of the
+                  # coding exons.
+              "end": "A String", # The end position of the exon on this annotation's reference sequence,
+                  # 0-based exclusive. Note that this is relative to the reference start, and
+                  # *not* the containing annotation start.
+            },
+          ],
+        },
         "id": "A String", # The server-generated annotation ID, unique across all annotations.
       },
     ],
-    "requestId": "A String", # A unique request ID which enables the server to detect duplicated requests. If provided, duplicated requests will result in the same response; if not provided, duplicated requests may result in duplicated data. For a given annotation set, callers should not reuse `request_id`s when writing different batches of annotations - behavior in this case is undefined. A common approach is to use a UUID. For batch jobs where worker crashes are a possibility, consider using some unique variant of a worker or run ID.
+    "requestId": "A String", # A unique request ID which enables the server to detect duplicated requests.
+        # If provided, duplicated requests will result in the same response; if not
+        # provided, duplicated requests may result in duplicated data. For a given
+        # annotation set, callers should not reuse `request_id`s when writing
+        # different batches of annotations - behavior in this case is undefined.
+        # A common approach is to use a UUID. For batch jobs where worker crashes are
+        # a possibility, consider using some unique variant of a worker or run ID.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "entries": [ # The resulting per-annotation entries, ordered consistently with the original request.
+    "entries": [ # The resulting per-annotation entries, ordered consistently with the
+        # original request.
       {
-        "status": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The creation status.
-          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+        "status": { # The `Status` type defines a logical error model that is suitable for different # The creation status.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
             {
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
-        "annotation": { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`. # The created annotation, if creation was successful.
-          "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+        "annotation": { # An annotation describes a region of reference genome. The value of an # The created annotation, if creation was successful.
+            # annotation may be one of several canonical types, supplemented by arbitrary
+            # info tags. An annotation is not inherently associated with a specific
+            # sample or individual (though a client could choose to use annotations in
+            # this way). Example canonical annotation types are `GENE` and
+            # `VARIANT`.
+          "info": { # A map of additional read alignment information. This must be of the form
+              # map<string, string[]> (string key mapping to a list of string values).
             "a_key": [
               "",
             ],
@@ -188,50 +347,116 @@
           "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
           "end": "A String", # The end position of the range on the reference, 0-based exclusive.
           "name": "A String", # The display name of this annotation.
-          "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-            "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-              "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-              "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-            },
-            "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+          "type": "A String", # The data type for this annotation. Must match the containing annotation
+              # set's type.
+          "variant": { # A variant annotation, which describes the effect of a variant on the
+              # genome, the coding sequence, and/or higher level consequences at the
+              # organism level e.g. pathogenicity. This field is only set for annotations
+              # of type `VARIANT`.
+            "conditions": [ # The set of conditions associated with this variant.
+                # A condition describes the way a variant influences human health.
               {
-                "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-                "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-                "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-              },
-            ],
-            "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-          },
-          "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-            "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-            "effect": "A String", # Effect of the variant on the coding sequence.
-            "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-              "A String",
-            ],
-            "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-            "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-            "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-              {
-                "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
                 "externalIds": [ # The set of external IDs for this condition.
                   {
                     "sourceName": "A String", # The name of the source of this data.
                     "id": "A String", # The id used by the source of this data.
                   },
                 ],
-                "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+                "omimId": "A String", # The OMIM id for this condition.
+                    # Search for these IDs at http://omim.org/
+                "conceptId": "A String", # The MedGen concept id associated with this gene.
+                    # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
                 "names": [ # A set of names for the condition.
                   "A String",
                 ],
               },
             ],
-            "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+            "effect": "A String", # Effect of the variant on the coding sequence.
+            "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+                # should be provided when the variant is created.
+              "A String",
+            ],
+            "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+                # exist at this location, create a separate variant for each one, as they
+                # may represent distinct conditions.
+            "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+                # It is adapted from the ClinVar controlled vocabulary for clinical
+                # significance described at:
+                # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+            "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+            "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+                # be provided when the variant is created.
           },
           "start": "A String", # The start position of the range on the reference, 0-based inclusive.
           "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-          "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-          "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+          "referenceName": "A String", # The display name corresponding to the reference specified by
+              # `referenceId`, for example `chr1`, `1`, or `chrX`.
+          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+              # strand. Note that regardless of this field, the start/end position of the
+              # range always refer to the forward strand.
+          "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+              # the reference genome may be transcribed as RNA. An alternative splicing
+              # pattern would be represented as a separate transcript object. This field
+              # is only set for annotations of type `TRANSCRIPT`.
+              # reference genome may be transcribed as RNA.
+            "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+                # the exact ranges of coding sequence, intersect this range with those of the
+                # exons, if any. If there are any
+                # exons, the
+                # codingSequence must start
+                # and end within them.
+                #
+                # Note that in some cases, the reference genome will not exactly match the
+                # observed mRNA transcript e.g. due to variance in the source genome from
+                # reference. In these cases,
+                # exon.frame will not necessarily
+                # match the expected reference reading frame and coding exon reference bases
+                # cannot necessarily be concatenated to produce the original transcript mRNA.
+              "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+                  # 0-based inclusive. Note that this position is relative to the reference
+                  # start, and *not* the containing annotation start.
+              "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+                  # 0-based exclusive. Note that this position is relative to the reference
+                  # start, and *not* the containing annotation start.
+            },
+            "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+            "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+                # this transcript. This field should be unset for genomes where transcript
+                # splicing does not occur, for example prokaryotes.
+                #
+                # Introns are regions of the transcript that are not included in the
+                # spliced RNA product. Though not explicitly modeled here, intron ranges can
+                # be deduced; all regions of this transcript that are not exons are introns.
+                #
+                # Exonic sequences do not necessarily code for a translational product
+                # (amino acids). Only the regions of exons bounded by the
+                # codingSequence correspond
+                # to coding DNA sequence.
+                #
+                # Exons are ordered by start position and may not overlap.
+              {
+                "start": "A String", # The start position of the exon on this annotation's reference sequence,
+                    # 0-based inclusive. Note that this is relative to the reference start, and
+                    # **not** the containing annotation start.
+                "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+                    # the offset of the first coding base of the exon within the reading frame
+                    # of the coding DNA sequence, if any. This field is dependent on the
+                    # strandedness of this annotation (see
+                    # Annotation.reverse_strand).
+                    # For forward stranded annotations, this offset is relative to the
+                    # exon.start. For reverse
+                    # strand annotations, this offset is relative to the
+                    # exon.end `- 1`.
+                    #
+                    # Unset if this exon does not intersect the coding sequence. Upon creation
+                    # of a transcript, the frame must be populated for all or none of the
+                    # coding exons.
+                "end": "A String", # The end position of the exon on this annotation's reference sequence,
+                    # 0-based exclusive. Note that this is relative to the reference start, and
+                    # *not* the containing annotation start.
+              },
+            ],
+          },
           "id": "A String", # The server-generated annotation ID, unique across all annotations.
         },
       },
@@ -241,14 +466,41 @@
 
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new annotation. Caller must have WRITE permission for the associated annotation set. The following fields are required: * annotationSetId * referenceName or referenceId ### Transcripts For annotations of type TRANSCRIPT, the following fields of transcript must be provided: * exons.start * exons.end All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field). The annotated range must be no longer than 100Mbp (mega base pairs). See the Annotation resource for additional restrictions on each field.
+  <pre>Creates a new annotation. Caller must have WRITE permission
+for the associated annotation set.
+
+The following fields are required:
+
+* annotationSetId
+* referenceName or
+  referenceId
+
+### Transcripts
+
+For annotations of type TRANSCRIPT, the following fields of
+transcript must be provided:
+
+* exons.start
+* exons.end
+
+All other fields may be optionally specified, unless documented as being
+server-generated (for example, the `id` field). The annotated
+range must be no longer than 100Mbp (mega base pairs). See the
+Annotation resource
+for additional restrictions on each field.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+{ # An annotation describes a region of reference genome. The value of an
+    # annotation may be one of several canonical types, supplemented by arbitrary
+    # info tags. An annotation is not inherently associated with a specific
+    # sample or individual (though a client could choose to use annotations in
+    # this way). Example canonical annotation types are `GENE` and
+    # `VARIANT`.
+  "info": { # A map of additional read alignment information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
@@ -256,60 +508,135 @@
   "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
   "end": "A String", # The end position of the range on the reference, 0-based exclusive.
   "name": "A String", # The display name of this annotation.
-  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-    },
-    "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+  "type": "A String", # The data type for this annotation. Must match the containing annotation
+      # set's type.
+  "variant": { # A variant annotation, which describes the effect of a variant on the
+      # genome, the coding sequence, and/or higher level consequences at the
+      # organism level e.g. pathogenicity. This field is only set for annotations
+      # of type `VARIANT`.
+    "conditions": [ # The set of conditions associated with this variant.
+        # A condition describes the way a variant influences human health.
       {
-        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-        "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-      },
-    ],
-    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-  },
-  "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-    "effect": "A String", # Effect of the variant on the coding sequence.
-    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-      "A String",
-    ],
-    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-      {
-        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
         "externalIds": [ # The set of external IDs for this condition.
           {
             "sourceName": "A String", # The name of the source of this data.
             "id": "A String", # The id used by the source of this data.
           },
         ],
-        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+        "omimId": "A String", # The OMIM id for this condition.
+            # Search for these IDs at http://omim.org/
+        "conceptId": "A String", # The MedGen concept id associated with this gene.
+            # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
         "names": [ # A set of names for the condition.
           "A String",
         ],
       },
     ],
-    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    "effect": "A String", # Effect of the variant on the coding sequence.
+    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+        # should be provided when the variant is created.
+      "A String",
+    ],
+    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+        # exist at this location, create a separate variant for each one, as they
+        # may represent distinct conditions.
+    "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+        # It is adapted from the ClinVar controlled vocabulary for clinical
+        # significance described at:
+        # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+        # be provided when the variant is created.
   },
   "start": "A String", # The start position of the range on the reference, 0-based inclusive.
   "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-  "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-  "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+  "referenceName": "A String", # The display name corresponding to the reference specified by
+      # `referenceId`, for example `chr1`, `1`, or `chrX`.
+  "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+      # strand. Note that regardless of this field, the start/end position of the
+      # range always refer to the forward strand.
+  "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+      # the reference genome may be transcribed as RNA. An alternative splicing
+      # pattern would be represented as a separate transcript object. This field
+      # is only set for annotations of type `TRANSCRIPT`.
+      # reference genome may be transcribed as RNA.
+    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+        # the exact ranges of coding sequence, intersect this range with those of the
+        # exons, if any. If there are any
+        # exons, the
+        # codingSequence must start
+        # and end within them.
+        #
+        # Note that in some cases, the reference genome will not exactly match the
+        # observed mRNA transcript e.g. due to variance in the source genome from
+        # reference. In these cases,
+        # exon.frame will not necessarily
+        # match the expected reference reading frame and coding exon reference bases
+        # cannot necessarily be concatenated to produce the original transcript mRNA.
+      "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+          # 0-based inclusive. Note that this position is relative to the reference
+          # start, and *not* the containing annotation start.
+      "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+          # 0-based exclusive. Note that this position is relative to the reference
+          # start, and *not* the containing annotation start.
+    },
+    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+    "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+        # this transcript. This field should be unset for genomes where transcript
+        # splicing does not occur, for example prokaryotes.
+        #
+        # Introns are regions of the transcript that are not included in the
+        # spliced RNA product. Though not explicitly modeled here, intron ranges can
+        # be deduced; all regions of this transcript that are not exons are introns.
+        #
+        # Exonic sequences do not necessarily code for a translational product
+        # (amino acids). Only the regions of exons bounded by the
+        # codingSequence correspond
+        # to coding DNA sequence.
+        #
+        # Exons are ordered by start position and may not overlap.
+      {
+        "start": "A String", # The start position of the exon on this annotation's reference sequence,
+            # 0-based inclusive. Note that this is relative to the reference start, and
+            # **not** the containing annotation start.
+        "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+            # the offset of the first coding base of the exon within the reading frame
+            # of the coding DNA sequence, if any. This field is dependent on the
+            # strandedness of this annotation (see
+            # Annotation.reverse_strand).
+            # For forward stranded annotations, this offset is relative to the
+            # exon.start. For reverse
+            # strand annotations, this offset is relative to the
+            # exon.end `- 1`.
+            #
+            # Unset if this exon does not intersect the coding sequence. Upon creation
+            # of a transcript, the frame must be populated for all or none of the
+            # coding exons.
+        "end": "A String", # The end position of the exon on this annotation's reference sequence,
+            # 0-based exclusive. Note that this is relative to the reference start, and
+            # *not* the containing annotation start.
+      },
+    ],
+  },
   "id": "A String", # The server-generated annotation ID, unique across all annotations.
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+    { # An annotation describes a region of reference genome. The value of an
+      # annotation may be one of several canonical types, supplemented by arbitrary
+      # info tags. An annotation is not inherently associated with a specific
+      # sample or individual (though a client could choose to use annotations in
+      # this way). Example canonical annotation types are `GENE` and
+      # `VARIANT`.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -317,82 +644,170 @@
     "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
     "end": "A String", # The end position of the range on the reference, 0-based exclusive.
     "name": "A String", # The display name of this annotation.
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-      },
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation
+        # set's type.
+    "variant": { # A variant annotation, which describes the effect of a variant on the
+        # genome, the coding sequence, and/or higher level consequences at the
+        # organism level e.g. pathogenicity. This field is only set for annotations
+        # of type `VARIANT`.
+      "conditions": [ # The set of conditions associated with this variant.
+          # A condition describes the way a variant influences human health.
         {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-        },
-      ],
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    },
-    "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "externalIds": [ # The set of external IDs for this condition.
             {
               "sourceName": "A String", # The name of the source of this data.
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
+          "conceptId": "A String", # The MedGen concept id associated with this gene.
+              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "names": [ # A set of names for the condition.
             "A String",
           ],
         },
       ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+          # should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+          # exist at this location, create a separate variant for each one, as they
+          # may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+          # It is adapted from the ClinVar controlled vocabulary for clinical
+          # significance described at:
+          # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+          # be provided when the variant is created.
     },
     "start": "A String", # The start position of the range on the reference, 0-based inclusive.
     "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "referenceName": "A String", # The display name corresponding to the reference specified by
+        # `referenceId`, for example `chr1`, `1`, or `chrX`.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+        # strand. Note that regardless of this field, the start/end position of the
+        # range always refer to the forward strand.
+    "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+        # the reference genome may be transcribed as RNA. An alternative splicing
+        # pattern would be represented as a separate transcript object. This field
+        # is only set for annotations of type `TRANSCRIPT`.
+        # reference genome may be transcribed as RNA.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+          # the exact ranges of coding sequence, intersect this range with those of the
+          # exons, if any. If there are any
+          # exons, the
+          # codingSequence must start
+          # and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the
+          # observed mRNA transcript e.g. due to variance in the source genome from
+          # reference. In these cases,
+          # exon.frame will not necessarily
+          # match the expected reference reading frame and coding exon reference bases
+          # cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+            # 0-based inclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+            # 0-based exclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+          # this transcript. This field should be unset for genomes where transcript
+          # splicing does not occur, for example prokaryotes.
+          #
+          # Introns are regions of the transcript that are not included in the
+          # spliced RNA product. Though not explicitly modeled here, intron ranges can
+          # be deduced; all regions of this transcript that are not exons are introns.
+          #
+          # Exonic sequences do not necessarily code for a translational product
+          # (amino acids). Only the regions of exons bounded by the
+          # codingSequence correspond
+          # to coding DNA sequence.
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence,
+              # 0-based inclusive. Note that this is relative to the reference start, and
+              # **not** the containing annotation start.
+          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+              # the offset of the first coding base of the exon within the reading frame
+              # of the coding DNA sequence, if any. This field is dependent on the
+              # strandedness of this annotation (see
+              # Annotation.reverse_strand).
+              # For forward stranded annotations, this offset is relative to the
+              # exon.start. For reverse
+              # strand annotations, this offset is relative to the
+              # exon.end `- 1`.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation
+              # of a transcript, the frame must be populated for all or none of the
+              # coding exons.
+          "end": "A String", # The end position of the exon on this annotation's reference sequence,
+              # 0-based exclusive. Note that this is relative to the reference start, and
+              # *not* the containing annotation start.
+        },
+      ],
+    },
     "id": "A String", # The server-generated annotation ID, unique across all annotations.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(annotationId, x__xgafv=None)</code>
-  <pre>Deletes an annotation. Caller must have WRITE permission for the associated annotation set.
+  <pre>Deletes an annotation. Caller must have WRITE permission for
+the associated annotation set.
 
 Args:
   annotationId: string, The ID of the annotation to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(annotationId, x__xgafv=None)</code>
-  <pre>Gets an annotation. Caller must have READ permission for the associated annotation set.
+  <pre>Gets an annotation. Caller must have READ permission
+for the associated annotation set.
 
 Args:
   annotationId: string, The ID of the annotation to be retrieved. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+    { # An annotation describes a region of reference genome. The value of an
+      # annotation may be one of several canonical types, supplemented by arbitrary
+      # info tags. An annotation is not inherently associated with a specific
+      # sample or individual (though a client could choose to use annotations in
+      # this way). Example canonical annotation types are `GENE` and
+      # `VARIANT`.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -400,57 +815,129 @@
     "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
     "end": "A String", # The end position of the range on the reference, 0-based exclusive.
     "name": "A String", # The display name of this annotation.
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-      },
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation
+        # set's type.
+    "variant": { # A variant annotation, which describes the effect of a variant on the
+        # genome, the coding sequence, and/or higher level consequences at the
+        # organism level e.g. pathogenicity. This field is only set for annotations
+        # of type `VARIANT`.
+      "conditions": [ # The set of conditions associated with this variant.
+          # A condition describes the way a variant influences human health.
         {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-        },
-      ],
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    },
-    "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "externalIds": [ # The set of external IDs for this condition.
             {
               "sourceName": "A String", # The name of the source of this data.
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
+          "conceptId": "A String", # The MedGen concept id associated with this gene.
+              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "names": [ # A set of names for the condition.
             "A String",
           ],
         },
       ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+          # should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+          # exist at this location, create a separate variant for each one, as they
+          # may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+          # It is adapted from the ClinVar controlled vocabulary for clinical
+          # significance described at:
+          # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+          # be provided when the variant is created.
     },
     "start": "A String", # The start position of the range on the reference, 0-based inclusive.
     "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "referenceName": "A String", # The display name corresponding to the reference specified by
+        # `referenceId`, for example `chr1`, `1`, or `chrX`.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+        # strand. Note that regardless of this field, the start/end position of the
+        # range always refer to the forward strand.
+    "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+        # the reference genome may be transcribed as RNA. An alternative splicing
+        # pattern would be represented as a separate transcript object. This field
+        # is only set for annotations of type `TRANSCRIPT`.
+        # reference genome may be transcribed as RNA.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+          # the exact ranges of coding sequence, intersect this range with those of the
+          # exons, if any. If there are any
+          # exons, the
+          # codingSequence must start
+          # and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the
+          # observed mRNA transcript e.g. due to variance in the source genome from
+          # reference. In these cases,
+          # exon.frame will not necessarily
+          # match the expected reference reading frame and coding exon reference bases
+          # cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+            # 0-based inclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+            # 0-based exclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+          # this transcript. This field should be unset for genomes where transcript
+          # splicing does not occur, for example prokaryotes.
+          #
+          # Introns are regions of the transcript that are not included in the
+          # spliced RNA product. Though not explicitly modeled here, intron ranges can
+          # be deduced; all regions of this transcript that are not exons are introns.
+          #
+          # Exonic sequences do not necessarily code for a translational product
+          # (amino acids). Only the regions of exons bounded by the
+          # codingSequence correspond
+          # to coding DNA sequence.
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence,
+              # 0-based inclusive. Note that this is relative to the reference start, and
+              # **not** the containing annotation start.
+          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+              # the offset of the first coding base of the exon within the reading frame
+              # of the coding DNA sequence, if any. This field is dependent on the
+              # strandedness of this annotation (see
+              # Annotation.reverse_strand).
+              # For forward stranded annotations, this offset is relative to the
+              # exon.start. For reverse
+              # strand annotations, this offset is relative to the
+              # exon.end `- 1`.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation
+              # of a transcript, the frame must be populated for all or none of the
+              # coding exons.
+          "end": "A String", # The end position of the exon on this annotation's reference sequence,
+              # 0-based exclusive. Note that this is relative to the reference start, and
+              # *not* the containing annotation start.
+        },
+      ],
+    },
     "id": "A String", # The server-generated annotation ID, unique across all annotations.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Searches for annotations that match the given criteria. Results are ordered by genomic coordinate (by reference sequence, then position). Annotations with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotations in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried annotation sets.
+  <pre>Searches for annotations that match the given criteria. Results are
+ordered by genomic coordinate (by reference sequence, then position).
+Annotations with equivalent genomic coordinates are returned in an
+unspecified order. This order is consistent, such that two queries for the
+same content (regardless of page size) yield annotations in the same order
+across their respective streams of paginated responses. Caller must have
+READ permission for the queried annotation sets.
 
 Args:
   body: object, The request body. (required)
@@ -458,26 +945,50 @@
 
 {
     "referenceId": "A String", # The ID of the reference to query.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If referenceId or referenceName must be specified, Defaults to the length of the reference.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "annotationSetIds": [ # Required. The annotation sets to search within. The caller must have `READ` access to these annotation sets. All queried annotation sets must have the same type.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If
+        # referenceId or
+        # referenceName
+        # must be specified, Defaults to the length of the reference.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 256. The maximum value is 2048.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
+        # specified,
+        # referenceId or
+        # referenceName
+        # must be specified. Defaults to 0.
+    "annotationSetIds": [ # Required. The annotation sets to search within. The caller must have
+        # `READ` access to these annotation sets.
+        # All queried annotation sets must have the same type.
       "A String",
     ],
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceId or referenceName must be specified. Defaults to 0.
-    "referenceName": "A String", # The name of the reference to query, within the reference set associated with this query.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "referenceName": "A String", # The name of the reference to query, within the reference set associated
+        # with this query.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "annotations": [ # The matching annotations.
-      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+      { # An annotation describes a region of reference genome. The value of an
+          # annotation may be one of several canonical types, supplemented by arbitrary
+          # info tags. An annotation is not inherently associated with a specific
+          # sample or individual (though a client could choose to use annotations in
+          # this way). Example canonical annotation types are `GENE` and
+          # `VARIANT`.
+        "info": { # A map of additional read alignment information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
@@ -485,50 +996,116 @@
         "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
         "end": "A String", # The end position of the range on the reference, 0-based exclusive.
         "name": "A String", # The display name of this annotation.
-        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-          },
-          "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+        "type": "A String", # The data type for this annotation. Must match the containing annotation
+            # set's type.
+        "variant": { # A variant annotation, which describes the effect of a variant on the
+            # genome, the coding sequence, and/or higher level consequences at the
+            # organism level e.g. pathogenicity. This field is only set for annotations
+            # of type `VARIANT`.
+          "conditions": [ # The set of conditions associated with this variant.
+              # A condition describes the way a variant influences human health.
             {
-              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-              "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-            },
-          ],
-          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-        },
-        "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-          "effect": "A String", # Effect of the variant on the coding sequence.
-          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-            "A String",
-          ],
-          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-            {
-              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
               "externalIds": [ # The set of external IDs for this condition.
                 {
                   "sourceName": "A String", # The name of the source of this data.
                   "id": "A String", # The id used by the source of this data.
                 },
               ],
-              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+              "omimId": "A String", # The OMIM id for this condition.
+                  # Search for these IDs at http://omim.org/
+              "conceptId": "A String", # The MedGen concept id associated with this gene.
+                  # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
               "names": [ # A set of names for the condition.
                 "A String",
               ],
             },
           ],
-          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+          "effect": "A String", # Effect of the variant on the coding sequence.
+          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+              # should be provided when the variant is created.
+            "A String",
+          ],
+          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+              # exist at this location, create a separate variant for each one, as they
+              # may represent distinct conditions.
+          "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+              # It is adapted from the ClinVar controlled vocabulary for clinical
+              # significance described at:
+              # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+              # be provided when the variant is created.
         },
         "start": "A String", # The start position of the range on the reference, 0-based inclusive.
         "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-        "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-        "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+        "referenceName": "A String", # The display name corresponding to the reference specified by
+            # `referenceId`, for example `chr1`, `1`, or `chrX`.
+        "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+            # strand. Note that regardless of this field, the start/end position of the
+            # range always refer to the forward strand.
+        "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+            # the reference genome may be transcribed as RNA. An alternative splicing
+            # pattern would be represented as a separate transcript object. This field
+            # is only set for annotations of type `TRANSCRIPT`.
+            # reference genome may be transcribed as RNA.
+          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+              # the exact ranges of coding sequence, intersect this range with those of the
+              # exons, if any. If there are any
+              # exons, the
+              # codingSequence must start
+              # and end within them.
+              #
+              # Note that in some cases, the reference genome will not exactly match the
+              # observed mRNA transcript e.g. due to variance in the source genome from
+              # reference. In these cases,
+              # exon.frame will not necessarily
+              # match the expected reference reading frame and coding exon reference bases
+              # cannot necessarily be concatenated to produce the original transcript mRNA.
+            "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+                # 0-based inclusive. Note that this position is relative to the reference
+                # start, and *not* the containing annotation start.
+            "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+                # 0-based exclusive. Note that this position is relative to the reference
+                # start, and *not* the containing annotation start.
+          },
+          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+          "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+              # this transcript. This field should be unset for genomes where transcript
+              # splicing does not occur, for example prokaryotes.
+              #
+              # Introns are regions of the transcript that are not included in the
+              # spliced RNA product. Though not explicitly modeled here, intron ranges can
+              # be deduced; all regions of this transcript that are not exons are introns.
+              #
+              # Exonic sequences do not necessarily code for a translational product
+              # (amino acids). Only the regions of exons bounded by the
+              # codingSequence correspond
+              # to coding DNA sequence.
+              #
+              # Exons are ordered by start position and may not overlap.
+            {
+              "start": "A String", # The start position of the exon on this annotation's reference sequence,
+                  # 0-based inclusive. Note that this is relative to the reference start, and
+                  # **not** the containing annotation start.
+              "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+                  # the offset of the first coding base of the exon within the reading frame
+                  # of the coding DNA sequence, if any. This field is dependent on the
+                  # strandedness of this annotation (see
+                  # Annotation.reverse_strand).
+                  # For forward stranded annotations, this offset is relative to the
+                  # exon.start. For reverse
+                  # strand annotations, this offset is relative to the
+                  # exon.end `- 1`.
+                  #
+                  # Unset if this exon does not intersect the coding sequence. Upon creation
+                  # of a transcript, the frame must be populated for all or none of the
+                  # coding exons.
+              "end": "A String", # The end position of the exon on this annotation's reference sequence,
+                  # 0-based exclusive. Note that this is relative to the reference start, and
+                  # *not* the containing annotation start.
+            },
+          ],
+        },
         "id": "A String", # The server-generated annotation ID, unique across all annotations.
       },
     ],
@@ -536,16 +1113,37 @@
 </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>
+
+<div class="method">
     <code class="details" id="update">update(annotationId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates an annotation. Caller must have WRITE permission for the associated dataset.
+  <pre>Updates an annotation. Caller must have
+WRITE permission for the associated dataset.
 
 Args:
   annotationId: string, The ID of the annotation to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+{ # An annotation describes a region of reference genome. The value of an
+    # annotation may be one of several canonical types, supplemented by arbitrary
+    # info tags. An annotation is not inherently associated with a specific
+    # sample or individual (though a client could choose to use annotations in
+    # this way). Example canonical annotation types are `GENE` and
+    # `VARIANT`.
+  "info": { # A map of additional read alignment information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
@@ -553,61 +1151,141 @@
   "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
   "end": "A String", # The end position of the range on the reference, 0-based exclusive.
   "name": "A String", # The display name of this annotation.
-  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-    },
-    "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+  "type": "A String", # The data type for this annotation. Must match the containing annotation
+      # set's type.
+  "variant": { # A variant annotation, which describes the effect of a variant on the
+      # genome, the coding sequence, and/or higher level consequences at the
+      # organism level e.g. pathogenicity. This field is only set for annotations
+      # of type `VARIANT`.
+    "conditions": [ # The set of conditions associated with this variant.
+        # A condition describes the way a variant influences human health.
       {
-        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-        "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-      },
-    ],
-    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-  },
-  "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-    "effect": "A String", # Effect of the variant on the coding sequence.
-    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-      "A String",
-    ],
-    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-      {
-        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
         "externalIds": [ # The set of external IDs for this condition.
           {
             "sourceName": "A String", # The name of the source of this data.
             "id": "A String", # The id used by the source of this data.
           },
         ],
-        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+        "omimId": "A String", # The OMIM id for this condition.
+            # Search for these IDs at http://omim.org/
+        "conceptId": "A String", # The MedGen concept id associated with this gene.
+            # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
         "names": [ # A set of names for the condition.
           "A String",
         ],
       },
     ],
-    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    "effect": "A String", # Effect of the variant on the coding sequence.
+    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+        # should be provided when the variant is created.
+      "A String",
+    ],
+    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+        # exist at this location, create a separate variant for each one, as they
+        # may represent distinct conditions.
+    "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+        # It is adapted from the ClinVar controlled vocabulary for clinical
+        # significance described at:
+        # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+        # be provided when the variant is created.
   },
   "start": "A String", # The start position of the range on the reference, 0-based inclusive.
   "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-  "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-  "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+  "referenceName": "A String", # The display name corresponding to the reference specified by
+      # `referenceId`, for example `chr1`, `1`, or `chrX`.
+  "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+      # strand. Note that regardless of this field, the start/end position of the
+      # range always refer to the forward strand.
+  "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+      # the reference genome may be transcribed as RNA. An alternative splicing
+      # pattern would be represented as a separate transcript object. This field
+      # is only set for annotations of type `TRANSCRIPT`.
+      # reference genome may be transcribed as RNA.
+    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+        # the exact ranges of coding sequence, intersect this range with those of the
+        # exons, if any. If there are any
+        # exons, the
+        # codingSequence must start
+        # and end within them.
+        #
+        # Note that in some cases, the reference genome will not exactly match the
+        # observed mRNA transcript e.g. due to variance in the source genome from
+        # reference. In these cases,
+        # exon.frame will not necessarily
+        # match the expected reference reading frame and coding exon reference bases
+        # cannot necessarily be concatenated to produce the original transcript mRNA.
+      "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+          # 0-based inclusive. Note that this position is relative to the reference
+          # start, and *not* the containing annotation start.
+      "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+          # 0-based exclusive. Note that this position is relative to the reference
+          # start, and *not* the containing annotation start.
+    },
+    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+    "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+        # this transcript. This field should be unset for genomes where transcript
+        # splicing does not occur, for example prokaryotes.
+        #
+        # Introns are regions of the transcript that are not included in the
+        # spliced RNA product. Though not explicitly modeled here, intron ranges can
+        # be deduced; all regions of this transcript that are not exons are introns.
+        #
+        # Exonic sequences do not necessarily code for a translational product
+        # (amino acids). Only the regions of exons bounded by the
+        # codingSequence correspond
+        # to coding DNA sequence.
+        #
+        # Exons are ordered by start position and may not overlap.
+      {
+        "start": "A String", # The start position of the exon on this annotation's reference sequence,
+            # 0-based inclusive. Note that this is relative to the reference start, and
+            # **not** the containing annotation start.
+        "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+            # the offset of the first coding base of the exon within the reading frame
+            # of the coding DNA sequence, if any. This field is dependent on the
+            # strandedness of this annotation (see
+            # Annotation.reverse_strand).
+            # For forward stranded annotations, this offset is relative to the
+            # exon.start. For reverse
+            # strand annotations, this offset is relative to the
+            # exon.end `- 1`.
+            #
+            # Unset if this exon does not intersect the coding sequence. Upon creation
+            # of a transcript, the frame must be populated for all or none of the
+            # coding exons.
+        "end": "A String", # The end position of the exon on this annotation's reference sequence,
+            # 0-based exclusive. Note that this is relative to the reference start, and
+            # *not* the containing annotation start.
+      },
+    ],
+  },
   "id": "A String", # The server-generated annotation ID, unique across all annotations.
 }
 
-  updateMask: string, An optional mask specifying which fields to update. Mutable fields are name, variant, transcript, and info. If unspecified, all mutable fields will be updated.
+  updateMask: string, An optional mask specifying which fields to update. Mutable fields are
+name,
+variant,
+transcript, and
+info. If unspecified, all mutable
+fields will be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are `GENE` and `VARIANT`.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+    { # An annotation describes a region of reference genome. The value of an
+      # annotation may be one of several canonical types, supplemented by arbitrary
+      # info tags. An annotation is not inherently associated with a specific
+      # sample or individual (though a client could choose to use annotations in
+      # this way). Example canonical annotation types are `GENE` and
+      # `VARIANT`.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -615,50 +1293,116 @@
     "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
     "end": "A String", # The end position of the range on the reference, 0-based exclusive.
     "name": "A String", # The display name of this annotation.
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type `TRANSCRIPT`.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them. Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and *not* the containing annotation start.
-      },
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes. Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns. Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence. Exons are ordered by start position and may not overlap.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation
+        # set's type.
+    "variant": { # A variant annotation, which describes the effect of a variant on the
+        # genome, the coding sequence, and/or higher level consequences at the
+        # organism level e.g. pathogenicity. This field is only set for annotations
+        # of type `VARIANT`.
+      "conditions": [ # The set of conditions associated with this variant.
+          # A condition describes the way a variant influences human health.
         {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and **not** the containing annotation start.
-          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.reverse_strand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end `- 1`. Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and *not* the containing annotation start.
-        },
-      ],
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    },
-    "variant": { # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type `VARIANT`.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "externalIds": [ # The set of external IDs for this condition.
             {
               "sourceName": "A String", # The name of the source of this data.
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
+          "conceptId": "A String", # The MedGen concept id associated with this gene.
+              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
           "names": [ # A set of names for the condition.
             "A String",
           ],
         },
       ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These
+          # should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles
+          # exist at this location, create a separate variant for each one, as they
+          # may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant.
+          # It is adapted from the ClinVar controlled vocabulary for clinical
+          # significance described at:
+          # http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should
+          # be provided when the variant is created.
     },
     "start": "A String", # The start position of the range on the reference, 0-based inclusive.
     "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "referenceName": "A String", # The display name corresponding to the reference specified by `referenceId`, for example `chr1`, `1`, or `chrX`.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "referenceName": "A String", # The display name corresponding to the reference specified by
+        # `referenceId`, for example `chr1`, `1`, or `chrX`.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward
+        # strand. Note that regardless of this field, the start/end position of the
+        # range always refer to the forward strand.
+    "transcript": { # A transcript represents the assertion that a particular region of the # A transcript value represents the assertion that a particular region of
+        # the reference genome may be transcribed as RNA. An alternative splicing
+        # pattern would be represented as a separate transcript object. This field
+        # is only set for annotations of type `TRANSCRIPT`.
+        # reference genome may be transcribed as RNA.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine
+          # the exact ranges of coding sequence, intersect this range with those of the
+          # exons, if any. If there are any
+          # exons, the
+          # codingSequence must start
+          # and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the
+          # observed mRNA transcript e.g. due to variance in the source genome from
+          # reference. In these cases,
+          # exon.frame will not necessarily
+          # match the expected reference reading frame and coding exon reference bases
+          # cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence,
+            # 0-based inclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence,
+            # 0-based exclusive. Note that this position is relative to the reference
+            # start, and *not* the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
+          # this transcript. This field should be unset for genomes where transcript
+          # splicing does not occur, for example prokaryotes.
+          #
+          # Introns are regions of the transcript that are not included in the
+          # spliced RNA product. Though not explicitly modeled here, intron ranges can
+          # be deduced; all regions of this transcript that are not exons are introns.
+          #
+          # Exonic sequences do not necessarily code for a translational product
+          # (amino acids). Only the regions of exons bounded by the
+          # codingSequence correspond
+          # to coding DNA sequence.
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence,
+              # 0-based inclusive. Note that this is relative to the reference start, and
+              # **not** the containing annotation start.
+          "frame": 42, # The frame of this exon. Contains a value of 0, 1, or 2, which indicates
+              # the offset of the first coding base of the exon within the reading frame
+              # of the coding DNA sequence, if any. This field is dependent on the
+              # strandedness of this annotation (see
+              # Annotation.reverse_strand).
+              # For forward stranded annotations, this offset is relative to the
+              # exon.start. For reverse
+              # strand annotations, this offset is relative to the
+              # exon.end `- 1`.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation
+              # of a transcript, the frame must be populated for all or none of the
+              # coding exons.
+          "end": "A String", # The end position of the exon on this annotation's reference sequence,
+              # 0-based exclusive. Note that this is relative to the reference start, and
+              # *not* the containing annotation start.
+        },
+      ],
+    },
     "id": "A String", # The server-generated annotation ID, unique across all annotations.
   }</pre>
 </div>
diff --git a/docs/dyn/genomics_v1.annotationsets.html b/docs/dyn/genomics_v1.annotationsets.html
index 1a24a9e..c282cfa 100644
--- a/docs/dyn/genomics_v1.annotationsets.html
+++ b/docs/dyn/genomics_v1.annotationsets.html
@@ -76,191 +76,291 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new annotation set. Caller must have WRITE permission for the associated dataset. The following fields are required: * datasetId * referenceSetId All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field).</p>
+<p class="firstline">Creates a new annotation set. Caller must have WRITE permission for the</p>
 <p class="toc_element">
   <code><a href="#delete">delete(annotationSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.</p>
+<p class="firstline">Deletes an annotation set. Caller must have WRITE permission</p>
 <p class="toc_element">
   <code><a href="#get">get(annotationSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets an annotation set. Caller must have READ permission for the associated dataset.</p>
+<p class="firstline">Gets an annotation set. Caller must have READ permission for</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches for annotation sets that match the given criteria. Annotation sets are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotation sets in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried datasets.</p>
+<p class="firstline">Searches for annotation sets that match the given criteria. Annotation sets</p>
 <p class="toc_element">
-  <code><a href="#update">update(annotationSetId, body, x__xgafv=None, updateMask=None)</a></code></p>
-<p class="firstline">Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.</p>
+  <code><a href="#search_next">search_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(annotationSetId, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an annotation set. The update must respect all mutability</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new annotation set. Caller must have WRITE permission for the associated dataset. The following fields are required: * datasetId * referenceSetId All other fields may be optionally specified, unless documented as being server-generated (for example, the `id` field).
+  <pre>Creates a new annotation set. Caller must have WRITE permission for the
+associated dataset.
+
+The following fields are required:
+
+  * datasetId
+  * referenceSetId
+
+All other fields may be optionally specified, unless documented as being
+server-generated (for example, the `id` field).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
-    "a_key": [
-      "",
-    ],
-  },
-  "name": "A String", # The display name for this annotation set.
-  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-  "type": "A String", # The type of annotations contained within this set.
-  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-  "datasetId": "A String", # The dataset to which this annotation set belongs.
-}
-
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+{ # An annotation set is a logical grouping of annotations that share consistent
+      # type information and provenance. Examples of annotation sets include 'all
+      # genes from refseq', and 'all variant annotations from ClinVar'.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
     },
     "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+        # generated, if any.
     "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+        # set's annotations.
     "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
     "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
-</div>
+  }
 
-<div class="method">
-    <code class="details" id="delete">delete(annotationSetId, x__xgafv=None)</code>
-  <pre>Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.
-
-Args:
-  annotationSetId: string, The ID of the annotation set to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # An annotation set is a logical grouping of annotations that share consistent
+        # type information and provenance. Examples of annotation sets include 'all
+        # genes from refseq', and 'all variant annotations from ClinVar'.
+      "info": { # A map of additional read alignment information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
+        "a_key": [
+          "",
+        ],
+      },
+      "name": "A String", # The display name for this annotation set.
+      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+          # generated, if any.
+      "type": "A String", # The type of annotations contained within this set.
+      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+          # set's annotations.
+      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+      "datasetId": "A String", # The dataset to which this annotation set belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(annotationSetId, x__xgafv=None)</code>
+  <pre>Deletes an annotation set. Caller must have WRITE permission
+for the associated annotation set.
+
+Args:
+  annotationSetId: string, The ID of the annotation set to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(annotationSetId, x__xgafv=None)</code>
-  <pre>Gets an annotation set. Caller must have READ permission for the associated dataset.
+  <pre>Gets an annotation set. Caller must have READ permission for
+the associated dataset.
 
 Args:
   annotationSetId: string, The ID of the annotation set to be retrieved. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
-      "a_key": [
-        "",
-      ],
-    },
-    "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-    "type": "A String", # The type of annotations contained within this set.
-    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-    "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
+    { # An annotation set is a logical grouping of annotations that share consistent
+        # type information and provenance. Examples of annotation sets include 'all
+        # genes from refseq', and 'all variant annotations from ClinVar'.
+      "info": { # A map of additional read alignment information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
+        "a_key": [
+          "",
+        ],
+      },
+      "name": "A String", # The display name for this annotation set.
+      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+          # generated, if any.
+      "type": "A String", # The type of annotations contained within this set.
+      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+          # set's annotations.
+      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+      "datasetId": "A String", # The dataset to which this annotation set belongs.
+    }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Searches for annotation sets that match the given criteria. Annotation sets are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotation sets in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried datasets.
+  <pre>Searches for annotation sets that match the given criteria. Annotation sets
+are returned in an unspecified order. This order is consistent, such that
+two queries for the same content (regardless of page size) yield annotation
+sets in the same order across their respective streams of paginated
+responses. Caller must have READ permission for the queried datasets.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 {
-    "name": "A String", # Only return annotations sets for which a substring of the name matches this string (case insensitive).
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 128. The maximum value is 1024.
-    "datasetIds": [ # Required. The dataset IDs to search within. Caller must have `READ` access to these datasets.
+    "name": "A String", # Only return annotations sets for which a substring of the name matches this
+        # string (case insensitive).
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 128. The maximum value is 1024.
+    "datasetIds": [ # Required. The dataset IDs to search within. Caller must have `READ` access
+        # to these datasets.
       "A String",
     ],
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "referenceSetId": "A String", # If specified, only annotation sets associated with the given reference set are returned.
-    "types": [ # If specified, only annotation sets that have any of these types are returned.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "referenceSetId": "A String", # If specified, only annotation sets associated with the given reference set
+        # are returned.
+    "types": [ # If specified, only annotation sets that have any of these types are
+        # returned.
       "A String",
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "annotationSets": [ # The matching annotation sets.
-      { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
-          "a_key": [
-            "",
-          ],
+      { # An annotation set is a logical grouping of annotations that share consistent
+            # type information and provenance. Examples of annotation sets include 'all
+            # genes from refseq', and 'all variant annotations from ClinVar'.
+          "info": { # A map of additional read alignment information. This must be of the form
+              # map<string, string[]> (string key mapping to a list of string values).
+            "a_key": [
+              "",
+            ],
+          },
+          "name": "A String", # The display name for this annotation set.
+          "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+              # generated, if any.
+          "type": "A String", # The type of annotations contained within this set.
+          "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+              # set's annotations.
+          "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+          "datasetId": "A String", # The dataset to which this annotation set belongs.
         },
-        "name": "A String", # The display name for this annotation set.
-        "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-        "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-        "type": "A String", # The type of annotations contained within this set.
-        "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-        "datasetId": "A String", # The dataset to which this annotation set belongs.
-      },
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(annotationSetId, body, x__xgafv=None, updateMask=None)</code>
-  <pre>Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.
+    <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>
+
+<div class="method">
+    <code class="details" id="update">update(annotationSetId, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an annotation set. The update must respect all mutability
+restrictions and other invariants described on the annotation set resource.
+Caller must have WRITE permission for the associated dataset.
 
 Args:
   annotationSetId: string, The ID of the annotation set to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-  "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
-    "a_key": [
-      "",
-    ],
-  },
-  "name": "A String", # The display name for this annotation set.
-  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-  "type": "A String", # The type of annotations contained within this set.
-  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-  "datasetId": "A String", # The dataset to which this annotation set belongs.
-}
-
-  x__xgafv: string, V1 error format.
-  updateMask: string, An optional mask specifying which fields to update. Mutable fields are name, source_uri, and info. If unspecified, all mutable fields will be updated.
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+{ # An annotation set is a logical grouping of annotations that share consistent
+      # type information and provenance. Examples of annotation sets include 'all
+      # genes from refseq', and 'all variant annotations from ClinVar'.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
     },
     "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+        # generated, if any.
     "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+        # set's annotations.
     "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
     "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
+  }
+
+  updateMask: string, An optional mask specifying which fields to update. Mutable fields are
+name,
+source_uri, and
+info. If unspecified, all
+mutable fields will be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations that share consistent
+        # type information and provenance. Examples of annotation sets include 'all
+        # genes from refseq', and 'all variant annotations from ClinVar'.
+      "info": { # A map of additional read alignment information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
+        "a_key": [
+          "",
+        ],
+      },
+      "name": "A String", # The display name for this annotation set.
+      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+          # generated, if any.
+      "type": "A String", # The type of annotations contained within this set.
+      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+          # set's annotations.
+      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+      "datasetId": "A String", # The dataset to which this annotation set belongs.
+    }</pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1.callsets.html b/docs/dyn/genomics_v1.callsets.html
index 01de614..cc22f1c 100644
--- a/docs/dyn/genomics_v1.callsets.html
+++ b/docs/dyn/genomics_v1.callsets.html
@@ -76,30 +76,42 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Creates a new call set.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(callSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Deletes a call set.</p>
 <p class="toc_element">
   <code><a href="#get">get(callSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a call set by ID. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Gets a call set by ID.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(callSetId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.</p>
+<p class="firstline">Updates a call set.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a list of call sets matching the criteria. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).</p>
+<p class="firstline">Gets a list of call sets matching the criteria.</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="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Creates a new call set.
+
+For the definitions of call sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-  "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+{ # A call set is a collection of variant calls, typically for one sample. It
+    # belongs to a variant set.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  "info": { # A map of additional call set information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
@@ -107,19 +119,31 @@
   "name": "A String", # The call set name.
   "created": "A String", # The date this call set was created in milliseconds from the epoch.
   "sampleId": "A String", # The sample ID this call set corresponds to.
-  "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+  "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+      # have exactly length one, as a call set belongs to a single variant set.
+      # This field is repeated for compatibility with the
+      # [GA4GH 0.5.1
+      # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
     "A String",
   ],
   "id": "A String", # The server-generated call set ID, unique across all call sets.
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+    { # A call set is a collection of variant calls, typically for one sample. It
+      # belongs to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "info": { # A map of additional call set information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -127,7 +151,11 @@
     "name": "A String", # The call set name.
     "created": "A String", # The date this call set was created in milliseconds from the epoch.
     "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+        # have exactly length one, as a call set belongs to a single variant set.
+        # This field is repeated for compatibility with the
+        # [GA4GH 0.5.1
+        # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
       "A String",
     ],
     "id": "A String", # The server-generated call set ID, unique across all call sets.
@@ -136,32 +164,59 @@
 
 <div class="method">
     <code class="details" id="delete">delete(callSetId, x__xgafv=None)</code>
-  <pre>Deletes a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Deletes a call set.
+
+For the definitions of call sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   callSetId: string, The ID of the call set to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(callSetId, x__xgafv=None)</code>
-  <pre>Gets a call set by ID. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Gets a call set by ID.
+
+For the definitions of call sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   callSetId: string, The ID of the call set. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+    { # A call set is a collection of variant calls, typically for one sample. It
+      # belongs to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "info": { # A map of additional call set information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -169,7 +224,11 @@
     "name": "A String", # The call set name.
     "created": "A String", # The date this call set was created in milliseconds from the epoch.
     "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+        # have exactly length one, as a call set belongs to a single variant set.
+        # This field is repeated for compatibility with the
+        # [GA4GH 0.5.1
+        # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
       "A String",
     ],
     "id": "A String", # The server-generated call set ID, unique across all call sets.
@@ -178,15 +237,26 @@
 
 <div class="method">
     <code class="details" id="patch">patch(callSetId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates a call set. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.
+  <pre>Updates a call set.
+
+For the definitions of call sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+This method supports patch semantics.
 
 Args:
   callSetId: string, The ID of the call set to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-  "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+{ # A call set is a collection of variant calls, typically for one sample. It
+    # belongs to a variant set.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  "info": { # A map of additional call set information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
@@ -194,20 +264,35 @@
   "name": "A String", # The call set name.
   "created": "A String", # The date this call set was created in milliseconds from the epoch.
   "sampleId": "A String", # The sample ID this call set corresponds to.
-  "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+  "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+      # have exactly length one, as a call set belongs to a single variant set.
+      # This field is repeated for compatibility with the
+      # [GA4GH 0.5.1
+      # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
     "A String",
   ],
   "id": "A String", # The server-generated call set ID, unique across all call sets.
 }
 
-  updateMask: string, An optional mask specifying which fields to update. At this time, the only mutable field is name. The only acceptable value is "name". If unspecified, all mutable fields will be updated.
+  updateMask: string, An optional mask specifying which fields to update. At this time, the only
+mutable field is name. The only
+acceptable value is "name". If unspecified, all mutable fields will be
+updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+    { # A call set is a collection of variant calls, typically for one sample. It
+      # belongs to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "info": { # A map of additional call set information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
@@ -215,7 +300,11 @@
     "name": "A String", # The call set name.
     "created": "A String", # The date this call set was created in milliseconds from the epoch.
     "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+        # have exactly length one, as a call set belongs to a single variant set.
+        # This field is repeated for compatibility with the
+        # [GA4GH 0.5.1
+        # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
       "A String",
     ],
     "id": "A String", # The server-generated call set ID, unique across all call sets.
@@ -224,31 +313,53 @@
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Gets a list of call sets matching the criteria. For the definitions of call sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).
+  <pre>Gets a list of call sets matching the criteria.
+
+For the definitions of call sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The call set search request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "variantSetIds": [ # Restrict the query to call sets within the given variant sets. At least one ID must be provided.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "variantSetIds": [ # Restrict the query to call sets within the given variant sets. At least one
+        # ID must be provided.
       "A String",
     ],
-    "name": "A String", # Only return call sets for which a substring of the name matches this string.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024.
+    "name": "A String", # Only return call sets for which a substring of the name matches this
+        # string.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 1024.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The call set search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "callSets": [ # The list of matching call sets.
-      { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-        "info": { # A map of additional call set information. This must be of the form map (string key mapping to a list of string values).
+      { # A call set is a collection of variant calls, typically for one sample. It
+          # belongs to a variant set.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+        "info": { # A map of additional call set information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
@@ -256,7 +367,11 @@
         "name": "A String", # The call set name.
         "created": "A String", # The date this call set was created in milliseconds from the epoch.
         "sampleId": "A String", # The sample ID this call set corresponds to.
-        "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must have exactly length one, as a call set belongs to a single variant set. This field is repeated for compatibility with the [GA4GH 0.5.1 API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
+        "variantSetIds": [ # The IDs of the variant sets this call set belongs to. This field must
+            # have exactly length one, as a call set belongs to a single variant set.
+            # This field is repeated for compatibility with the
+            # [GA4GH 0.5.1
+            # API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
           "A String",
         ],
         "id": "A String", # The server-generated call set ID, unique across all call sets.
@@ -265,4 +380,18 @@
   }</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/genomics_v1.datasets.html b/docs/dyn/genomics_v1.datasets.html
index 319259d..d620977 100644
--- a/docs/dyn/genomics_v1.datasets.html
+++ b/docs/dyn/genomics_v1.datasets.html
@@ -76,103 +76,155 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Creates a new dataset.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(datasetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a dataset and all of its contents (all read group sets, reference sets, variant sets, call sets, annotation sets, etc.) This is reversible (up to one week after the deletion) via the datasets.undelete operation. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Deletes a dataset and all of its contents (all read group sets,</p>
 <p class="toc_element">
   <code><a href="#get">get(datasetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a dataset by ID. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Gets a dataset by ID.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the access control policy for the dataset. This is empty if the policy or resource does not exist. See Getting a Policy for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for the dataset. This is empty if the</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, projectId=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists datasets within a project. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Lists datasets within a project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(datasetId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.</p>
+<p class="firstline">Updates a dataset.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets the access control policy on the specified dataset. Replaces any existing policy. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) See Setting a Policy for more information.</p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified dataset. Replaces any</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified resource. See Testing Permissions for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#undelete">undelete(datasetId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Undeletes a dataset by restoring a dataset which was deleted via this API. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This operation is only possible for a week after the deletion occurred.</p>
+<p class="firstline">Undeletes a dataset by restoring a dataset which was deleted via this API.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Creates a new dataset.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+{ # A Dataset is a collection of genomic data.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
   "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-  "id": "A String", # The server-generated dataset ID, unique across all datasets.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   "name": "A String", # The dataset name.
+  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "id": "A String", # The server-generated dataset ID, unique across all datasets.
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A Dataset is a collection of genomic data.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(datasetId, x__xgafv=None)</code>
-  <pre>Deletes a dataset and all of its contents (all read group sets, reference sets, variant sets, call sets, annotation sets, etc.) This is reversible (up to one week after the deletion) via the datasets.undelete operation. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Deletes a dataset and all of its contents (all read group sets,
+reference sets, variant sets, call sets, annotation sets, etc.)
+This is reversible (up to one week after the deletion) via
+the
+datasets.undelete
+operation.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   datasetId: string, The ID of the dataset to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(datasetId, x__xgafv=None)</code>
-  <pre>Gets a dataset by ID. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Gets a dataset by ID.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   datasetId: string, The ID of the dataset. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A Dataset is a collection of genomic data.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Gets the access control policy for the dataset. This is empty if the policy or resource does not exist. See Getting a Policy for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Gets the access control policy for the dataset. This is empty if the
+policy or resource does not exist.
+
+See <a href="/iam/docs/managing-policies#getting_a_policy">Getting a
+Policy</a> for more information.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
-  resource: string, REQUIRED: The resource for which policy is being specified. Format is `datasets/`. (required)
+  resource: string, REQUIRED: The resource for which policy is being specified. Format is
+`datasets/<dataset ID>`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -180,45 +232,127 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
           "A String",
         ],
       },
     ],
     "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(pageSize=None, projectId=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists datasets within a project. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Lists datasets within a project.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
-  pageSize: integer, The maximum number of results to return in a single page. If unspecified, defaults to 50. The maximum value is 1024.
+  pageSize: integer, The maximum number of results to return in a single page. If unspecified,
+defaults to 50. The maximum value is 1024.
   projectId: string, Required. The Google Cloud project ID to list datasets for.
-  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.
+  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.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The dataset list response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "datasets": [ # The list of matching Datasets.
-      { # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      { # A Dataset is a collection of genomic data.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
         "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-        "id": "A String", # The server-generated dataset ID, unique across all datasets.
-        "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
         "name": "A String", # The dataset name.
+        "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+        "id": "A String", # The server-generated dataset ID, unique across all datasets.
       },
     ],
   }</pre>
@@ -240,99 +374,281 @@
 
 <div class="method">
     <code class="details" id="patch">patch(datasetId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates a dataset. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.
+  <pre>Updates a dataset.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+This method supports patch semantics.
 
 Args:
   datasetId: string, The ID of the dataset to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+{ # A Dataset is a collection of genomic data.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
   "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-  "id": "A String", # The server-generated dataset ID, unique across all datasets.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   "name": "A String", # The dataset name.
+  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "id": "A String", # The server-generated dataset ID, unique across all datasets.
 }
 
-  updateMask: string, An optional mask specifying which fields to update. At this time, the only mutable field is name. The only acceptable value is "name". If unspecified, all mutable fields will be updated.
+  updateMask: string, An optional mask specifying which fields to update. At this time, the only
+mutable field is name. The only
+acceptable value is "name". If unspecified, all mutable fields will be
+updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A Dataset is a collection of genomic data.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Sets the access control policy on the specified dataset. Replaces any existing policy. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) See Setting a Policy for more information.
+    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified dataset. Replaces any
+existing policy.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+See <a href="/iam/docs/managing-policies#setting_a_policy">Setting a
+Policy</a> for more information.
 
 Args:
-  resource: string, REQUIRED: The resource for which policy is being specified. Format is `datasets/`. (required)
+  resource: string, REQUIRED: The resource for which policy is being specified. Format is
+`datasets/<dataset ID>`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request message for `SetIamPolicy` method.
-    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
-      "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
             "A String",
           ],
         },
       ],
       "version": 42, # Version of the `Policy`. The default version is 0.
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
           "A String",
         ],
       },
     ],
     "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
-  <pre>Returns permissions that a caller has on the specified resource. See Testing Permissions for more information. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+See <a href="/iam/docs/managing-policies#testing_permissions">Testing
+Permissions</a> for more information.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
-  resource: string, REQUIRED: The resource for which policy is being specified. Format is `datasets/`. (required)
+  resource: string, REQUIRED: The resource for which policy is being specified. Format is
+`datasets/<dataset ID>`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request message for `TestIamPermissions` method.
-    "permissions": [ # REQUIRED: The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. Allowed permissions are: * `genomics.datasets.create` * `genomics.datasets.delete` * `genomics.datasets.get` * `genomics.datasets.list` * `genomics.datasets.update` * `genomics.datasets.getIamPolicy` * `genomics.datasets.setIamPolicy`
+    "permissions": [ # REQUIRED: The set of permissions to check for the 'resource'.
+        # Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+        # Allowed permissions are&#58;
+        # 
+        # * `genomics.datasets.create`
+        # * `genomics.datasets.delete`
+        # * `genomics.datasets.get`
+        # * `genomics.datasets.list`
+        # * `genomics.datasets.update`
+        # * `genomics.datasets.getIamPolicy`
+        # * `genomics.datasets.setIamPolicy`
       "A String",
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response message for `TestIamPermissions` method.
-    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
       "A String",
     ],
   }</pre>
@@ -340,7 +656,13 @@
 
 <div class="method">
     <code class="details" id="undelete">undelete(datasetId, body, x__xgafv=None)</code>
-  <pre>Undeletes a dataset by restoring a dataset which was deleted via this API. For the definitions of datasets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This operation is only possible for a week after the deletion occurred.
+  <pre>Undeletes a dataset by restoring a dataset which was deleted via this API.
+
+For the definitions of datasets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+This operation is only possible for a week after the deletion occurred.
 
 Args:
   datasetId: string, The ID of the dataset to be undeleted. (required)
@@ -351,15 +673,21 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A Dataset is a collection of genomic data. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A Dataset is a collection of genomic data.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.operations.html b/docs/dyn/genomics_v1.operations.html
index 590e9f2..6658f33 100644
--- a/docs/dyn/genomics_v1.operations.html
+++ b/docs/dyn/genomics_v1.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists operations that match the specified filter in the request.</p>
@@ -100,43 +100,116 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
 
 Args:
   name: string, The name of the operation resource. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
@@ -146,37 +219,115 @@
 
 Args:
   name: string, The name of the operation collection. (required)
-  pageSize: integer, The maximum number of results to return. If unspecified, defaults to 256. The maximum value is 2048.
-  filter: string, A string for filtering Operations. The following filter fields are supported: * projectId: Required. Corresponds to OperationMetadata.projectId. * createTime: The time this job was created, in seconds from the [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `>=` and/or `= 1432140000` * `projectId = my-project AND createTime >= 1432140000 AND createTime <= 1432150000 AND status = RUNNING` * `projectId = my-project AND labels.color = *` * `projectId = my-project AND labels.color = red`
+  pageSize: integer, The maximum number of results to return. If unspecified, defaults to
+256. The maximum value is 2048.
+  filter: string, A string for filtering Operations.
+The following filter fields are supported&#58;
+
+* projectId&#58; Required. Corresponds to
+  OperationMetadata.projectId.
+* createTime&#58; The time this job was created, in seconds from the
+  [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `>=` and/or `<=`
+  operators.
+* status&#58; Can be `RUNNING`, `SUCCESS`, `FAILURE`, or `CANCELED`. Only
+  one status may be specified.
+* labels.key where key is a label key.
+
+Examples&#58;
+
+* `projectId = my-project AND createTime >= 1432140000`
+* `projectId = my-project AND createTime >= 1432140000 AND createTime <= 1432150000 AND status = RUNNING`
+* `projectId = my-project AND labels.color = *`
+* `projectId = my-project AND labels.color = red`
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
-      { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+        "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
             {
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-        "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html b/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
index 5926a5b..badd82d 100644
--- a/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
+++ b/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
@@ -76,41 +76,80 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(readGroupSetId, targetBucketWidth=None, pageSize=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None)</a></code></p>
-<p class="firstline">Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.</p>
+<p class="firstline">Lists fixed width coverage buckets for a read group set, each of which</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(readGroupSetId, targetBucketWidth=None, pageSize=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None)</code>
-  <pre>Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.
+  <pre>Lists fixed width coverage buckets for a read group set, each of which
+correspond to a range of a reference sequence. Each bucket summarizes
+coverage information across its corresponding genomic range.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Coverage is defined as the number of reads which are aligned to a given
+base in the reference sequence. Coverage buckets are available at several
+precomputed bucket widths, enabling retrieval of various coverage 'zoom
+levels'. The caller must have READ permissions for the target read group
+set.
 
 Args:
   readGroupSetId: string, Required. The ID of the read group set over which coverage is requested. (required)
-  targetBucketWidth: string, The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as `bucketWidth` in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed `bucketWidth` is currently 2048 base pairs; this is subject to change.
-  pageSize: integer, The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.
+  targetBucketWidth: string, The desired width of each reported coverage bucket in base pairs. This
+will be rounded down to the nearest precomputed bucket width; the value
+of which is returned as `bucketWidth` in the response. Defaults
+to infinity (each bucket spans an entire reference sequence) or the length
+of the target range, if specified. The smallest precomputed
+`bucketWidth` is currently 2048 base pairs; this is subject to
+change.
+  pageSize: integer, The maximum number of results to return in a single page. If unspecified,
+defaults to 1024. The maximum value is 2048.
   x__xgafv: string, V1 error format.
-  end: string, The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified. If unset or 0, defaults to the length of the reference.
-  start: string, The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified. Defaults to 0.
-  referenceName: string, The name of the reference to query, within the reference set associated with this query. Optional.
-  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.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  end: string, The end position of the range on the reference, 0-based exclusive. If
+specified, `referenceName` must also be specified. If unset or 0, defaults
+to the length of the reference.
+  start: string, The start position of the range on the reference, 0-based inclusive. If
+specified, `referenceName` must also be specified. Defaults to 0.
+  referenceName: string, The name of the reference to query, within the reference set associated
+with this query. Optional.
+  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.
 
 Returns:
   An object of the form:
 
     {
-    "coverageBuckets": [ # The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width `bucketWidth`, unless its end is the end of the reference sequence.
-      { # A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.
-        "meanCoverage": 3.14, # The average number of reads which are aligned to each individual reference base in this bucket.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
+    "coverageBuckets": [ # The coverage buckets. The list of buckets is sparse; a bucket with 0
+        # overlapping reads is not returned. A bucket never crosses more than one
+        # reference sequence. Each bucket has width `bucketWidth`, unless
+        # its end is the end of the reference sequence.
+      { # A bucket over which read coverage has been precomputed. A bucket corresponds
+          # to a specific range of the reference sequence.
+        "meanCoverage": 3.14, # The average number of reads which are aligned to each individual
+            # reference base in this bucket.
         "range": { # A 0-based half-open genomic coordinate range for search requests. # The genomic coordinate range spanned by this bucket.
           "start": "A String", # The start position of the range on the reference, 0-based inclusive.
           "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-          "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`.
+          "referenceName": "A String", # The reference sequence name, for example `chr1`,
+              # `1`, or `chrX`.
         },
       },
     ],
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "bucketWidth": "A String", # The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or `targetBucketWidth`).
+    "bucketWidth": "A String", # The length of each coverage bucket in base pairs. Note that buckets at the
+        # end of a reference sequence may be shorter. This value is omitted if the
+        # bucket width is infinity (the default behaviour, with no range or
+        # `targetBucketWidth`).
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.readgroupsets.html b/docs/dyn/genomics_v1.readgroupsets.html
index f56b3d3..54ca9c1 100644
--- a/docs/dyn/genomics_v1.readgroupsets.html
+++ b/docs/dyn/genomics_v1.readgroupsets.html
@@ -80,129 +80,257 @@
 <p class="firstline">Returns the coveragebuckets Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#delete">delete(readGroupSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+  <code><a href="#delete">delete(readGroupSetId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a read group set.</p>
 <p class="toc_element">
-  <code><a href="#export">export(readGroupSetId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Exports a read group set to a BAM file in Google Cloud Storage. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. See ImportReadGroupSets for caveats.</p>
+  <code><a href="#export">export(readGroupSetId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Exports a read group set to a BAM file in Google Cloud Storage.</p>
 <p class="toc_element">
   <code><a href="#get">get(readGroupSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a read group set by ID. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Gets a read group set by ID.</p>
 <p class="toc_element">
   <code><a href="#import_">import_(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates read group sets by asynchronously importing the provided information. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The caller must have WRITE permissions to the dataset. ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import - Tags will be converted to strings - tag types are not preserved - Comments (`@CO`) in the input file header will not be preserved - Original header order of references (`@SQ`) will not be preserved - Any reverse stranded unmapped reads will be reverse complemented, and their qualities (also the "BQ" and "OQ" tags, if any) will be reversed - Unmapped reads will be stripped of positional information (reference name and position)</p>
+<p class="firstline">Creates read group sets by asynchronously importing the provided</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(readGroupSetId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.</p>
+  <code><a href="#patch">patch(readGroupSetId=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a read group set.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches for read group sets matching the criteria. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).</p>
+<p class="firstline">Searches for read group sets matching the criteria.</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="delete">delete(readGroupSetId, x__xgafv=None)</code>
-  <pre>Deletes a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    <code class="details" id="delete">delete(readGroupSetId=None, x__xgafv=None)</code>
+  <pre>Deletes a read group set.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
-  readGroupSetId: string, The ID of the read group set to be deleted. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
+  readGroupSetId: string, The ID of the read group set to be deleted. The caller must have WRITE
+permissions to the dataset associated with this read group set. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="export">export(readGroupSetId, body, x__xgafv=None)</code>
-  <pre>Exports a read group set to a BAM file in Google Cloud Storage. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. See ImportReadGroupSets for caveats.
+    <code class="details" id="export">export(readGroupSetId=None, body, x__xgafv=None)</code>
+  <pre>Exports a read group set to a BAM file in Google Cloud Storage.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Note that currently there may be some differences between exported BAM
+files and the original BAM file at the time of import. See
+ImportReadGroupSets
+for caveats.
 
 Args:
-  readGroupSetId: string, Required. The ID of the read group set to export. The caller must have READ access to this read group set. (required)
+  readGroupSetId: string, Required. The ID of the read group set to export. The caller must have
+READ access to this read group set. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The read group set export request.
-    "projectId": "A String", # Required. The Google Cloud project ID that owns this export. The caller must have WRITE access to this project.
-    "referenceNames": [ # The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use `*` to export only unmapped reads.
+    "exportUri": "A String", # Required. A Google Cloud Storage URI for the exported BAM file.
+        # The currently authenticated user must have write access to the new file.
+        # An error will be returned if the URI already contains data.
+    "referenceNames": [ # The reference names to export. If this is not specified, all reference
+        # sequences, including unmapped reads, are exported.
+        # Use `*` to export only unmapped reads.
       "A String",
     ],
-    "exportUri": "A String", # Required. A Google Cloud Storage URI for the exported BAM file. The currently authenticated user must have write access to the new file. An error will be returned if the URI already contains data.
+    "projectId": "A String", # Required. The Google Cloud project ID that owns this
+        # export. The caller must have WRITE access to this project.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(readGroupSetId, x__xgafv=None)</code>
-  <pre>Gets a read group set by ID. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Gets a read group set by ID.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   readGroupSetId: string, The ID of the read group set. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. * A read group set belongs to one dataset. * A read group belongs to one read group set. * A read belongs to one read group. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A read group set is a logical collection of read groups, which are
+      # collections of reads produced by a sequencer. A read group set typically
+      # models reads corresponding to one sample, sequenced one way, and aligned one
+      # way.
+      #
+      # * A read group set belongs to one dataset.
+      # * A read group belongs to one read group set.
+      # * A read belongs to one read group.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "info": { # A map of additional read group set information.
       "a_key": [
         "",
       ],
     },
-    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+    "name": "A String", # The read group set name. By default this will be initialized to the sample
+        # name of the sequenced data contained in this set.
+    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read
+        # group set.
       { # A read group is all the data that's processed the same way by the sequencer.
-        "info": { # A map of additional read group information. This must be of the form map (string key mapping to a list of string values).
+        "info": { # A map of additional read group information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
-        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-        "description": "A String", # A free-form text description of this read group.
-        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length
+            # the sequenced DNA fragment from end-to-end, not including the adapters.
+        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "programs": [ # The programs used to generate this read group. Programs are always
+            # identical for all read groups within a read group set. For this reason,
+            # only the first read group in a returned set will have this field
+            # populated.
           {
-            "commandLine": "A String", # The command line used to run this program.
             "prevProgramId": "A String", # The ID of the program run before this one.
-            "id": "A String", # The user specified locally unique ID of the program. Used along with `prevProgramId` to define an ordering between programs.
+            "commandLine": "A String", # The command line used to run this program.
             "version": "A String", # The version of the program run.
-            "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
+            "id": "A String", # The user specified locally unique ID of the program. Used along with
+                # `prevProgramId` to define an ordering between programs.
+            "name": "A String", # The display name of the program. This is typically the colloquial name of
+                # the tool used, for example 'bwa' or 'picard'.
           },
         ],
         "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
         "experiment": { # The experiment used to generate this read group.
           "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-          "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA fragments which have been prepared for sequencing from a sample. This field is important for quality control as error or bias can be introduced during sample preparation.
-          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in the SAM spec.
-          "platformUnit": "A String", # The platform unit used as part of this experiment, for example flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the @RG PU field in the SAM spec.
+          "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA
+              # fragments which have been prepared for sequencing from a sample. This
+              # field is important for quality control as error or bias can be introduced
+              # during sample preparation.
+          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to
+              # sequencing technology in the SAM spec.
+          "platformUnit": "A String", # The platform unit used as part of this experiment, for example
+              # flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+              # @RG PU field in the SAM spec.
         },
         "referenceSetId": "A String", # The reference set the reads in this read group are aligned to.
-        "id": "A String", # The server-generated read group ID, unique for all read groups. Note: This is different than the @RG ID field in the SAM spec. For that value, see name.
+        "id": "A String", # The server-generated read group ID, unique for all read groups.
+            # Note: This is different than the @RG ID field in the SAM spec. For that
+            # value, see name.
         "datasetId": "A String", # The dataset to which this read group belongs.
-        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "description": "A String", # A free-form text description of this read group.
       },
     ],
     "filename": "A String", # The filename of the original source file for this read group set, if any.
@@ -214,92 +342,217 @@
 
 <div class="method">
     <code class="details" id="import_">import_(body, x__xgafv=None)</code>
-  <pre>Creates read group sets by asynchronously importing the provided information. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The caller must have WRITE permissions to the dataset. ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import - Tags will be converted to strings - tag types are not preserved - Comments (`@CO`) in the input file header will not be preserved - Original header order of references (`@SQ`) will not be preserved - Any reverse stranded unmapped reads will be reverse complemented, and their qualities (also the "BQ" and "OQ" tags, if any) will be reversed - Unmapped reads will be stripped of positional information (reference name and position)
+  <pre>Creates read group sets by asynchronously importing the provided
+information.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+The caller must have WRITE permissions to the dataset.
+
+## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import
+
+- Tags will be converted to strings - tag types are not preserved
+- Comments (`@CO`) in the input file header will not be preserved
+- Original header order of references (`@SQ`) will not be preserved
+- Any reverse stranded unmapped reads will be reverse complemented, and
+their qualities (also the "BQ" and "OQ" tags, if any) will be reversed
+- Unmapped reads will be stripped of positional information (reference name
+and position)
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The read group set import request.
-    "sourceUris": [ # A list of URIs pointing at [BAM files](https://samtools.github.io/hts-specs/SAMv1.pdf) in Google Cloud Storage.
+    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read
+        # group sets.
+    "sourceUris": [ # A list of URIs pointing at [BAM
+        # files](https://samtools.github.io/hts-specs/SAMv1.pdf)
+        # in Google Cloud Storage.
+        # Those URIs can include wildcards (*), but do not add or remove
+        # matching files before import has completed.
+        # 
+        # Note that Google Cloud Storage object listing is only eventually
+        # consistent: files added may be not be immediately visible to
+        # everyone. Thus, if using a wildcard it is preferable not to start
+        # the import immediately after the files are created.
       "A String",
     ],
-    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if any. The reference names of this reference set must be a superset of those found in the imported file headers. If no reference set id is provided, a best effort is made to associate with a matching reference set.
-    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read group sets.
-    "datasetId": "A String", # Required. The ID of the dataset these read group sets will belong to. The caller must have WRITE permissions to this dataset.
+    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if
+        # any. The reference names of this reference set must be a superset of those
+        # found in the imported file headers. If no reference set id is provided, a
+        # best effort is made to associate with a matching reference set.
+    "datasetId": "A String", # Required. The ID of the dataset these read group sets will belong to. The
+        # caller must have WRITE permissions to this dataset.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(readGroupSetId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates a read group set. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics.
+    <code class="details" id="patch">patch(readGroupSetId=None, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a read group set.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+This method supports patch semantics.
 
 Args:
-  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
+  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE
+permissions to the dataset associated with this read group set. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. * A read group set belongs to one dataset. * A read group belongs to one read group set. * A read belongs to one read group. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+{ # A read group set is a logical collection of read groups, which are
+    # collections of reads produced by a sequencer. A read group set typically
+    # models reads corresponding to one sample, sequenced one way, and aligned one
+    # way.
+    # 
+    # * A read group set belongs to one dataset.
+    # * A read group belongs to one read group set.
+    # * A read belongs to one read group.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
   "info": { # A map of additional read group set information.
     "a_key": [
       "",
     ],
   },
-  "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+  "name": "A String", # The read group set name. By default this will be initialized to the sample
+      # name of the sequenced data contained in this set.
+  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read
+      # group set.
     { # A read group is all the data that's processed the same way by the sequencer.
-      "info": { # A map of additional read group information. This must be of the form map (string key mapping to a list of string values).
+      "info": { # A map of additional read group information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
         "a_key": [
           "",
         ],
       },
-      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-      "description": "A String", # A free-form text description of this read group.
-      "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length
+          # the sequenced DNA fragment from end-to-end, not including the adapters.
+      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+      "programs": [ # The programs used to generate this read group. Programs are always
+          # identical for all read groups within a read group set. For this reason,
+          # only the first read group in a returned set will have this field
+          # populated.
         {
-          "commandLine": "A String", # The command line used to run this program.
           "prevProgramId": "A String", # The ID of the program run before this one.
-          "id": "A String", # The user specified locally unique ID of the program. Used along with `prevProgramId` to define an ordering between programs.
+          "commandLine": "A String", # The command line used to run this program.
           "version": "A String", # The version of the program run.
-          "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
+          "id": "A String", # The user specified locally unique ID of the program. Used along with
+              # `prevProgramId` to define an ordering between programs.
+          "name": "A String", # The display name of the program. This is typically the colloquial name of
+              # the tool used, for example 'bwa' or 'picard'.
         },
       ],
       "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
       "experiment": { # The experiment used to generate this read group.
         "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-        "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA fragments which have been prepared for sequencing from a sample. This field is important for quality control as error or bias can be introduced during sample preparation.
-        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in the SAM spec.
-        "platformUnit": "A String", # The platform unit used as part of this experiment, for example flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the @RG PU field in the SAM spec.
+        "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA
+            # fragments which have been prepared for sequencing from a sample. This
+            # field is important for quality control as error or bias can be introduced
+            # during sample preparation.
+        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to
+            # sequencing technology in the SAM spec.
+        "platformUnit": "A String", # The platform unit used as part of this experiment, for example
+            # flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+            # @RG PU field in the SAM spec.
       },
       "referenceSetId": "A String", # The reference set the reads in this read group are aligned to.
-      "id": "A String", # The server-generated read group ID, unique for all read groups. Note: This is different than the @RG ID field in the SAM spec. For that value, see name.
+      "id": "A String", # The server-generated read group ID, unique for all read groups.
+          # Note: This is different than the @RG ID field in the SAM spec. For that
+          # value, see name.
       "datasetId": "A String", # The dataset to which this read group belongs.
-      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+      "description": "A String", # A free-form text description of this read group.
     },
   ],
   "filename": "A String", # The filename of the original source file for this read group set, if any.
@@ -308,48 +561,84 @@
   "datasetId": "A String", # The dataset to which this read group set belongs.
 }
 
-  updateMask: string, An optional mask specifying which fields to update. Supported fields: * name. * referenceSetId. Leaving `updateMask` unset is equivalent to specifying all mutable fields.
+  updateMask: string, An optional mask specifying which fields to update. Supported fields:
+
+* name.
+* referenceSetId.
+
+Leaving `updateMask` unset is equivalent to specifying all mutable
+fields.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. * A read group set belongs to one dataset. * A read group belongs to one read group set. * A read belongs to one read group. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A read group set is a logical collection of read groups, which are
+      # collections of reads produced by a sequencer. A read group set typically
+      # models reads corresponding to one sample, sequenced one way, and aligned one
+      # way.
+      #
+      # * A read group set belongs to one dataset.
+      # * A read group belongs to one read group set.
+      # * A read belongs to one read group.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "info": { # A map of additional read group set information.
       "a_key": [
         "",
       ],
     },
-    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+    "name": "A String", # The read group set name. By default this will be initialized to the sample
+        # name of the sequenced data contained in this set.
+    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read
+        # group set.
       { # A read group is all the data that's processed the same way by the sequencer.
-        "info": { # A map of additional read group information. This must be of the form map (string key mapping to a list of string values).
+        "info": { # A map of additional read group information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
-        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-        "description": "A String", # A free-form text description of this read group.
-        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length
+            # the sequenced DNA fragment from end-to-end, not including the adapters.
+        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "programs": [ # The programs used to generate this read group. Programs are always
+            # identical for all read groups within a read group set. For this reason,
+            # only the first read group in a returned set will have this field
+            # populated.
           {
-            "commandLine": "A String", # The command line used to run this program.
             "prevProgramId": "A String", # The ID of the program run before this one.
-            "id": "A String", # The user specified locally unique ID of the program. Used along with `prevProgramId` to define an ordering between programs.
+            "commandLine": "A String", # The command line used to run this program.
             "version": "A String", # The version of the program run.
-            "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
+            "id": "A String", # The user specified locally unique ID of the program. Used along with
+                # `prevProgramId` to define an ordering between programs.
+            "name": "A String", # The display name of the program. This is typically the colloquial name of
+                # the tool used, for example 'bwa' or 'picard'.
           },
         ],
         "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
         "experiment": { # The experiment used to generate this read group.
           "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-          "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA fragments which have been prepared for sequencing from a sample. This field is important for quality control as error or bias can be introduced during sample preparation.
-          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in the SAM spec.
-          "platformUnit": "A String", # The platform unit used as part of this experiment, for example flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the @RG PU field in the SAM spec.
+          "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA
+              # fragments which have been prepared for sequencing from a sample. This
+              # field is important for quality control as error or bias can be introduced
+              # during sample preparation.
+          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to
+              # sequencing technology in the SAM spec.
+          "platformUnit": "A String", # The platform unit used as part of this experiment, for example
+              # flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+              # @RG PU field in the SAM spec.
         },
         "referenceSetId": "A String", # The reference set the reads in this read group are aligned to.
-        "id": "A String", # The server-generated read group ID, unique for all read groups. Note: This is different than the @RG ID field in the SAM spec. For that value, see name.
+        "id": "A String", # The server-generated read group ID, unique for all read groups.
+            # Note: This is different than the @RG ID field in the SAM spec. For that
+            # value, see name.
         "datasetId": "A String", # The dataset to which this read group belongs.
-        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "description": "A String", # A free-form text description of this read group.
       },
     ],
     "filename": "A String", # The filename of the original source file for this read group set, if any.
@@ -361,65 +650,109 @@
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Searches for read group sets matching the criteria. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).
+  <pre>Searches for read group sets matching the criteria.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The read group set search request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "datasetIds": [ # Restricts this query to read group sets within the given datasets. At least one ID must be provided.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "datasetIds": [ # Restricts this query to read group sets within the given datasets. At least
+        # one ID must be provided.
       "A String",
     ],
-    "name": "A String", # Only return read group sets for which a substring of the name matches this string.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 1024.
+    "name": "A String", # Only return read group sets for which a substring of the name matches this
+        # string.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 256. The maximum value is 1024.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The read group set search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "readGroupSets": [ # The list of matching read group sets.
-      { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. * A read group set belongs to one dataset. * A read group belongs to one read group set. * A read belongs to one read group. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      { # A read group set is a logical collection of read groups, which are
+          # collections of reads produced by a sequencer. A read group set typically
+          # models reads corresponding to one sample, sequenced one way, and aligned one
+          # way.
+          #
+          # * A read group set belongs to one dataset.
+          # * A read group belongs to one read group set.
+          # * A read belongs to one read group.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
         "info": { # A map of additional read group set information.
           "a_key": [
             "",
           ],
         },
-        "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-        "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+        "name": "A String", # The read group set name. By default this will be initialized to the sample
+            # name of the sequenced data contained in this set.
+        "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read
+            # group set.
           { # A read group is all the data that's processed the same way by the sequencer.
-            "info": { # A map of additional read group information. This must be of the form map (string key mapping to a list of string values).
+            "info": { # A map of additional read group information. This must be of the form
+                # map<string, string[]> (string key mapping to a list of string values).
               "a_key": [
                 "",
               ],
             },
-            "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-            "description": "A String", # A free-form text description of this read group.
-            "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+            "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length
+                # the sequenced DNA fragment from end-to-end, not including the adapters.
+            "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+            "programs": [ # The programs used to generate this read group. Programs are always
+                # identical for all read groups within a read group set. For this reason,
+                # only the first read group in a returned set will have this field
+                # populated.
               {
-                "commandLine": "A String", # The command line used to run this program.
                 "prevProgramId": "A String", # The ID of the program run before this one.
-                "id": "A String", # The user specified locally unique ID of the program. Used along with `prevProgramId` to define an ordering between programs.
+                "commandLine": "A String", # The command line used to run this program.
                 "version": "A String", # The version of the program run.
-                "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
+                "id": "A String", # The user specified locally unique ID of the program. Used along with
+                    # `prevProgramId` to define an ordering between programs.
+                "name": "A String", # The display name of the program. This is typically the colloquial name of
+                    # the tool used, for example 'bwa' or 'picard'.
               },
             ],
             "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
             "experiment": { # The experiment used to generate this read group.
               "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-              "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA fragments which have been prepared for sequencing from a sample. This field is important for quality control as error or bias can be introduced during sample preparation.
-              "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in the SAM spec.
-              "platformUnit": "A String", # The platform unit used as part of this experiment, for example flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the @RG PU field in the SAM spec.
+              "libraryId": "A String", # A client-supplied library identifier; a library is a collection of DNA
+                  # fragments which have been prepared for sequencing from a sample. This
+                  # field is important for quality control as error or bias can be introduced
+                  # during sample preparation.
+              "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to
+                  # sequencing technology in the SAM spec.
+              "platformUnit": "A String", # The platform unit used as part of this experiment, for example
+                  # flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+                  # @RG PU field in the SAM spec.
             },
             "referenceSetId": "A String", # The reference set the reads in this read group are aligned to.
-            "id": "A String", # The server-generated read group ID, unique for all read groups. Note: This is different than the @RG ID field in the SAM spec. For that value, see name.
+            "id": "A String", # The server-generated read group ID, unique for all read groups.
+                # Note: This is different than the @RG ID field in the SAM spec. For that
+                # value, see name.
             "datasetId": "A String", # The dataset to which this read group belongs.
-            "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+            "description": "A String", # A free-form text description of this read group.
           },
         ],
         "filename": "A String", # The filename of the original source file for this read group set, if any.
@@ -431,4 +764,18 @@
   }</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/genomics_v1.reads.html b/docs/dyn/genomics_v1.reads.html
index 024e859..8a9e671 100644
--- a/docs/dyn/genomics_v1.reads.html
+++ b/docs/dyn/genomics_v1.reads.html
@@ -76,158 +76,280 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a list of reads for one or more read group sets. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned. If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads. All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (by reference sequence, then position). Reads with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield reads in the same order across their respective streams of paginated responses. Implements [GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).</p>
+<p class="firstline">Gets a list of reads for one or more read group sets.</p>
 <p class="toc_element">
-  <code><a href="#stream">stream(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a stream of all the reads matching the search request, ordered by reference name, position, and ID.</p>
+  <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="search">search(body, x__xgafv=None)</code>
-  <pre>Gets a list of reads for one or more read group sets. For the definitions of read group sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned. If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads. All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (by reference sequence, then position). Reads with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield reads in the same order across their respective streams of paginated responses. Implements [GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).
+  <pre>Gets a list of reads for one or more read group sets.
+
+For the definitions of read group sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Reads search operates over a genomic coordinate space of reference sequence
+& position defined over the reference sequences to which the requested
+read group sets are aligned.
+
+If a target positional range is specified, search returns all reads whose
+alignment to the reference genome overlap the range. A query which
+specifies only read group set IDs yields all reads in those read group
+sets, including unmapped reads.
+
+All reads returned (including reads on subsequent pages) are ordered by
+genomic coordinate (by reference sequence, then position). Reads with
+equivalent genomic coordinates are returned in an unspecified order. This
+order is consistent, such that two queries for the same content (regardless
+of page size) yield reads in the same order across their respective streams
+of paginated responses.
+
+Implements
+[GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The read search request.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified.
-    "readGroupIds": [ # The IDs of the read groups within which to search for reads. All specified read groups must belong to the same read group sets. Must specify one of `readGroupSetIds` or `readGroupIds`.
+    "readGroupSetIds": [ # The IDs of the read groups sets within which to search for reads. All
+        # specified read group sets must be aligned against a common set of reference
+        # sequences; this defines the genomic coordinates for the query. Must specify
+        # one of `readGroupSetIds` or `readGroupIds`.
       "A String",
     ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified.
-    "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to `*`, only unmapped reads are returned. If unspecified, all reads (mapped and unmapped) are returned.
-    "readGroupSetIds": [ # The IDs of the read groups sets within which to search for reads. All specified read group sets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query. Must specify one of `readGroupSetIds` or `readGroupIds`.
+    "readGroupIds": [ # The IDs of the read groups within which to search for reads. All specified
+        # read groups must belong to the same read group sets. Must specify one of
+        # `readGroupSetIds` or `readGroupIds`.
       "A String",
     ],
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 256. The maximum value is 2048.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
+        # specified, `referenceName` must also be specified.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to
+        # `*`, only unmapped reads are returned. If unspecified, all reads (mapped
+        # and unmapped) are returned.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If
+        # specified, `referenceName` must also be specified.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The read search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "alignments": [ # The list of matching alignments sorted by mapped genomic coordinate, if any, ascending in position within the same reference. Unmapped reads, which have no position, are returned contiguously and are sorted in ascending lexicographic order by fragment name.
-      { # A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) ### Reverse-stranded reads Mapped reads (reads having a non-null `alignment`) can be aligned to either the forward or the reverse strand of their associated reference. Strandedness of a mapped read is encoded by `alignment.position.reverseStrand`. If we consider the reference to be a forward-stranded coordinate space of `[0, reference.length)` with `0` as the left-most position and `reference.length` as the right-most position, reads are always aligned left to right. That is, `alignment.position.position` always refers to the left-most reference coordinate and `alignment.cigar` describes the alignment of this read to the reference from left to right. All per-base fields such as `alignedSequence` and `alignedQuality` share this same left-to-right orientation; this is true of reads which are aligned to either strand. For reverse-stranded reads, this means that `alignedSequence` is the reverse complement of the bases that were originally reported by the sequencing machine. ### Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this: out = "" offset = 0 for c in read.alignment.cigar { switch c.operation { case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case "CLIP_SOFT", "INSERT": offset += c.operationLength break case "PAD": out += repeat("*", c.operationLength) break case "DELETE": out += repeat("-", c.operationLength) break case "SKIP": out += repeat(" ", c.operationLength) break case "CLIP_HARD": break } } return out ### Converting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the `cigar` field. Note that this is a lossy conversion (`cigar.referenceSequence` is lost). cigarMap = { "ALIGNMENT_MATCH": "M", "INSERT": "I", "DELETE": "D", "SKIP": "N", "CLIP_SOFT": "S", "CLIP_HARD": "H", "PAD": "P", "SEQUENCE_MATCH": "=", "SEQUENCE_MISMATCH": "X", } cigarStr = "" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr
-        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
+    "alignments": [ # The list of matching alignments sorted by mapped genomic coordinate,
+        # if any, ascending in position within the same reference. Unmapped reads,
+        # which have no position, are returned contiguously and are sorted in
+        # ascending lexicographic order by fragment name.
+      { # A read alignment describes a linear alignment of a string of DNA to a
+          # reference sequence, in addition to metadata
+          # about the fragment (the molecule of DNA sequenced) and the read (the bases
+          # which were read by the sequencer). A read is equivalent to a line in a SAM
+          # file. A read belongs to exactly one read group and exactly one
+          # read group set.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+          #
+          # ### Reverse-stranded reads
+          #
+          # Mapped reads (reads having a non-null `alignment`) can be aligned to either
+          # the forward or the reverse strand of their associated reference. Strandedness
+          # of a mapped read is encoded by `alignment.position.reverseStrand`.
+          #
+          # If we consider the reference to be a forward-stranded coordinate space of
+          # `[0, reference.length)` with `0` as the left-most position and
+          # `reference.length` as the right-most position, reads are always aligned left
+          # to right. That is, `alignment.position.position` always refers to the
+          # left-most reference coordinate and `alignment.cigar` describes the alignment
+          # of this read to the reference from left to right. All per-base fields such as
+          # `alignedSequence` and `alignedQuality` share this same left-to-right
+          # orientation; this is true of reads which are aligned to either strand. For
+          # reverse-stranded reads, this means that `alignedSequence` is the reverse
+          # complement of the bases that were originally reported by the sequencing
+          # machine.
+          #
+          # ### Generating a reference-aligned sequence string
+          #
+          # When interacting with mapped reads, it's often useful to produce a string
+          # representing the local alignment of the read to reference. The following
+          # pseudocode demonstrates one way of doing this:
+          #
+          #     out = ""
+          #     offset = 0
+          #     for c in read.alignment.cigar {
+          #       switch c.operation {
+          #       case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH":
+          #         out += read.alignedSequence[offset:offset+c.operationLength]
+          #         offset += c.operationLength
+          #         break
+          #       case "CLIP_SOFT", "INSERT":
+          #         offset += c.operationLength
+          #         break
+          #       case "PAD":
+          #         out += repeat("*", c.operationLength)
+          #         break
+          #       case "DELETE":
+          #         out += repeat("-", c.operationLength)
+          #         break
+          #       case "SKIP":
+          #         out += repeat(" ", c.operationLength)
+          #         break
+          #       case "CLIP_HARD":
+          #         break
+          #       }
+          #     }
+          #     return out
+          #
+          # ### Converting to SAM's CIGAR string
+          #
+          # The following pseudocode generates a SAM CIGAR string from the
+          # `cigar` field. Note that this is a lossy conversion
+          # (`cigar.referenceSequence` is lost).
+          #
+          #     cigarMap = {
+          #       "ALIGNMENT_MATCH": "M",
+          #       "INSERT": "I",
+          #       "DELETE": "D",
+          #       "SKIP": "N",
+          #       "CLIP_SOFT": "S",
+          #       "CLIP_HARD": "H",
+          #       "PAD": "P",
+          #       "SEQUENCE_MATCH": "=",
+          #       "SEQUENCE_MISMATCH": "X",
+          #     }
+          #     cigarStr = ""
+          #     for c in read.alignment.cigar {
+          #       cigarStr += c.operationLength + cigarMap[c.operation]
+          #     }
+          #     return cigarStr
+        "info": { # A map of additional read alignment information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
-        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The mapping of the primary alignment of the `(readNumber+1)%numberReads` read in the fragment. It replaces mate position and mate strand in SAM.
-          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
-          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-        },
-        "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to exactly one read group set.
-        "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
-        "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality controls (SAM flag 0x200).
-        "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
-        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.
-        "properPlacement": True or False, # The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2).
-        "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly one read group. This is a server-generated ID which is distinct from SAM's RG tag (for that value, see ReadGroup.name).
-        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The `alignedSequence` and `alignedQuality` fields in the alignment record will only represent the bases for its respective linear alignment.
-        "alignedQuality": [ # The quality of the read sequence contained in this alignment record (equivalent to QUAL in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
+        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800.
+            # Supplementary alignments are used in the representation of a chimeric
+            # alignment. In a chimeric alignment, a read is split into multiple
+            # linear alignments that map to different reference contigs. The first
+            # linear alignment in the read will be designated as the representative
+            # alignment; the remaining linear alignments will be designated as
+            # supplementary alignments. These alignments may have different mapping
+            # quality scores. In each linear alignment in a chimeric alignment, the read
+            # will be hard clipped. The `alignedSequence` and
+            # `alignedQuality` fields in the alignment record will only
+            # represent the bases for its respective linear alignment.
+        "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to
+            # exactly one read group set.
+        "alignedQuality": [ # The quality of the read sequence contained in this alignment record
+            # (equivalent to QUAL in SAM).
+            # `alignedSequence` and `alignedQuality` may be shorter than the full read
+            # sequence and quality. This will occur if the alignment is part of a
+            # chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR
+            # for this read will begin/end with a hard clip operator that will indicate
+            # the length of the excised sequence.
           42,
         ],
+        "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality
+            # controls (SAM flag 0x200).
+        "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
+        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This
+            # field replaces SAM flag 0x40 and 0x80.
+        "properPlacement": True or False, # The orientation and the distance between reads from the fragment are
+            # consistent with the sequencing protocol (SAM flag 0x2).
+        "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly
+            # one read group. This is a server-generated ID which is distinct from SAM's
+            # RG tag (for that value, see
+            # ReadGroup.name).
+        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some # The mapping of the primary alignment of the
+            # `(readNumber+1)%numberReads` read in the fragment. It replaces
+            # mate position and mate strand in SAM.
+            # already known reference. For now, represents a genomic position as a
+            # reference name, a base number on that reference (0-based), and a
+            # determination of forward or reverse strand.
+          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
+          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
+              # strand.
+          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
+        },
+        "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
         "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
-        "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record, **without CIGAR operations applied** (equivalent to SEQ in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
-        "id": "A String", # The server-generated read ID, unique across all reads. This is different from the `fragmentName`.
-        "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference. # The linear alignment for this alignment record. This field is null for unmapped reads.
-          "position": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The position of this alignment.
+        "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record,
+            # **without CIGAR operations applied** (equivalent to SEQ in SAM).
+            # `alignedSequence` and `alignedQuality` may be
+            # shorter than the full read sequence and quality. This will occur if the
+            # alignment is part of a chimeric alignment, or if the read was trimmed. When
+            # this occurs, the CIGAR for this read will begin/end with a hard clip
+            # operator that will indicate the length of the excised sequence.
+        "id": "A String", # The server-generated read ID, unique across all reads. This is different
+            # from the `fragmentName`.
+        "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the # The linear alignment for this alignment record. This field is null for
+            # unmapped reads.
+            # mapped position and local alignment of the read to the reference.
+          "position": { # An abstraction for referring to a genomic position, in relation to some # The position of this alignment.
+              # already known reference. For now, represents a genomic position as a
+              # reference name, a base number on that reference (0-based), and a
+              # determination of forward or reverse strand.
             "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-            "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
+            "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
+                # strand.
             "referenceName": "A String", # The name of the reference in whatever reference set is being used.
           },
-          "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.
+          "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels,
+              # etc) against the reference.
             { # A single CIGAR operation.
-              "referenceSequence": "A String", # `referenceSequence` is only used at mismatches (`SEQUENCE_MISMATCH`) and deletions (`DELETE`). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset.
+              "referenceSequence": "A String", # `referenceSequence` is only used at mismatches
+                  # (`SEQUENCE_MISMATCH`) and deletions (`DELETE`).
+                  # Filling this field replaces SAM's MD tag. If the relevant information is
+                  # not available, this field is unset.
               "operation": "A String",
               "operationLength": "A String", # The number of genomic bases that the operation runs for. Required.
             },
           ],
-          "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations. Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to the nearest integer.
+          "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely
+              # the read maps to this position as opposed to other locations.
+              #
+              # Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to
+              # the nearest integer.
         },
-        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both `secondaryAlignment` and `supplementaryAlignment` are false.
+        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100.
+            # A secondary alignment represents an alternative to the primary alignment
+            # for this read. Aligners may return secondary alignments if a read can map
+            # ambiguously to multiple coordinates in the genome. By convention, each read
+            # has one and only one alignment where both `secondaryAlignment`
+            # and `supplementaryAlignment` are false.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="stream">stream(body, x__xgafv=None)</code>
-  <pre>Returns a stream of all the reads matching the search request, ordered by reference name, position, and ID.
+    <code class="details" id="search_next">search_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
 
 Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The stream reads request.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, `referenceName` must also be specified.
-    "totalShards": 42, # Specifying `totalShards` causes a disjoint subset of the normal response payload to be returned for each query with a unique `shard` parameter specified. A best effort is made to yield equally sized shards. Sharding can be used to distribute processing amongst workers, where each worker is assigned a unique `shard` number and all workers specify the same `totalShards` number. The union of reads returned for all sharded queries `[0, totalShards)` is equal to those returned by a single unsharded query. Queries for different values of `totalShards` with common divisors will share shard boundaries. For example, streaming `shard` 2 of 5 `totalShards` yields the same results as streaming `shard`s 4 and 5 of 10 `totalShards`. This property can be leveraged for adaptive retries.
-    "readGroupSetId": "A String", # The ID of the read group set from which to stream reads.
-    "projectId": "A String", # The Google Cloud project ID which will be billed for this access. The caller must have WRITE access to this project. Required.
-    "shard": 42, # Restricts results to a shard containing approximately `1/totalShards` of the normal response payload for this query. Results from a sharded request are disjoint from those returned by all queries which differ only in their shard parameter. A shard may yield 0 results; this is especially likely for large values of `totalShards`. Valid values are `[0, totalShards)`.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, `referenceName` must also be specified.
-    "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to *, only unmapped reads are returned.
-  }
-
-  x__xgafv: string, V1 error format.
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
 
 Returns:
-  An object of the form:
-
-    {
-    "alignments": [
-      { # A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) ### Reverse-stranded reads Mapped reads (reads having a non-null `alignment`) can be aligned to either the forward or the reverse strand of their associated reference. Strandedness of a mapped read is encoded by `alignment.position.reverseStrand`. If we consider the reference to be a forward-stranded coordinate space of `[0, reference.length)` with `0` as the left-most position and `reference.length` as the right-most position, reads are always aligned left to right. That is, `alignment.position.position` always refers to the left-most reference coordinate and `alignment.cigar` describes the alignment of this read to the reference from left to right. All per-base fields such as `alignedSequence` and `alignedQuality` share this same left-to-right orientation; this is true of reads which are aligned to either strand. For reverse-stranded reads, this means that `alignedSequence` is the reverse complement of the bases that were originally reported by the sequencing machine. ### Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this: out = "" offset = 0 for c in read.alignment.cigar { switch c.operation { case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case "CLIP_SOFT", "INSERT": offset += c.operationLength break case "PAD": out += repeat("*", c.operationLength) break case "DELETE": out += repeat("-", c.operationLength) break case "SKIP": out += repeat(" ", c.operationLength) break case "CLIP_HARD": break } } return out ### Converting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the `cigar` field. Note that this is a lossy conversion (`cigar.referenceSequence` is lost). cigarMap = { "ALIGNMENT_MATCH": "M", "INSERT": "I", "DELETE": "D", "SKIP": "N", "CLIP_SOFT": "S", "CLIP_HARD": "H", "PAD": "P", "SEQUENCE_MATCH": "=", "SEQUENCE_MISMATCH": "X", } cigarStr = "" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr
-        "info": { # A map of additional read alignment information. This must be of the form map (string key mapping to a list of string values).
-          "a_key": [
-            "",
-          ],
-        },
-        "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
-        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The mapping of the primary alignment of the `(readNumber+1)%numberReads` read in the fragment. It replaces mate position and mate strand in SAM.
-          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
-          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-        },
-        "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to exactly one read group set.
-        "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
-        "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality controls (SAM flag 0x200).
-        "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
-        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.
-        "properPlacement": True or False, # The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2).
-        "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly one read group. This is a server-generated ID which is distinct from SAM's RG tag (for that value, see ReadGroup.name).
-        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The `alignedSequence` and `alignedQuality` fields in the alignment record will only represent the bases for its respective linear alignment.
-        "alignedQuality": [ # The quality of the read sequence contained in this alignment record (equivalent to QUAL in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
-          42,
-        ],
-        "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
-        "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record, **without CIGAR operations applied** (equivalent to SEQ in SAM). `alignedSequence` and `alignedQuality` may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
-        "id": "A String", # The server-generated read ID, unique across all reads. This is different from the `fragmentName`.
-        "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference. # The linear alignment for this alignment record. This field is null for unmapped reads.
-          "position": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The position of this alignment.
-            "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-            "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
-            "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-          },
-          "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.
-            { # A single CIGAR operation.
-              "referenceSequence": "A String", # `referenceSequence` is only used at mismatches (`SEQUENCE_MISMATCH`) and deletions (`DELETE`). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset.
-              "operation": "A String",
-              "operationLength": "A String", # The number of genomic bases that the operation runs for. Required.
-            },
-          ],
-          "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations. Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to the nearest integer.
-        },
-        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both `secondaryAlignment` and `supplementaryAlignment` are false.
-      },
-    ],
-  }</pre>
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1.references.bases.html b/docs/dyn/genomics_v1.references.bases.html
index 4e5e206..18fb4be 100644
--- a/docs/dyn/genomics_v1.references.bases.html
+++ b/docs/dyn/genomics_v1.references.bases.html
@@ -75,31 +75,50 @@
 <h1><a href="genomics_v1.html">Genomics API</a> . <a href="genomics_v1.references.html">references</a> . <a href="genomics_v1.references.bases.html">bases</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(referenceId, end=None, pageSize=None, x__xgafv=None, pageToken=None, start=None)</a></code></p>
-<p class="firstline">Lists the bases in a reference, optionally restricted to a range. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).</p>
+  <code><a href="#list">list(referenceId, end=None, pageSize=None, start=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the bases in a reference, optionally restricted to a range.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(referenceId, end=None, pageSize=None, x__xgafv=None, pageToken=None, start=None)</code>
-  <pre>Lists the bases in a reference, optionally restricted to a range. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).
+    <code class="details" id="list">list(referenceId, end=None, pageSize=None, start=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the bases in a reference, optionally restricted to a range.
+
+For the definitions of references and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.getReferenceBases](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L221).
 
 Args:
   referenceId: string, The ID of the reference. (required)
-  end: string, The end position (0-based, exclusive) of this query. Defaults to the length of this reference.
-  pageSize: integer, The maximum number of bases to return in a single page. If unspecified, defaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base pairs).
-  x__xgafv: string, V1 error format.
-  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.
+  end: string, The end position (0-based, exclusive) of this query. Defaults to the length
+of this reference.
+  pageSize: integer, The maximum number of bases to return in a single page. If unspecified,
+defaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base
+pairs).
   start: string, The start position (0-based) of this query. Defaults to 0.
+  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.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
+    "offset": "A String", # The offset position (0-based) of the given `sequence` from the
+        # start of this `Reference`. This value will differ for each page
+        # in a paginated request.
     "sequence": "A String", # A substring of the bases that make up this reference.
-    "offset": "A String", # The offset position (0-based) of the given `sequence` from the start of this `Reference`. This value will differ for each page in a paginated request.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.references.html b/docs/dyn/genomics_v1.references.html
index eb91ff8..0644b04 100644
--- a/docs/dyn/genomics_v1.references.html
+++ b/docs/dyn/genomics_v1.references.html
@@ -81,76 +81,142 @@
 
 <p class="toc_element">
   <code><a href="#get">get(referenceId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a reference. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).</p>
+<p class="firstline">Gets a reference.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches for references which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).</p>
+<p class="firstline">Searches for references which match the given criteria.</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(referenceId, x__xgafv=None)</code>
-  <pre>Gets a reference. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).
+  <pre>Gets a reference.
+
+For the definitions of references and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.getReference](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L158).
 
 Args:
   referenceId: string, The ID of the reference. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A reference is a canonical assembled DNA sequence, intended to act as a
+      # reference coordinate space for other genomic annotations. A single reference
+      # might represent the human chromosome 1 or mitochandrial DNA, for instance. A
+      # reference belongs to one or more reference sets.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "name": "A String", # The name of this reference, for example `22`.
-    "sourceUri": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA format file.
-    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `GCF_000001405.26`.
+    "sourceUri": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA
+        # format file.
+    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
+        # with a version number, for example `GCF_000001405.26`.
       "A String",
     ],
     "length": "A String", # The length of this reference's sequence.
-    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
+    "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this
+        # is equivalent to SQ:M5 in SAM). This value is represented in lower case
+        # hexadecimal format.
     "id": "A String", # The server-generated reference ID, unique across all references.
-    "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
+    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Searches for references which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).
+  <pre>Searches for references which match the given criteria.
+
+For the definitions of references and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchReferences](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L146).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 {
-    "md5checksums": [ # If present, return references for which the md5checksum matches exactly.
+    "md5checksums": [ # If present, return references for which the
+        # md5checksum matches exactly.
       "A String",
     ],
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
     "referenceSetId": "A String", # If present, return only references which belong to this reference set.
-    "accessions": [ # If present, return references for which a prefix of any of sourceAccessions match any of these strings. Accession numbers typically have a main number and a version, for example `GCF_000001405.26`.
+    "accessions": [ # If present, return references for which a prefix of any of
+        # sourceAccessions match
+        # any of these strings. Accession numbers typically have a main number and a
+        # version, for example `GCF_000001405.26`.
       "A String",
     ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 1024. The maximum value is 4096.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "references": [ # The matching references.
-      { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      { # A reference is a canonical assembled DNA sequence, intended to act as a
+          # reference coordinate space for other genomic annotations. A single reference
+          # might represent the human chromosome 1 or mitochandrial DNA, for instance. A
+          # reference belongs to one or more reference sets.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
         "name": "A String", # The name of this reference, for example `22`.
-        "sourceUri": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA format file.
-        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `GCF_000001405.26`.
+        "sourceUri": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA
+            # format file.
+        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
+            # with a version number, for example `GCF_000001405.26`.
           "A String",
         ],
         "length": "A String", # The length of this reference's sequence.
-        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
+        "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this
+            # is equivalent to SQ:M5 in SAM). This value is represented in lower case
+            # hexadecimal format.
         "id": "A String", # The server-generated reference ID, unique across all references.
-        "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
+        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
       },
     ],
   }</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/genomics_v1.referencesets.html b/docs/dyn/genomics_v1.referencesets.html
index c418ddc..e069794 100644
--- a/docs/dyn/genomics_v1.referencesets.html
+++ b/docs/dyn/genomics_v1.referencesets.html
@@ -76,82 +76,163 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(referenceSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a reference set. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).</p>
+<p class="firstline">Gets a reference set.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches for reference sets which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)</p>
+<p class="firstline">Searches for reference sets which match the given criteria.</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(referenceSetId, x__xgafv=None)</code>
-  <pre>Gets a reference set. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).
+  <pre>Gets a reference set.
+
+For the definitions of references and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.getReferenceSet](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L83).
 
 Args:
   referenceSetId: string, The ID of the reference set. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A reference set is a set of references which typically comprise a reference assembly for a species, such as `GRCh38` which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A reference set is a set of references which typically comprise a reference
+      # assembly for a species, such as `GRCh38` which is representative
+      # of the human genome. A reference set defines a common coordinate space for
+      # comparing reference-aligned experimental data. A reference set contains 1 or
+      # more references.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "description": "A String", # Free text description of this reference set.
     "sourceUri": "A String", # The URI from which the references were obtained.
-    "referenceIds": [ # The IDs of the reference objects that are part of this set. `Reference.md5checksum` must be unique within this set.
+    "referenceIds": [ # The IDs of the reference objects that are part of this set.
+        # `Reference.md5checksum` must be unique within this set.
       "A String",
     ],
     "assemblyId": "A String", # Public id of this reference set, such as `GRCh37`.
-    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `NC_000001.11`.
+    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
+        # with a version number, for example `NC_000001.11`.
       "A String",
     ],
-    "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string `reference.md5checksum` (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
+    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
+        # indicating the species which this reference set is intended to model. Note
+        # that contained references may specify a different `ncbiTaxonId`, as
+        # assemblies may contain reference sequences which do not belong to the
+        # modeled species, for example EBV in a human reference genome.
     "id": "A String", # The server-generated reference set ID, unique across all reference sets.
-    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human) indicating the species which this reference set is intended to model. Note that contained references may specify a different `ncbiTaxonId`, as assemblies may contain reference sequences which do not belong to the modeled species, for example EBV in a human reference genome.
+    "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The
+        # checksum is computed by sorting all lower case hexidecimal string
+        # `reference.md5checksum` (for all reference in this set) in
+        # ascending lexicographic order, concatenating, and taking the MD5 of that
+        # value. The resulting value is represented in lower case hexadecimal format.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Searches for reference sets which match the given criteria. For the definitions of references and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)
+  <pre>Searches for reference sets which match the given criteria.
+
+For the definitions of references and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchReferenceSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/referencemethods.avdl#L71)
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 {
-    "md5checksums": [ # If present, return reference sets for which the md5checksum matches exactly.
+    "md5checksums": [ # If present, return reference sets for which the
+        # md5checksum matches exactly.
       "A String",
     ],
-    "assemblyId": "A String", # If present, return reference sets for which a substring of their `assemblyId` matches this string (case insensitive).
-    "accessions": [ # If present, return reference sets for which a prefix of any of sourceAccessions match any of these strings. Accession numbers typically have a main number and a version, for example `NC_000001.11`.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "accessions": [ # If present, return reference sets for which a prefix of any of
+        # sourceAccessions
+        # match any of these strings. Accession numbers typically have a main number
+        # and a version, for example `NC_000001.11`.
       "A String",
     ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 1024. The maximum value is 4096.
+    "assemblyId": "A String", # If present, return reference sets for which a substring of their
+        # `assemblyId` matches this string (case insensitive).
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "referenceSets": [ # The matching references sets.
-      { # A reference set is a set of references which typically comprise a reference assembly for a species, such as `GRCh38` which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      { # A reference set is a set of references which typically comprise a reference
+          # assembly for a species, such as `GRCh38` which is representative
+          # of the human genome. A reference set defines a common coordinate space for
+          # comparing reference-aligned experimental data. A reference set contains 1 or
+          # more references.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
         "description": "A String", # Free text description of this reference set.
         "sourceUri": "A String", # The URI from which the references were obtained.
-        "referenceIds": [ # The IDs of the reference objects that are part of this set. `Reference.md5checksum` must be unique within this set.
+        "referenceIds": [ # The IDs of the reference objects that are part of this set.
+            # `Reference.md5checksum` must be unique within this set.
           "A String",
         ],
         "assemblyId": "A String", # Public id of this reference set, such as `GRCh37`.
-        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example `NC_000001.11`.
+        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally
+            # with a version number, for example `NC_000001.11`.
           "A String",
         ],
-        "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string `reference.md5checksum` (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
+        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
+            # indicating the species which this reference set is intended to model. Note
+            # that contained references may specify a different `ncbiTaxonId`, as
+            # assemblies may contain reference sequences which do not belong to the
+            # modeled species, for example EBV in a human reference genome.
         "id": "A String", # The server-generated reference set ID, unique across all reference sets.
-        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human) indicating the species which this reference set is intended to model. Note that contained references may specify a different `ncbiTaxonId`, as assemblies may contain reference sequences which do not belong to the modeled species, for example EBV in a human reference genome.
+        "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The
+            # checksum is computed by sorting all lower case hexidecimal string
+            # `reference.md5checksum` (for all reference in this set) in
+            # ascending lexicographic order, concatenating, and taking the MD5 of that
+            # value. The resulting value is represented in lower case hexadecimal format.
       },
     ],
   }</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/genomics_v1.variants.html b/docs/dyn/genomics_v1.variants.html
index a6a10e9..fe7b4a6 100644
--- a/docs/dyn/genomics_v1.variants.html
+++ b/docs/dyn/genomics_v1.variants.html
@@ -76,202 +76,383 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Creates a new variant.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(variantId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Deletes a variant.</p>
 <p class="toc_element">
   <code><a href="#get">get(variantId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a variant by ID. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Gets a variant by ID.</p>
 <p class="toc_element">
   <code><a href="#import_">import_(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates variant data by asynchronously importing the provided information. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The variants for import will be merged with any existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant, and Variant info fields are merged as specified in infoMergeConfig. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.</p>
+<p class="firstline">Creates variant data by asynchronously importing the provided information.</p>
 <p class="toc_element">
   <code><a href="#merge">merge(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Merges the given variants with existing variants. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant. Variant info fields are merged as specified in the infoMergeConfig field of the MergeVariantsRequest. Please exercise caution when using this method! It is easy to introduce mistakes in existing variants and difficult to back out of them. For example, suppose you were trying to merge a new variant with an existing one and both variants contain calls that belong to callsets with the same callset ID. // Existing variant - irrelevant fields trimmed for clarity { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 0, 1 ], } ] } // New variant with conflicting call information { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 1, 1 ], } ] } The resulting merged variant would overwrite the existing calls with those from the new variant: { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 1, 1 ], } ] } This may be the desired outcome, but it is up to the user to determine if if that is indeed the case.</p>
+<p class="firstline">Merges the given variants with existing variants.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(variantId, body, x__xgafv=None, updateMask=None)</a></code></p>
-<p class="firstline">Updates a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics. Returns the modified variant without its calls.</p>
+<p class="firstline">Updates a variant.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a list of variants matching the criteria. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).</p>
+<p class="firstline">Gets a list of variants matching the criteria.</p>
 <p class="toc_element">
-  <code><a href="#stream">stream(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a stream of all the variants matching the search request, ordered by reference name, position, and ID.</p>
+  <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="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Creates a new variant.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-  "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+{ # A variant represents a change in DNA sequence relative to a reference
+    # sequence. For example, a variant could represent a SNP or an insertion.
+    # Variants belong to a variant set.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    # 
+    # Each of the calls on a variant represent a determination of genotype with
+    # respect to that variant. For example, a call might assign probability of 0.32
+    # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+    # belongs to a call set, which contains related calls typically from one
+    # sample.
+  "info": { # A map of additional variant information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
   },
   "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-  "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-  "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-    { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-      "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+  "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+      # base after the last base in the reference allele. So, the length of
+      # the reference allele is (end - start). This is useful for variants
+      # that don't explicitly give alternate bases, for example large deletions.
+  "calls": [ # The variant calls for this particular variant. Each one represents the
+      # determination of genotype with respect to this variant.
+    { # A call represents the determination of genotype with respect to a particular
+        # variant. It may include associated information such as quality and phasing.
+        # For example, a call might assign a probability of 0.32 to the occurrence of
+        # a SNP named rs1234 in a call set with the name NA12345.
+      "info": { # A map of additional variant call information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
         "a_key": [
           "",
         ],
       },
-      "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+      "genotype": [ # The genotype of this variant call. Each value represents either the value
+          # of the `referenceBases` field or a 1-based index into
+          # `alternateBases`. If a variant had a `referenceBases`
+          # value of `T` and an `alternateBases`
+          # value of `["A", "C"]`, and the `genotype` was
+          # `[2, 1]`, that would mean the call
+          # represented the heterozygous value `CA` for this variant.
+          # If the `genotype` was instead `[0, 1]`, the
+          # represented value would be `TA`. Ordering of the
+          # genotype values is important if the `phaseset` is present.
+          # If a genotype is not called (that is, a `.` is present in the
+          # GT string) -1 is returned.
         42,
       ],
       "callSetId": "A String", # The ID of the call set this variant call belongs to.
-      "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-      "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+      "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+          # the phase of the bases and is consistent with any other variant calls in
+          # the same reference sequence which have the same phaseset value.
+          # When importing data from VCF, if the genotype data was phased but no
+          # phase set was specified this field will be set to `*`.
+      "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+          # represents how likely a specific genotype is for this call. The value
+          # ordering is defined by the GL tag in the VCF spec.
+          # If Phred-scaled genotype likelihood scores (PL) are available and
+          # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+          # to GL scores.  If both are available, PL scores are stored in `info`.
         3.14,
       ],
       "callSetName": "A String", # The name of the call set this variant call belongs to.
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-  "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+  "referenceBases": "A String", # The reference bases for this variant. They start at the given
+      # position.
+  "filter": [ # A list of filters (normally quality filters) this variant has failed.
+      # `PASS` indicates this variant has passed all filters.
     "A String",
   ],
-  "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+  "start": "A String", # The position at which this variant occurs (0-based).
+      # This corresponds to the first base of the string of reference bases.
   "names": [ # Names for the variant, for example a RefSNP ID.
     "A String",
   ],
   "alternateBases": [ # The bases that appear instead of the reference bases.
     "A String",
   ],
-  "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-  "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+  "referenceName": "A String", # The reference on which this variant occurs.
+      # (such as `chr20` or `X`)
+  "quality": 3.14, # A measure of how likely this variant is to be real.
+      # A higher value is better.
   "id": "A String", # The server-generated variant ID, unique across all variants.
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-    "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+    { # A variant represents a change in DNA sequence relative to a reference
+      # sequence. For example, a variant could represent a SNP or an insertion.
+      # Variants belong to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      #
+      # Each of the calls on a variant represent a determination of genotype with
+      # respect to that variant. For example, a call might assign probability of 0.32
+      # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+      # belongs to a call set, which contains related calls typically from one
+      # sample.
+    "info": { # A map of additional variant information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
     },
     "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-        "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+        # base after the last base in the reference allele. So, the length of
+        # the reference allele is (end - start). This is useful for variants
+        # that don't explicitly give alternate bases, for example large deletions.
+    "calls": [ # The variant calls for this particular variant. Each one represents the
+        # determination of genotype with respect to this variant.
+      { # A call represents the determination of genotype with respect to a particular
+          # variant. It may include associated information such as quality and phasing.
+          # For example, a call might assign a probability of 0.32 to the occurrence of
+          # a SNP named rs1234 in a call set with the name NA12345.
+        "info": { # A map of additional variant call information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
-        "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+        "genotype": [ # The genotype of this variant call. Each value represents either the value
+            # of the `referenceBases` field or a 1-based index into
+            # `alternateBases`. If a variant had a `referenceBases`
+            # value of `T` and an `alternateBases`
+            # value of `["A", "C"]`, and the `genotype` was
+            # `[2, 1]`, that would mean the call
+            # represented the heterozygous value `CA` for this variant.
+            # If the `genotype` was instead `[0, 1]`, the
+            # represented value would be `TA`. Ordering of the
+            # genotype values is important if the `phaseset` is present.
+            # If a genotype is not called (that is, a `.` is present in the
+            # GT string) -1 is returned.
           42,
         ],
         "callSetId": "A String", # The ID of the call set this variant call belongs to.
-        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+            # the phase of the bases and is consistent with any other variant calls in
+            # the same reference sequence which have the same phaseset value.
+            # When importing data from VCF, if the genotype data was phased but no
+            # phase set was specified this field will be set to `*`.
+        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+            # represents how likely a specific genotype is for this call. The value
+            # ordering is defined by the GL tag in the VCF spec.
+            # If Phred-scaled genotype likelihood scores (PL) are available and
+            # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+            # to GL scores.  If both are available, PL scores are stored in `info`.
           3.14,
         ],
         "callSetName": "A String", # The name of the call set this variant call belongs to.
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-    "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
+    "filter": [ # A list of filters (normally quality filters) this variant has failed.
+        # `PASS` indicates this variant has passed all filters.
       "A String",
     ],
-    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+    "start": "A String", # The position at which this variant occurs (0-based).
+        # This corresponds to the first base of the string of reference bases.
     "names": [ # Names for the variant, for example a RefSNP ID.
       "A String",
     ],
     "alternateBases": [ # The bases that appear instead of the reference bases.
       "A String",
     ],
-    "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+    "referenceName": "A String", # The reference on which this variant occurs.
+        # (such as `chr20` or `X`)
+    "quality": 3.14, # A measure of how likely this variant is to be real.
+        # A higher value is better.
     "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(variantId, x__xgafv=None)</code>
-  <pre>Deletes a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Deletes a variant.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   variantId: string, The ID of the variant to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(variantId, x__xgafv=None)</code>
-  <pre>Gets a variant by ID. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Gets a variant by ID.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   variantId: string, The ID of the variant. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-    "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+    { # A variant represents a change in DNA sequence relative to a reference
+      # sequence. For example, a variant could represent a SNP or an insertion.
+      # Variants belong to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      #
+      # Each of the calls on a variant represent a determination of genotype with
+      # respect to that variant. For example, a call might assign probability of 0.32
+      # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+      # belongs to a call set, which contains related calls typically from one
+      # sample.
+    "info": { # A map of additional variant information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
     },
     "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-        "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+        # base after the last base in the reference allele. So, the length of
+        # the reference allele is (end - start). This is useful for variants
+        # that don't explicitly give alternate bases, for example large deletions.
+    "calls": [ # The variant calls for this particular variant. Each one represents the
+        # determination of genotype with respect to this variant.
+      { # A call represents the determination of genotype with respect to a particular
+          # variant. It may include associated information such as quality and phasing.
+          # For example, a call might assign a probability of 0.32 to the occurrence of
+          # a SNP named rs1234 in a call set with the name NA12345.
+        "info": { # A map of additional variant call information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
-        "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+        "genotype": [ # The genotype of this variant call. Each value represents either the value
+            # of the `referenceBases` field or a 1-based index into
+            # `alternateBases`. If a variant had a `referenceBases`
+            # value of `T` and an `alternateBases`
+            # value of `["A", "C"]`, and the `genotype` was
+            # `[2, 1]`, that would mean the call
+            # represented the heterozygous value `CA` for this variant.
+            # If the `genotype` was instead `[0, 1]`, the
+            # represented value would be `TA`. Ordering of the
+            # genotype values is important if the `phaseset` is present.
+            # If a genotype is not called (that is, a `.` is present in the
+            # GT string) -1 is returned.
           42,
         ],
         "callSetId": "A String", # The ID of the call set this variant call belongs to.
-        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+            # the phase of the bases and is consistent with any other variant calls in
+            # the same reference sequence which have the same phaseset value.
+            # When importing data from VCF, if the genotype data was phased but no
+            # phase set was specified this field will be set to `*`.
+        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+            # represents how likely a specific genotype is for this call. The value
+            # ordering is defined by the GL tag in the VCF spec.
+            # If Phred-scaled genotype likelihood scores (PL) are available and
+            # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+            # to GL scores.  If both are available, PL scores are stored in `info`.
           3.14,
         ],
         "callSetName": "A String", # The name of the call set this variant call belongs to.
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-    "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
+    "filter": [ # A list of filters (normally quality filters) this variant has failed.
+        # `PASS` indicates this variant has passed all filters.
       "A String",
     ],
-    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+    "start": "A String", # The position at which this variant occurs (0-based).
+        # This corresponds to the first base of the string of reference bases.
     "names": [ # Names for the variant, for example a RefSNP ID.
       "A String",
     ],
     "alternateBases": [ # The bases that appear instead of the reference bases.
       "A String",
     ],
-    "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+    "referenceName": "A String", # The reference on which this variant occurs.
+        # (such as `chr20` or `X`)
+    "quality": 3.14, # A measure of how likely this variant is to be real.
+        # A higher value is better.
     "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="import_">import_(body, x__xgafv=None)</code>
-  <pre>Creates variant data by asynchronously importing the provided information. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The variants for import will be merged with any existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant, and Variant info fields are merged as specified in infoMergeConfig. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.
+  <pre>Creates variant data by asynchronously importing the provided information.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+The variants for import will be merged with any existing variant that
+matches its reference sequence, start, end, reference bases, and
+alternative bases. If no such variant exists, a new one will be created.
+
+When variants are merged, the call information from the new variant
+is added to the existing variant, and Variant info fields are merged
+as specified in
+infoMergeConfig.
+As a special case, for single-sample VCF files, QUAL and FILTER fields will
+be moved to the call level; these are sometimes interpreted in a
+call-specific context.
+Imported VCF headers are appended to the metadata already in a variant set.
 
 Args:
   body: object, The request body. (required)
@@ -279,45 +460,208 @@
 
 { # The variant data import request.
     "variantSetId": "A String", # Required. The variant set to which variant data should be imported.
-    "normalizeReferenceNames": True or False, # Convert reference names to the canonical representation. hg19 haploytypes (those reference names containing "_hap") are not modified in any way. All other reference names are modified according to the following rules: The reference name is capitalized. The "chr" prefix is dropped for all autosomes and sex chromsomes. For example "chr17" becomes "17" and "chrX" becomes "X". All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
-    "sourceUris": [ # A list of URIs referencing variant files in Google Cloud Storage. URIs can include wildcards [as described here](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames). Note that recursive wildcards ('**') are not supported.
+    "normalizeReferenceNames": True or False, # Convert reference names to the canonical representation.
+        # hg19 haploytypes (those reference names containing "_hap")
+        # are not modified in any way.
+        # All other reference names are modified according to the following rules:
+        # The reference name is capitalized.
+        # The "chr" prefix is dropped for all autosomes and sex chromsomes.
+        # For example "chr17" becomes "17" and "chrX" becomes "X".
+        # All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
+    "sourceUris": [ # A list of URIs referencing variant files in Google Cloud Storage. URIs can
+        # include wildcards [as described
+        # here](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
+        # Note that recursive wildcards ('**') are not supported.
       "A String",
     ],
-    "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to be performed on them. This is plumbed down to the MergeVariantRequests generated by the resulting import job.
+    "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to
+        # be performed on them. This is plumbed down to the MergeVariantRequests
+        # generated by the resulting import job.
       "a_key": "A String",
     },
-    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to to `VCF`.
+    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to
+        # to `VCF`.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="merge">merge(body, x__xgafv=None)</code>
-  <pre>Merges the given variants with existing variants. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created. When variants are merged, the call information from the new variant is added to the existing variant. Variant info fields are merged as specified in the infoMergeConfig field of the MergeVariantsRequest. Please exercise caution when using this method! It is easy to introduce mistakes in existing variants and difficult to back out of them. For example, suppose you were trying to merge a new variant with an existing one and both variants contain calls that belong to callsets with the same callset ID. // Existing variant - irrelevant fields trimmed for clarity { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 0, 1 ], } ] } // New variant with conflicting call information { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 1, 1 ], } ] } The resulting merged variant would overwrite the existing calls with those from the new variant: { "variantSetId": "10473108253681171589", "referenceName": "1", "start": "10582", "referenceBases": "G", "alternateBases": [ "A" ], "calls": [ { "callSetId": "10473108253681171589-0", "callSetName": "CALLSET0", "genotype": [ 1, 1 ], } ] } This may be the desired outcome, but it is up to the user to determine if if that is indeed the case.
+  <pre>Merges the given variants with existing variants.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Each variant will be
+merged with an existing variant that matches its reference sequence,
+start, end, reference bases, and alternative bases. If no such variant
+exists, a new one will be created.
+
+When variants are merged, the call information from the new variant
+is added to the existing variant. Variant info fields are merged as
+specified in the
+infoMergeConfig
+field of the MergeVariantsRequest.
+
+Please exercise caution when using this method!  It is easy to introduce
+mistakes in existing variants and difficult to back out of them.  For
+example,
+suppose you were trying to merge a new variant with an existing one and
+both
+variants contain calls that belong to callsets with the same callset ID.
+
+    // Existing variant - irrelevant fields trimmed for clarity
+    {
+        "variantSetId": "10473108253681171589",
+        "referenceName": "1",
+        "start": "10582",
+        "referenceBases": "G",
+        "alternateBases": [
+            "A"
+        ],
+        "calls": [
+            {
+                "callSetId": "10473108253681171589-0",
+                "callSetName": "CALLSET0",
+                "genotype": [
+                    0,
+                    1
+                ],
+            }
+        ]
+    }
+
+    // New variant with conflicting call information
+    {
+        "variantSetId": "10473108253681171589",
+        "referenceName": "1",
+        "start": "10582",
+        "referenceBases": "G",
+        "alternateBases": [
+            "A"
+        ],
+        "calls": [
+            {
+                "callSetId": "10473108253681171589-0",
+                "callSetName": "CALLSET0",
+                "genotype": [
+                    1,
+                    1
+                ],
+            }
+        ]
+    }
+
+The resulting merged variant would overwrite the existing calls with those
+from the new variant:
+
+    {
+        "variantSetId": "10473108253681171589",
+        "referenceName": "1",
+        "start": "10582",
+        "referenceBases": "G",
+        "alternateBases": [
+            "A"
+        ],
+        "calls": [
+            {
+                "callSetId": "10473108253681171589-0",
+                "callSetName": "CALLSET0",
+                "genotype": [
+                    1,
+                    1
+                ],
+            }
+        ]
+    }
+
+This may be the desired outcome, but it is up to the user to determine if
+if that is indeed the case.
 
 Args:
   body: object, The request body. (required)
@@ -326,237 +670,466 @@
 {
     "variantSetId": "A String", # The destination variant set.
     "variants": [ # The variants to be merged with existing variants.
-      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-        "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+      { # A variant represents a change in DNA sequence relative to a reference
+          # sequence. For example, a variant could represent a SNP or an insertion.
+          # Variants belong to a variant set.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+          #
+          # Each of the calls on a variant represent a determination of genotype with
+          # respect to that variant. For example, a call might assign probability of 0.32
+          # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+          # belongs to a call set, which contains related calls typically from one
+          # sample.
+        "info": { # A map of additional variant information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-          { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-            "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+            # base after the last base in the reference allele. So, the length of
+            # the reference allele is (end - start). This is useful for variants
+            # that don't explicitly give alternate bases, for example large deletions.
+        "calls": [ # The variant calls for this particular variant. Each one represents the
+            # determination of genotype with respect to this variant.
+          { # A call represents the determination of genotype with respect to a particular
+              # variant. It may include associated information such as quality and phasing.
+              # For example, a call might assign a probability of 0.32 to the occurrence of
+              # a SNP named rs1234 in a call set with the name NA12345.
+            "info": { # A map of additional variant call information. This must be of the form
+                # map<string, string[]> (string key mapping to a list of string values).
               "a_key": [
                 "",
               ],
             },
-            "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+            "genotype": [ # The genotype of this variant call. Each value represents either the value
+                # of the `referenceBases` field or a 1-based index into
+                # `alternateBases`. If a variant had a `referenceBases`
+                # value of `T` and an `alternateBases`
+                # value of `["A", "C"]`, and the `genotype` was
+                # `[2, 1]`, that would mean the call
+                # represented the heterozygous value `CA` for this variant.
+                # If the `genotype` was instead `[0, 1]`, the
+                # represented value would be `TA`. Ordering of the
+                # genotype values is important if the `phaseset` is present.
+                # If a genotype is not called (that is, a `.` is present in the
+                # GT string) -1 is returned.
               42,
             ],
             "callSetId": "A String", # The ID of the call set this variant call belongs to.
-            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+                # the phase of the bases and is consistent with any other variant calls in
+                # the same reference sequence which have the same phaseset value.
+                # When importing data from VCF, if the genotype data was phased but no
+                # phase set was specified this field will be set to `*`.
+            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+                # represents how likely a specific genotype is for this call. The value
+                # ordering is defined by the GL tag in the VCF spec.
+                # If Phred-scaled genotype likelihood scores (PL) are available and
+                # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+                # to GL scores.  If both are available, PL scores are stored in `info`.
               3.14,
             ],
             "callSetName": "A String", # The name of the call set this variant call belongs to.
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-        "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+        "referenceBases": "A String", # The reference bases for this variant. They start at the given
+            # position.
+        "filter": [ # A list of filters (normally quality filters) this variant has failed.
+            # `PASS` indicates this variant has passed all filters.
           "A String",
         ],
-        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+        "start": "A String", # The position at which this variant occurs (0-based).
+            # This corresponds to the first base of the string of reference bases.
         "names": [ # Names for the variant, for example a RefSNP ID.
           "A String",
         ],
         "alternateBases": [ # The bases that appear instead of the reference bases.
           "A String",
         ],
-        "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+        "referenceName": "A String", # The reference on which this variant occurs.
+            # (such as `chr20` or `X`)
+        "quality": 3.14, # A measure of how likely this variant is to be real.
+            # A higher value is better.
         "id": "A String", # The server-generated variant ID, unique across all variants.
       },
     ],
-    "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to be performed on them.
+    "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to
+        # be performed on them.
       "a_key": "A String",
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="patch">patch(variantId, body, x__xgafv=None, updateMask=None)</code>
-  <pre>Updates a variant. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) This method supports patch semantics. Returns the modified variant without its calls.
+  <pre>Updates a variant.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+This method supports patch semantics. Returns the modified variant without
+its calls.
 
 Args:
   variantId: string, The ID of the variant to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-  "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+{ # A variant represents a change in DNA sequence relative to a reference
+    # sequence. For example, a variant could represent a SNP or an insertion.
+    # Variants belong to a variant set.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    # 
+    # Each of the calls on a variant represent a determination of genotype with
+    # respect to that variant. For example, a call might assign probability of 0.32
+    # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+    # belongs to a call set, which contains related calls typically from one
+    # sample.
+  "info": { # A map of additional variant information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
     "a_key": [
       "",
     ],
   },
   "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-  "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-  "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-    { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-      "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+  "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+      # base after the last base in the reference allele. So, the length of
+      # the reference allele is (end - start). This is useful for variants
+      # that don't explicitly give alternate bases, for example large deletions.
+  "calls": [ # The variant calls for this particular variant. Each one represents the
+      # determination of genotype with respect to this variant.
+    { # A call represents the determination of genotype with respect to a particular
+        # variant. It may include associated information such as quality and phasing.
+        # For example, a call might assign a probability of 0.32 to the occurrence of
+        # a SNP named rs1234 in a call set with the name NA12345.
+      "info": { # A map of additional variant call information. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
         "a_key": [
           "",
         ],
       },
-      "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+      "genotype": [ # The genotype of this variant call. Each value represents either the value
+          # of the `referenceBases` field or a 1-based index into
+          # `alternateBases`. If a variant had a `referenceBases`
+          # value of `T` and an `alternateBases`
+          # value of `["A", "C"]`, and the `genotype` was
+          # `[2, 1]`, that would mean the call
+          # represented the heterozygous value `CA` for this variant.
+          # If the `genotype` was instead `[0, 1]`, the
+          # represented value would be `TA`. Ordering of the
+          # genotype values is important if the `phaseset` is present.
+          # If a genotype is not called (that is, a `.` is present in the
+          # GT string) -1 is returned.
         42,
       ],
       "callSetId": "A String", # The ID of the call set this variant call belongs to.
-      "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-      "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+      "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+          # the phase of the bases and is consistent with any other variant calls in
+          # the same reference sequence which have the same phaseset value.
+          # When importing data from VCF, if the genotype data was phased but no
+          # phase set was specified this field will be set to `*`.
+      "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+          # represents how likely a specific genotype is for this call. The value
+          # ordering is defined by the GL tag in the VCF spec.
+          # If Phred-scaled genotype likelihood scores (PL) are available and
+          # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+          # to GL scores.  If both are available, PL scores are stored in `info`.
         3.14,
       ],
       "callSetName": "A String", # The name of the call set this variant call belongs to.
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-  "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+  "referenceBases": "A String", # The reference bases for this variant. They start at the given
+      # position.
+  "filter": [ # A list of filters (normally quality filters) this variant has failed.
+      # `PASS` indicates this variant has passed all filters.
     "A String",
   ],
-  "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+  "start": "A String", # The position at which this variant occurs (0-based).
+      # This corresponds to the first base of the string of reference bases.
   "names": [ # Names for the variant, for example a RefSNP ID.
     "A String",
   ],
   "alternateBases": [ # The bases that appear instead of the reference bases.
     "A String",
   ],
-  "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-  "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+  "referenceName": "A String", # The reference on which this variant occurs.
+      # (such as `chr20` or `X`)
+  "quality": 3.14, # A measure of how likely this variant is to be real.
+      # A higher value is better.
   "id": "A String", # The server-generated variant ID, unique across all variants.
 }
 
   x__xgafv: string, V1 error format.
-  updateMask: string, An optional mask specifying which fields to update. At this time, mutable fields are names and info. Acceptable values are "names" and "info". If unspecified, all mutable fields will be updated.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  updateMask: string, An optional mask specifying which fields to update. At this time, mutable
+fields are names and
+info. Acceptable values are "names" and
+"info". If unspecified, all mutable fields will be updated.
 
 Returns:
   An object of the form:
 
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-    "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+    { # A variant represents a change in DNA sequence relative to a reference
+      # sequence. For example, a variant could represent a SNP or an insertion.
+      # Variants belong to a variant set.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      #
+      # Each of the calls on a variant represent a determination of genotype with
+      # respect to that variant. For example, a call might assign probability of 0.32
+      # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+      # belongs to a call set, which contains related calls typically from one
+      # sample.
+    "info": { # A map of additional variant information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
       "a_key": [
         "",
       ],
     },
     "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-        "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+        # base after the last base in the reference allele. So, the length of
+        # the reference allele is (end - start). This is useful for variants
+        # that don't explicitly give alternate bases, for example large deletions.
+    "calls": [ # The variant calls for this particular variant. Each one represents the
+        # determination of genotype with respect to this variant.
+      { # A call represents the determination of genotype with respect to a particular
+          # variant. It may include associated information such as quality and phasing.
+          # For example, a call might assign a probability of 0.32 to the occurrence of
+          # a SNP named rs1234 in a call set with the name NA12345.
+        "info": { # A map of additional variant call information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
-        "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+        "genotype": [ # The genotype of this variant call. Each value represents either the value
+            # of the `referenceBases` field or a 1-based index into
+            # `alternateBases`. If a variant had a `referenceBases`
+            # value of `T` and an `alternateBases`
+            # value of `["A", "C"]`, and the `genotype` was
+            # `[2, 1]`, that would mean the call
+            # represented the heterozygous value `CA` for this variant.
+            # If the `genotype` was instead `[0, 1]`, the
+            # represented value would be `TA`. Ordering of the
+            # genotype values is important if the `phaseset` is present.
+            # If a genotype is not called (that is, a `.` is present in the
+            # GT string) -1 is returned.
           42,
         ],
         "callSetId": "A String", # The ID of the call set this variant call belongs to.
-        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+            # the phase of the bases and is consistent with any other variant calls in
+            # the same reference sequence which have the same phaseset value.
+            # When importing data from VCF, if the genotype data was phased but no
+            # phase set was specified this field will be set to `*`.
+        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+            # represents how likely a specific genotype is for this call. The value
+            # ordering is defined by the GL tag in the VCF spec.
+            # If Phred-scaled genotype likelihood scores (PL) are available and
+            # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+            # to GL scores.  If both are available, PL scores are stored in `info`.
           3.14,
         ],
         "callSetName": "A String", # The name of the call set this variant call belongs to.
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-    "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
+    "filter": [ # A list of filters (normally quality filters) this variant has failed.
+        # `PASS` indicates this variant has passed all filters.
       "A String",
     ],
-    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+    "start": "A String", # The position at which this variant occurs (0-based).
+        # This corresponds to the first base of the string of reference bases.
     "names": [ # Names for the variant, for example a RefSNP ID.
       "A String",
     ],
     "alternateBases": [ # The bases that appear instead of the reference bases.
       "A String",
     ],
-    "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+    "referenceName": "A String", # The reference on which this variant occurs.
+        # (such as `chr20` or `X`)
+    "quality": 3.14, # A measure of how likely this variant is to be real.
+        # A higher value is better.
     "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Gets a list of variants matching the criteria. For the definitions of variants and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).
+  <pre>Gets a list of variants matching the criteria.
+
+For the definitions of variants and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The variant search request.
-    "end": "A String", # The end of the window, 0-based exclusive. If unspecified or 0, defaults to the length of the reference.
-    "pageSize": 42, # The maximum number of variants to return in a single page. If unspecified, defaults to 5000. The maximum value is 10000.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "maxCalls": 42, # The maximum number of calls to return in a single page. Note that this limit may be exceeded in the event that a matching variant contains more calls than the requested maximum. If unspecified, defaults to 5000. The maximum value is 10000.
-    "start": "A String", # The beginning of the window (0-based, inclusive) for which overlapping variants should be returned. If unspecified, defaults to 0.
-    "callSetIds": [ # Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all.
+    "end": "A String", # The end of the window, 0-based exclusive. If unspecified or 0, defaults to
+        # the length of the reference.
+    "pageSize": 42, # The maximum number of variants to return in a single page. If unspecified,
+        # defaults to 5000. The maximum value is 10000.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "maxCalls": 42, # The maximum number of calls to return in a single page. Note that this
+        # limit may be exceeded in the event that a matching variant contains more
+        # calls than the requested maximum. If unspecified, defaults to 5000. The
+        # maximum value is 10000.
+    "start": "A String", # The beginning of the window (0-based, inclusive) for which
+        # overlapping variants should be returned. If unspecified, defaults to 0.
+    "callSetIds": [ # Only return variant calls which belong to call sets with these ids.
+        # Leaving this blank returns all variant calls. If a variant has no
+        # calls belonging to any of these call sets, it won't be returned at all.
       "A String",
     ],
     "variantName": "A String", # Only return variants which have exactly this name.
     "referenceName": "A String", # Required. Only return variants in this reference sequence.
-    "variantSetIds": [ # At most one variant set ID must be provided. Only variants from this variant set will be returned. If omitted, a call set id must be included in the request.
+    "variantSetIds": [ # At most one variant set ID must be provided. Only variants from this
+        # variant set will be returned. If omitted, a call set id must be included in
+        # the request.
       "A String",
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The variant search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "variants": [ # The list of matching Variants.
-      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-        "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
+      { # A variant represents a change in DNA sequence relative to a reference
+          # sequence. For example, a variant could represent a SNP or an insertion.
+          # Variants belong to a variant set.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+          #
+          # Each of the calls on a variant represent a determination of genotype with
+          # respect to that variant. For example, a call might assign probability of 0.32
+          # to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
+          # belongs to a call set, which contains related calls typically from one
+          # sample.
+        "info": { # A map of additional variant information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-          { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-            "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
+        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first
+            # base after the last base in the reference allele. So, the length of
+            # the reference allele is (end - start). This is useful for variants
+            # that don't explicitly give alternate bases, for example large deletions.
+        "calls": [ # The variant calls for this particular variant. Each one represents the
+            # determination of genotype with respect to this variant.
+          { # A call represents the determination of genotype with respect to a particular
+              # variant. It may include associated information such as quality and phasing.
+              # For example, a call might assign a probability of 0.32 to the occurrence of
+              # a SNP named rs1234 in a call set with the name NA12345.
+            "info": { # A map of additional variant call information. This must be of the form
+                # map<string, string[]> (string key mapping to a list of string values).
               "a_key": [
                 "",
               ],
             },
-            "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
+            "genotype": [ # The genotype of this variant call. Each value represents either the value
+                # of the `referenceBases` field or a 1-based index into
+                # `alternateBases`. If a variant had a `referenceBases`
+                # value of `T` and an `alternateBases`
+                # value of `["A", "C"]`, and the `genotype` was
+                # `[2, 1]`, that would mean the call
+                # represented the heterozygous value `CA` for this variant.
+                # If the `genotype` was instead `[0, 1]`, the
+                # represented value would be `TA`. Ordering of the
+                # genotype values is important if the `phaseset` is present.
+                # If a genotype is not called (that is, a `.` is present in the
+                # GT string) -1 is returned.
               42,
             ],
             "callSetId": "A String", # The ID of the call set this variant call belongs to.
-            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
+            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies
+                # the phase of the bases and is consistent with any other variant calls in
+                # the same reference sequence which have the same phaseset value.
+                # When importing data from VCF, if the genotype data was phased but no
+                # phase set was specified this field will be set to `*`.
+            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry
+                # represents how likely a specific genotype is for this call. The value
+                # ordering is defined by the GL tag in the VCF spec.
+                # If Phred-scaled genotype likelihood scores (PL) are available and
+                # log10(P) genotype likelihood scores (GL) are not, PL scores are converted
+                # to GL scores.  If both are available, PL scores are stored in `info`.
               3.14,
             ],
             "callSetName": "A String", # The name of the call set this variant call belongs to.
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-        "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
+        "referenceBases": "A String", # The reference bases for this variant. They start at the given
+            # position.
+        "filter": [ # A list of filters (normally quality filters) this variant has failed.
+            # `PASS` indicates this variant has passed all filters.
           "A String",
         ],
-        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+        "start": "A String", # The position at which this variant occurs (0-based).
+            # This corresponds to the first base of the string of reference bases.
         "names": [ # Names for the variant, for example a RefSNP ID.
           "A String",
         ],
         "alternateBases": [ # The bases that appear instead of the reference bases.
           "A String",
         ],
-        "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+        "referenceName": "A String", # The reference on which this variant occurs.
+            # (such as `chr20` or `X`)
+        "quality": 3.14, # A measure of how likely this variant is to be real.
+            # A higher value is better.
         "id": "A String", # The server-generated variant ID, unique across all variants.
       },
     ],
@@ -564,75 +1137,17 @@
 </div>
 
 <div class="method">
-    <code class="details" id="stream">stream(body, x__xgafv=None)</code>
-  <pre>Returns a stream of all the variants matching the search request, ordered by reference name, position, and ID.
+    <code class="details" id="search_next">search_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
 
 Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The stream variants request.
-    "variantSetId": "A String", # The variant set ID from which to stream variants.
-    "end": "A String", # The end of the window (0-based, exclusive) for which overlapping variants should be returned.
-    "projectId": "A String", # The Google Cloud project ID which will be billed for this access. The caller must have WRITE access to this project. Required.
-    "start": "A String", # The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.
-    "callSetIds": [ # Only return variant calls which belong to call sets with these IDs. Leaving this blank returns all variant calls.
-      "A String",
-    ],
-    "referenceName": "A String", # Required. Only return variants in this reference sequence.
-  }
-
-  x__xgafv: string, V1 error format.
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
 
 Returns:
-  An object of the form:
-
-    {
-    "variants": [
-      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-        "info": { # A map of additional variant information. This must be of the form map (string key mapping to a list of string values).
-          "a_key": [
-            "",
-          ],
-        },
-        "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-          { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-            "info": { # A map of additional variant call information. This must be of the form map (string key mapping to a list of string values).
-              "a_key": [
-                "",
-              ],
-            },
-            "genotype": [ # The genotype of this variant call. Each value represents either the value of the `referenceBases` field or a 1-based index into `alternateBases`. If a variant had a `referenceBases` value of `T` and an `alternateBases` value of `["A", "C"]`, and the `genotype` was `[2, 1]`, that would mean the call represented the heterozygous value `CA` for this variant. If the `genotype` was instead `[0, 1]`, the represented value would be `TA`. Ordering of the genotype values is important if the `phaseset` is present. If a genotype is not called (that is, a `.` is present in the GT string) -1 is returned.
-              42,
-            ],
-            "callSetId": "A String", # The ID of the call set this variant call belongs to.
-            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to `*`.
-            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in `info`.
-              3.14,
-            ],
-            "callSetName": "A String", # The name of the call set this variant call belongs to.
-          },
-        ],
-        "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-        "filter": [ # A list of filters (normally quality filters) this variant has failed. `PASS` indicates this variant has passed all filters.
-          "A String",
-        ],
-        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-        "names": [ # Names for the variant, for example a RefSNP ID.
-          "A String",
-        ],
-        "alternateBases": [ # The bases that appear instead of the reference bases.
-          "A String",
-        ],
-        "referenceName": "A String", # The reference on which this variant occurs. (such as `chr20` or `X`)
-        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-        "id": "A String", # The server-generated variant ID, unique across all variants.
-      },
-    ],
-  }</pre>
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1.variantsets.html b/docs/dyn/genomics_v1.variantsets.html
index 456049c..6adc2f8 100644
--- a/docs/dyn/genomics_v1.variantsets.html
+++ b/docs/dyn/genomics_v1.variantsets.html
@@ -76,90 +76,152 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new variant set. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The provided variant set must have a valid `datasetId` set - all other fields are optional. Note that the `id` field will be ignored, as this is assigned by the server.</p>
+<p class="firstline">Creates a new variant set.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(variantSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a variant set including all variants, call sets, and calls within. This is not reversible. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Deletes a variant set including all variants, call sets, and calls within.</p>
 <p class="toc_element">
-  <code><a href="#export">export(variantSetId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Exports variant set data to an external destination. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+  <code><a href="#export">export(variantSetId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Exports variant set data to an external destination.</p>
 <p class="toc_element">
   <code><a href="#get">get(variantSetId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a variant set by ID. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Gets a variant set by ID.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(variantSetId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a variant set using patch semantics. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)</p>
+<p class="firstline">Updates a variant set using patch semantics.</p>
 <p class="toc_element">
   <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a list of all variant sets matching search criteria. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).</p>
+<p class="firstline">Returns a list of all variant sets matching search criteria.</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="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new variant set. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) The provided variant set must have a valid `datasetId` set - all other fields are optional. Note that the `id` field will be ignored, as this is assigned by the server.
+  <pre>Creates a new variant set.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+The provided variant set must have a valid `datasetId` set - all other
+fields are optional. Note that the `id` field will be ignored, as this is
+assigned by the server.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+{ # A variant set is a collection of call sets and variants. It contains summary
+    # statistics of those contents. A variant set belongs to a dataset.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
   "name": "A String", # User-specified, mutable name.
   "description": "A String", # A textual description of this variant set.
-  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-      "referenceName": "A String", # The name of the reference associated with this reference bound.
-    },
-  ],
-  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-  "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-  "datasetId": "A String", # The dataset to which this variant set belongs.
   "metadata": [ # The metadata associated with this variant set.
-    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-      "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+    { # Metadata describes a single piece of variant call metadata.
+        # These data include a top level key and either a single value string (value)
+        # or a list of key-value pairs (info.)
+        # Value and info are mutually exclusive.
+      "info": { # Remaining structured metadata key-value pairs. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
         "a_key": [
           "",
         ],
       },
       "description": "A String", # A textual description of this metadata.
-      "number": "A String", # The number of values that can be included in a field described by this metadata.
+      "number": "A String", # The number of values that can be included in a field described by this
+          # metadata.
       "value": "A String", # The value field for simple metadata
       "key": "A String", # The top-level key.
-      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+      "type": "A String", # The type of data. Possible types include: Integer, Float,
+          # Flag, Character, and String.
+      "id": "A String", # User-provided ID field, not enforced by this API.
+          # Two or more pieces of structured metadata with identical
+          # id and key fields are considered equivalent.
+    },
+  ],
+  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+      # describes the alignment provenance of the variant set, while the
+      # `referenceBounds` describe the shape of the actual variant data. The
+      # reference set's reference names are a superset of those found in the
+      # `referenceBounds`.
+      # 
+      # For example, given a variant set that is mapped to the GRCh38 reference set
+      # and contains a single variant on reference 'X', `referenceBounds` would
+      # contain only an entry for 'X', while the associated reference set
+      # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+  "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+  "datasetId": "A String", # The dataset to which this variant set belongs.
+  "referenceBounds": [ # A list of all references used by the variants in a variant set
+      # with associated coordinate upper bounds for each one.
+    { # ReferenceBound records an upper bound for the starting coordinate of
+        # variants in a particular reference.
+      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+          # variant in the reference sequence.
+      "referenceName": "A String", # The name of the reference associated with this reference bound.
     },
   ],
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A variant set is a collection of call sets and variants. It contains summary
+      # statistics of those contents. A variant set belongs to a dataset.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "name": "A String", # User-specified, mutable name.
     "description": "A String", # A textual description of this variant set.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-    "datasetId": "A String", # The dataset to which this variant set belongs.
     "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+      { # Metadata describes a single piece of variant call metadata.
+          # These data include a top level key and either a single value string (value)
+          # or a list of key-value pairs (info.)
+          # Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this
+            # metadata.
         "value": "A String", # The value field for simple metadata
         "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+        "type": "A String", # The type of data. Possible types include: Integer, Float,
+            # Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API.
+            # Two or more pieces of structured metadata with identical
+            # id and key fields are considered equivalent.
+      },
+    ],
+    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+        # describes the alignment provenance of the variant set, while the
+        # `referenceBounds` describe the shape of the actual variant data. The
+        # reference set's reference names are a superset of those found in the
+        # `referenceBounds`.
+        #
+        # For example, given a variant set that is mapped to the GRCh38 reference set
+        # and contains a single variant on reference 'X', `referenceBounds` would
+        # contain only an entry for 'X', while the associated reference set
+        # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+    "datasetId": "A String", # The dataset to which this variant set belongs.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set
+        # with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of
+          # variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+            # variant in the reference sequence.
+        "referenceName": "A String", # The name of the reference associated with this reference bound.
       },
     ],
   }</pre>
@@ -167,100 +229,218 @@
 
 <div class="method">
     <code class="details" id="delete">delete(variantSetId, x__xgafv=None)</code>
-  <pre>Deletes a variant set including all variants, call sets, and calls within. This is not reversible. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Deletes a variant set including all variants, call sets, and calls within.
+This is not reversible.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   variantSetId: string, The ID of the variant set to be deleted. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="export">export(variantSetId, body, x__xgafv=None)</code>
-  <pre>Exports variant set data to an external destination. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    <code class="details" id="export">export(variantSetId=None, body, x__xgafv=None)</code>
+  <pre>Exports variant set data to an external destination.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
-  variantSetId: string, Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set. (required)
+  variantSetId: string, Required. The ID of the variant set that contains variant data which
+should be exported. The caller must have READ access to this variant set. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The variant data export request.
-    "projectId": "A String", # Required. The Google Cloud project ID that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.
-    "bigqueryTable": "A String", # Required. The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten.
-    "bigqueryDataset": "A String", # Required. The BigQuery dataset to export data to. This dataset must already exist. Note that this is distinct from the Genomics concept of "dataset".
-    "callSetIds": [ # If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.
+    "bigqueryDataset": "A String", # Required. The BigQuery dataset to export data to. This dataset must already
+        # exist. Note that this is distinct from the Genomics concept of "dataset".
+    "bigqueryTable": "A String", # Required. The BigQuery table to export data to.
+        # If the table doesn't exist, it will be created. If it already exists, it
+        # will be overwritten.
+    "callSetIds": [ # If provided, only variant call information from the specified call sets
+        # will be exported. By default all variant calls are exported.
       "A String",
     ],
+    "projectId": "A String", # Required. The Google Cloud project ID that owns the destination
+        # BigQuery dataset. The caller must have WRITE access to this project.  This
+        # project will also own the resulting export job.
     "format": "A String", # The format for the exported data.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(variantSetId, x__xgafv=None)</code>
-  <pre>Gets a variant set by ID. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Gets a variant set by ID.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   variantSetId: string, Required. The ID of the variant set. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A variant set is a collection of call sets and variants. It contains summary
+      # statistics of those contents. A variant set belongs to a dataset.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "name": "A String", # User-specified, mutable name.
     "description": "A String", # A textual description of this variant set.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-    "datasetId": "A String", # The dataset to which this variant set belongs.
     "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+      { # Metadata describes a single piece of variant call metadata.
+          # These data include a top level key and either a single value string (value)
+          # or a list of key-value pairs (info.)
+          # Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this
+            # metadata.
         "value": "A String", # The value field for simple metadata
         "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+        "type": "A String", # The type of data. Possible types include: Integer, Float,
+            # Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API.
+            # Two or more pieces of structured metadata with identical
+            # id and key fields are considered equivalent.
+      },
+    ],
+    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+        # describes the alignment provenance of the variant set, while the
+        # `referenceBounds` describe the shape of the actual variant data. The
+        # reference set's reference names are a superset of those found in the
+        # `referenceBounds`.
+        #
+        # For example, given a variant set that is mapped to the GRCh38 reference set
+        # and contains a single variant on reference 'X', `referenceBounds` would
+        # contain only an entry for 'X', while the associated reference set
+        # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+    "datasetId": "A String", # The dataset to which this variant set belongs.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set
+        # with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of
+          # variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+            # variant in the reference sequence.
+        "referenceName": "A String", # The name of the reference associated with this reference bound.
       },
     ],
   }</pre>
@@ -268,73 +448,135 @@
 
 <div class="method">
     <code class="details" id="patch">patch(variantSetId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates a variant set using patch semantics. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  <pre>Updates a variant set using patch semantics.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
 
 Args:
   variantSetId: string, The ID of the variant to be updated (must already exist). (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+{ # A variant set is a collection of call sets and variants. It contains summary
+    # statistics of those contents. A variant set belongs to a dataset.
+    # 
+    # For more genomics resource definitions, see [Fundamentals of Google
+    # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
   "name": "A String", # User-specified, mutable name.
   "description": "A String", # A textual description of this variant set.
-  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-      "referenceName": "A String", # The name of the reference associated with this reference bound.
-    },
-  ],
-  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-  "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-  "datasetId": "A String", # The dataset to which this variant set belongs.
   "metadata": [ # The metadata associated with this variant set.
-    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-      "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+    { # Metadata describes a single piece of variant call metadata.
+        # These data include a top level key and either a single value string (value)
+        # or a list of key-value pairs (info.)
+        # Value and info are mutually exclusive.
+      "info": { # Remaining structured metadata key-value pairs. This must be of the form
+          # map<string, string[]> (string key mapping to a list of string values).
         "a_key": [
           "",
         ],
       },
       "description": "A String", # A textual description of this metadata.
-      "number": "A String", # The number of values that can be included in a field described by this metadata.
+      "number": "A String", # The number of values that can be included in a field described by this
+          # metadata.
       "value": "A String", # The value field for simple metadata
       "key": "A String", # The top-level key.
-      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+      "type": "A String", # The type of data. Possible types include: Integer, Float,
+          # Flag, Character, and String.
+      "id": "A String", # User-provided ID field, not enforced by this API.
+          # Two or more pieces of structured metadata with identical
+          # id and key fields are considered equivalent.
+    },
+  ],
+  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+      # describes the alignment provenance of the variant set, while the
+      # `referenceBounds` describe the shape of the actual variant data. The
+      # reference set's reference names are a superset of those found in the
+      # `referenceBounds`.
+      # 
+      # For example, given a variant set that is mapped to the GRCh38 reference set
+      # and contains a single variant on reference 'X', `referenceBounds` would
+      # contain only an entry for 'X', while the associated reference set
+      # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+  "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+  "datasetId": "A String", # The dataset to which this variant set belongs.
+  "referenceBounds": [ # A list of all references used by the variants in a variant set
+      # with associated coordinate upper bounds for each one.
+    { # ReferenceBound records an upper bound for the starting coordinate of
+        # variants in a particular reference.
+      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+          # variant in the reference sequence.
+      "referenceName": "A String", # The name of the reference associated with this reference bound.
     },
   ],
 }
 
-  updateMask: string, An optional mask specifying which fields to update. Supported fields: * metadata. * name. * description. Leaving `updateMask` unset is equivalent to specifying all mutable fields.
+  updateMask: string, An optional mask specifying which fields to update. Supported fields:
+
+* metadata.
+* name.
+* description.
+
+Leaving `updateMask` unset is equivalent to specifying all mutable
+fields.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    { # A variant set is a collection of call sets and variants. It contains summary
+      # statistics of those contents. A variant set belongs to a dataset.
+      #
+      # For more genomics resource definitions, see [Fundamentals of Google
+      # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
     "name": "A String", # User-specified, mutable name.
     "description": "A String", # A textual description of this variant set.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-    "datasetId": "A String", # The dataset to which this variant set belongs.
     "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+      { # Metadata describes a single piece of variant call metadata.
+          # These data include a top level key and either a single value string (value)
+          # or a list of key-value pairs (info.)
+          # Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
           "a_key": [
             "",
           ],
         },
         "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this
+            # metadata.
         "value": "A String", # The value field for simple metadata
         "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+        "type": "A String", # The type of data. Possible types include: Integer, Float,
+            # Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API.
+            # Two or more pieces of structured metadata with identical
+            # id and key fields are considered equivalent.
+      },
+    ],
+    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+        # describes the alignment provenance of the variant set, while the
+        # `referenceBounds` describe the shape of the actual variant data. The
+        # reference set's reference names are a superset of those found in the
+        # `referenceBounds`.
+        #
+        # For example, given a variant set that is mapped to the GRCh38 reference set
+        # and contains a single variant on reference 'X', `referenceBounds` would
+        # contain only an entry for 'X', while the associated reference set
+        # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+    "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+    "datasetId": "A String", # The dataset to which this variant set belongs.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set
+        # with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of
+          # variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+            # variant in the reference sequence.
+        "referenceName": "A String", # The name of the reference associated with this reference bound.
       },
     ],
   }</pre>
@@ -342,53 +584,93 @@
 
 <div class="method">
     <code class="details" id="search">search(body, x__xgafv=None)</code>
-  <pre>Returns a list of all variant sets matching search criteria. For the definitions of variant sets and other genomics resources, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics) Implements [GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).
+  <pre>Returns a list of all variant sets matching search criteria.
+
+For the definitions of variant sets and other genomics resources, see
+[Fundamentals of Google
+Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+
+Implements
+[GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The search variant sets request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.
-    "datasetIds": [ # Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
+    "datasetIds": [ # Exactly one dataset ID must be provided here. Only variant sets which
+        # belong to this dataset will be returned.
       "A String",
     ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024.
+    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
+        # defaults to 1024.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The search variant sets response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # Provide this value in a subsequent request to return the next page of
+        # results. This field will be empty if there aren't any additional results.
     "variantSets": [ # The variant sets belonging to the requested dataset.
-      { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset. For more genomics resource definitions, see [Fundamentals of Google Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+      { # A variant set is a collection of call sets and variants. It contains summary
+          # statistics of those contents. A variant set belongs to a dataset.
+          #
+          # For more genomics resource definitions, see [Fundamentals of Google
+          # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
         "name": "A String", # User-specified, mutable name.
         "description": "A String", # A textual description of this variant set.
-        "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-          { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-            "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-            "referenceName": "A String", # The name of the reference associated with this reference bound.
-          },
-        ],
-        "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the `referenceBounds` describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the `referenceBounds`. For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', `referenceBounds` would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-        "id": "A String", # The server-generated variant set ID, unique across all variant sets.
-        "datasetId": "A String", # The dataset to which this variant set belongs.
         "metadata": [ # The metadata associated with this variant set.
-          { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-            "info": { # Remaining structured metadata key-value pairs. This must be of the form map (string key mapping to a list of string values).
+          { # Metadata describes a single piece of variant call metadata.
+              # These data include a top level key and either a single value string (value)
+              # or a list of key-value pairs (info.)
+              # Value and info are mutually exclusive.
+            "info": { # Remaining structured metadata key-value pairs. This must be of the form
+                # map<string, string[]> (string key mapping to a list of string values).
               "a_key": [
                 "",
               ],
             },
             "description": "A String", # A textual description of this metadata.
-            "number": "A String", # The number of values that can be included in a field described by this metadata.
+            "number": "A String", # The number of values that can be included in a field described by this
+                # metadata.
             "value": "A String", # The value field for simple metadata
             "key": "A String", # The top-level key.
-            "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-            "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+            "type": "A String", # The type of data. Possible types include: Integer, Float,
+                # Flag, Character, and String.
+            "id": "A String", # User-provided ID field, not enforced by this API.
+                # Two or more pieces of structured metadata with identical
+                # id and key fields are considered equivalent.
+          },
+        ],
+        "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set
+            # describes the alignment provenance of the variant set, while the
+            # `referenceBounds` describe the shape of the actual variant data. The
+            # reference set's reference names are a superset of those found in the
+            # `referenceBounds`.
+            #
+            # For example, given a variant set that is mapped to the GRCh38 reference set
+            # and contains a single variant on reference 'X', `referenceBounds` would
+            # contain only an entry for 'X', while the associated reference set
+            # enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
+        "id": "A String", # The server-generated variant set ID, unique across all variant sets.
+        "datasetId": "A String", # The dataset to which this variant set belongs.
+        "referenceBounds": [ # A list of all references used by the variants in a variant set
+            # with associated coordinate upper bounds for each one.
+          { # ReferenceBound records an upper bound for the starting coordinate of
+              # variants in a particular reference.
+            "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any
+                # variant in the reference sequence.
+            "referenceName": "A String", # The name of the reference associated with this reference bound.
           },
         ],
       },
@@ -396,4 +678,18 @@
   }</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/genomics_v1alpha2.operations.html b/docs/dyn/genomics_v1alpha2.operations.html
index 9c9d39f..58407f5 100644
--- a/docs/dyn/genomics_v1alpha2.operations.html
+++ b/docs/dyn/genomics_v1alpha2.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients may use Operations.GetOperation or Operations.ListOperations to check whether the cancellation succeeded or the operation completed despite cancellation.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists operations that match the specified filter in the request.</p>
@@ -100,43 +100,116 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
 
 Args:
   name: string, The name of the operation resource. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
   }</pre>
 </div>
 
@@ -146,37 +219,115 @@
 
 Args:
   name: string, The name of the operation collection. (required)
-  pageSize: integer, The maximum number of results to return. If unspecified, defaults to 256. The maximum value is 2048.
-  filter: string, A string for filtering Operations. The following filter fields are supported: * projectId: Required. Corresponds to OperationMetadata.projectId. * createTime: The time this job was created, in seconds from the [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `>=` and/or `= 1432140000` * `projectId = my-project AND createTime >= 1432140000 AND createTime <= 1432150000 AND status = RUNNING` * `projectId = my-project AND labels.color = *` * `projectId = my-project AND labels.color = red`
+  pageSize: integer, The maximum number of results to return. If unspecified, defaults to
+256. The maximum value is 2048.
+  filter: string, A string for filtering Operations.
+The following filter fields are supported&#58;
+
+* projectId&#58; Required. Corresponds to
+  OperationMetadata.projectId.
+* createTime&#58; The time this job was created, in seconds from the
+  [epoch](http://en.wikipedia.org/wiki/Unix_time). Can use `>=` and/or `<=`
+  operators.
+* status&#58; Can be `RUNNING`, `SUCCESS`, `FAILURE`, or `CANCELED`. Only
+  one status may be specified.
+* labels.key where key is a label key.
+
+Examples&#58;
+
+* `projectId = my-project AND createTime >= 1432140000`
+* `projectId = my-project AND createTime >= 1432140000 AND createTime <= 1432150000 AND status = RUNNING`
+* `projectId = my-project AND labels.color = *`
+* `projectId = my-project AND labels.color = red`
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
-      { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
             {
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-        "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1alpha2.pipelines.html b/docs/dyn/genomics_v1alpha2.pipelines.html
index eb8ab7f..837f468 100644
--- a/docs/dyn/genomics_v1alpha2.pipelines.html
+++ b/docs/dyn/genomics_v1alpha2.pipelines.html
@@ -76,84 +76,342 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a pipeline that can be run later. Create takes a Pipeline that has all fields other than `pipelineId` populated, and then returns the same pipeline with `pipelineId` populated. This id can be used to run the pipeline. Caller must have WRITE permission to the project.</p>
+<p class="firstline">Creates a pipeline that can be run later. Create takes a Pipeline that</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(pipelineId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a pipeline based on ID. Caller must have WRITE permission to the project.</p>
+  <code><a href="#delete">delete(pipelineId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a pipeline based on ID.</p>
 <p class="toc_element">
-  <code><a href="#get">get(pipelineId, x__xgafv=None)</a></code></p>
-<p class="firstline">Retrieves a pipeline based on ID. Caller must have READ permission to the project.</p>
+  <code><a href="#get">get(pipelineId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves a pipeline based on ID.</p>
 <p class="toc_element">
   <code><a href="#getControllerConfig">getControllerConfig(validationToken=None, x__xgafv=None, operationId=None)</a></code></p>
-<p class="firstline">Gets controller configuration information. Should only be called by VMs created by the Pipelines Service and not by end users.</p>
+<p class="firstline">Gets controller configuration information. Should only be called</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, projectId=None, namePrefix=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists pipelines. Caller must have READ permission to the project.</p>
+<p class="firstline">Lists pipelines.</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="#run">run(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Runs a pipeline. If `pipelineId` is specified in the request, then run a saved pipeline. If `ephemeralPipeline` is specified, then run that pipeline once without saving a copy. The caller must have READ permission to the project where the pipeline is stored and WRITE permission to the project where the pipeline will be run, as VMs will be created and storage will be used.</p>
+<p class="firstline">Runs a pipeline. If `pipelineId` is specified in the request, then</p>
 <p class="toc_element">
   <code><a href="#setOperationStatus">setOperationStatus(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets status of a given operation. Any new timestamps (as determined by description) are appended to TimestampEvents. Should only be called by VMs created by the Pipelines Service and not by end users.</p>
+<p class="firstline">Sets status of a given operation. Any new timestamps (as determined by</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a pipeline that can be run later. Create takes a Pipeline that has all fields other than `pipelineId` populated, and then returns the same pipeline with `pipelineId` populated. This id can be used to run the pipeline. Caller must have WRITE permission to the project.
+  <pre>Creates a pipeline that can be run later. Create takes a Pipeline that
+has all fields other than `pipelineId` populated, and then returns
+the same pipeline with `pipelineId` populated. This id can be used
+to run the pipeline.
+
+Caller must have WRITE permission to the project.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method.
-  "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.
-  "name": "A String", # Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines.
-  "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have WRITE access.
+{ # The pipeline object. Represents a transformation from a set of input
+    # parameters to a set of output parameters. The transformation is defined
+    # as a docker image and command to run within that image. Each pipeline
+    # is run on a Google Compute Engine VM. A pipeline can be created with the
+    # `create` method and then later run with the `run` method, or a pipeline can
+    # be defined and run all at once with the `run` method.
+  "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline
+      # is called. Cannot be specified in the Pipeline used in the
+      # CreatePipelineRequest, and will be populated in the response to
+      # CreatePipeline and all subsequent Get and List calls. Indicates that the
+      # service has registered this pipeline.
+  "name": "A String", # Required. A user specified pipeline name that does not have to be unique.
+      # This name can be used for filtering Pipelines in ListPipelines.
+  "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have
+      # WRITE access.
   "outputParameters": [ # Output parameters of the pipeline.
-    { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-      "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-      "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-        "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-        "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+    { # Parameters facilitate setting and delivering data into the
+        # pipeline's execution environment. They are defined at create time,
+        # with optional defaults, and can be overridden at run time.
+        #
+        # If `localCopy` is unset, then the parameter specifies a string that
+        # is passed as-is into the pipeline, as the value of the environment
+        # variable with the given name.  A default value can be optionally
+        # specified at create time. The default can be overridden at run time
+        # using the inputs map. If no default is given, a value must be
+        # supplied at runtime.
+        #
+        # If `localCopy` is defined, then the parameter specifies a data
+        # source or sink, both in Google Cloud Storage and on the Docker container
+        # where the pipeline computation is run. The service account associated with
+        # the Pipeline (by
+        # default the project's Compute Engine service account) must have access to the
+        # Google Cloud Storage paths.
+        #
+        # At run time, the Google Cloud Storage paths can be overridden if a default
+        # was provided at create time, or must be set otherwise. The pipeline runner
+        # should add a key/value pair to either the inputs or outputs map. The
+        # indicated data copies will be carried out before/after pipeline execution,
+        # just as if the corresponding arguments were provided to `gsutil cp`.
+        #
+        # For example: Given the following `PipelineParameter`, specified
+        # in the `inputParameters` list:
+        #
+        # ```
+        # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+        # ```
+        #
+        # where `disk` is defined in the `PipelineResources` object as:
+        #
+        # ```
+        # {name: "pd1", mountPoint: "/mnt/disk/"}
+        # ```
+        #
+        # We create a disk named `pd1`, mount it on the host VM, and map
+        # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+        # runtime, an entry for `input_file` would be required in the inputs
+        # map, such as:
+        #
+        # ```
+        #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+        # ```
+        #
+        # This would generate the following gsutil call:
+        #
+        # ```
+        #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+        # ```
+        #
+        # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+        # Docker container. Acceptable paths are:
+        #
+        # <table>
+        #   <thead>
+        #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+        #   </thead>
+        #   <tbody>
+        #     <tr><td>file</td><td>file</td></tr>
+        #     <tr><td>glob</td><td>directory</td></tr>
+        #   </tbody>
+        # </table>
+        #
+        # For outputs, the direction of the copy is reversed:
+        #
+        # ```
+        #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+        # ```
+        #
+        # Acceptable paths are:
+        #
+        # <table>
+        #   <thead>
+        #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+        #   </thead>
+        #   <tbody>
+        #     <tr><td>file</td><td>file</td></tr>
+        #     <tr>
+        #       <td>file</td>
+        #       <td>directory - directory must already exist</td>
+        #     </tr>
+        #     <tr>
+        #       <td>glob</td>
+        #       <td>directory - directory will be created if it doesn't exist</td></tr>
+        #   </tbody>
+        # </table>
+        #
+        # One restriction due to docker limitations, is that for outputs that are found
+        # on the boot disk, the local path cannot be a glob and must be a file.
+      "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+          # If `localCopy` is present, then this must be a Google Cloud Storage path
+          # beginning with `gs://`.
+      "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+          # `LocalCopy` indicates where on the VM the file should be. The value
+          # given to this parameter (either at runtime or using `defaultValue`)
+          # must be the remote path where the file should be.
+        "path": "A String", # Required. The path within the user's docker container where
+            # this input should be localized to and from, relative to the specified
+            # disk's mount point. For example: file.txt,
+        "disk": "A String", # Required. The name of the disk where this parameter is
+            # located. Can be the name of one of the disks specified in the
+            # Resources field, or "boot", which represents the Docker
+            # instance's boot disk and has a mount point of `/`.
       },
-      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+          # as the key to the input and output maps in RunPipeline.
       "description": "A String", # Human-readable description.
     },
   ],
   "inputParameters": [ # Input parameters of the pipeline.
-    { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-      "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-      "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-        "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-        "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+    { # Parameters facilitate setting and delivering data into the
+        # pipeline's execution environment. They are defined at create time,
+        # with optional defaults, and can be overridden at run time.
+        #
+        # If `localCopy` is unset, then the parameter specifies a string that
+        # is passed as-is into the pipeline, as the value of the environment
+        # variable with the given name.  A default value can be optionally
+        # specified at create time. The default can be overridden at run time
+        # using the inputs map. If no default is given, a value must be
+        # supplied at runtime.
+        #
+        # If `localCopy` is defined, then the parameter specifies a data
+        # source or sink, both in Google Cloud Storage and on the Docker container
+        # where the pipeline computation is run. The service account associated with
+        # the Pipeline (by
+        # default the project's Compute Engine service account) must have access to the
+        # Google Cloud Storage paths.
+        #
+        # At run time, the Google Cloud Storage paths can be overridden if a default
+        # was provided at create time, or must be set otherwise. The pipeline runner
+        # should add a key/value pair to either the inputs or outputs map. The
+        # indicated data copies will be carried out before/after pipeline execution,
+        # just as if the corresponding arguments were provided to `gsutil cp`.
+        #
+        # For example: Given the following `PipelineParameter`, specified
+        # in the `inputParameters` list:
+        #
+        # ```
+        # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+        # ```
+        #
+        # where `disk` is defined in the `PipelineResources` object as:
+        #
+        # ```
+        # {name: "pd1", mountPoint: "/mnt/disk/"}
+        # ```
+        #
+        # We create a disk named `pd1`, mount it on the host VM, and map
+        # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+        # runtime, an entry for `input_file` would be required in the inputs
+        # map, such as:
+        #
+        # ```
+        #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+        # ```
+        #
+        # This would generate the following gsutil call:
+        #
+        # ```
+        #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+        # ```
+        #
+        # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+        # Docker container. Acceptable paths are:
+        #
+        # <table>
+        #   <thead>
+        #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+        #   </thead>
+        #   <tbody>
+        #     <tr><td>file</td><td>file</td></tr>
+        #     <tr><td>glob</td><td>directory</td></tr>
+        #   </tbody>
+        # </table>
+        #
+        # For outputs, the direction of the copy is reversed:
+        #
+        # ```
+        #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+        # ```
+        #
+        # Acceptable paths are:
+        #
+        # <table>
+        #   <thead>
+        #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+        #   </thead>
+        #   <tbody>
+        #     <tr><td>file</td><td>file</td></tr>
+        #     <tr>
+        #       <td>file</td>
+        #       <td>directory - directory must already exist</td>
+        #     </tr>
+        #     <tr>
+        #       <td>glob</td>
+        #       <td>directory - directory will be created if it doesn't exist</td></tr>
+        #   </tbody>
+        # </table>
+        #
+        # One restriction due to docker limitations, is that for outputs that are found
+        # on the boot disk, the local path cannot be a glob and must be a file.
+      "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+          # If `localCopy` is present, then this must be a Google Cloud Storage path
+          # beginning with `gs://`.
+      "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+          # `LocalCopy` indicates where on the VM the file should be. The value
+          # given to this parameter (either at runtime or using `defaultValue`)
+          # must be the remote path where the file should be.
+        "path": "A String", # Required. The path within the user's docker container where
+            # this input should be localized to and from, relative to the specified
+            # disk's mount point. For example: file.txt,
+        "disk": "A String", # Required. The name of the disk where this parameter is
+            # located. Can be the name of one of the disks specified in the
+            # Resources field, or "boot", which represents the Docker
+            # instance's boot disk and has a mount point of `/`.
       },
-      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+          # as the key to the input and output maps in RunPipeline.
       "description": "A String", # Human-readable description.
     },
   ],
   "docker": { # The Docker execuctor specification. # Specifies the docker run information.
-    "cmd": "A String", # Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.
-    "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image.
+    "cmd": "A String", # Required. The command or newline delimited script to run. The command
+        # string will be executed within a bash shell.
+        #
+        # If the command exits with a non-zero exit code, output parameter
+        # de-localization will be skipped and the pipeline operation's
+        # `error` field will be populated.
+        #
+        # Maximum command string length is 16384.
+    "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry.
+        # Users that run pipelines must have READ access to the image.
   },
-  "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb
-    "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+  "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run.
+      # Required fields:
+      # 
+      # *
+      # minimumCpuCores
+      # 
+      # *
+      # minimumRamGb
+    "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+        # feature that may go away. Defaults to false.
+        # Corresponds to `--no_address` flag for [gcloud compute instances create]
+        # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+        # In order to use this, must be true for both create time and run time.
+        # Cannot be true at run time if false at create time. If you need to ssh into
+        # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+        # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+        # only load docker images from Google Container Registry and not Docker Hub.
+        # Before using this, you must
+        # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
     "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-    "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+    "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+        # must be true for both create time and run time. Cannot be true at run time
+        # if false at create time.
     "disks": [ # Disks to attach.
       { # A Google Compute Engine disk resource specification.
-        "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-        "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-        "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-        "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-        "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-        "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+        "name": "A String", # Required. The name of the disk that can be used in the pipeline
+            # parameters. Must be 1 - 63 characters.
+            # The name "boot" is reserved for system use.
+        "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+            # This field is not applicable for local SSD.
+        "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+            # of the pipeline run, regardless of what this field is set to.
+        "source": "A String", # The full or partial URL of the persistent disk to attach. See
+            # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+            # and
+            # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+            # for more details.
+        "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+            # Specifies the path in the docker container where files on
+            # this disk should be located. For example, if `mountPoint`
+            # is `/mnt/disk`, and the parameter has `localPath`
+            # `inputs/file.txt`, the docker container can access the data at
+            # `/mnt/disk/inputs/file.txt`.
         "type": "A String", # Required. The type of the disk to create.
       },
     ],
     "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-    "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+    "zones": [ # List of Google Compute Engine availability zones to which resource
+        # creation will restricted. If empty, any zone may be chosen.
       "A String",
     ],
     "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
@@ -162,57 +420,313 @@
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method.
-    "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.
-    "name": "A String", # Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines.
-    "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have WRITE access.
+    { # The pipeline object. Represents a transformation from a set of input
+      # parameters to a set of output parameters. The transformation is defined
+      # as a docker image and command to run within that image. Each pipeline
+      # is run on a Google Compute Engine VM. A pipeline can be created with the
+      # `create` method and then later run with the `run` method, or a pipeline can
+      # be defined and run all at once with the `run` method.
+    "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline
+        # is called. Cannot be specified in the Pipeline used in the
+        # CreatePipelineRequest, and will be populated in the response to
+        # CreatePipeline and all subsequent Get and List calls. Indicates that the
+        # service has registered this pipeline.
+    "name": "A String", # Required. A user specified pipeline name that does not have to be unique.
+        # This name can be used for filtering Pipelines in ListPipelines.
+    "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have
+        # WRITE access.
     "outputParameters": [ # Output parameters of the pipeline.
-      { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-          "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-          "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+      { # Parameters facilitate setting and delivering data into the
+          # pipeline's execution environment. They are defined at create time,
+          # with optional defaults, and can be overridden at run time.
+          #
+          # If `localCopy` is unset, then the parameter specifies a string that
+          # is passed as-is into the pipeline, as the value of the environment
+          # variable with the given name.  A default value can be optionally
+          # specified at create time. The default can be overridden at run time
+          # using the inputs map. If no default is given, a value must be
+          # supplied at runtime.
+          #
+          # If `localCopy` is defined, then the parameter specifies a data
+          # source or sink, both in Google Cloud Storage and on the Docker container
+          # where the pipeline computation is run. The service account associated with
+          # the Pipeline (by
+          # default the project's Compute Engine service account) must have access to the
+          # Google Cloud Storage paths.
+          #
+          # At run time, the Google Cloud Storage paths can be overridden if a default
+          # was provided at create time, or must be set otherwise. The pipeline runner
+          # should add a key/value pair to either the inputs or outputs map. The
+          # indicated data copies will be carried out before/after pipeline execution,
+          # just as if the corresponding arguments were provided to `gsutil cp`.
+          #
+          # For example: Given the following `PipelineParameter`, specified
+          # in the `inputParameters` list:
+          #
+          # ```
+          # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+          # ```
+          #
+          # where `disk` is defined in the `PipelineResources` object as:
+          #
+          # ```
+          # {name: "pd1", mountPoint: "/mnt/disk/"}
+          # ```
+          #
+          # We create a disk named `pd1`, mount it on the host VM, and map
+          # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+          # runtime, an entry for `input_file` would be required in the inputs
+          # map, such as:
+          #
+          # ```
+          #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+          # ```
+          #
+          # This would generate the following gsutil call:
+          #
+          # ```
+          #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+          # ```
+          #
+          # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+          # Docker container. Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr><td>glob</td><td>directory</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # For outputs, the direction of the copy is reversed:
+          #
+          # ```
+          #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+          # ```
+          #
+          # Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr>
+          #       <td>file</td>
+          #       <td>directory - directory must already exist</td>
+          #     </tr>
+          #     <tr>
+          #       <td>glob</td>
+          #       <td>directory - directory will be created if it doesn't exist</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # One restriction due to docker limitations, is that for outputs that are found
+          # on the boot disk, the local path cannot be a glob and must be a file.
+        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+            # If `localCopy` is present, then this must be a Google Cloud Storage path
+            # beginning with `gs://`.
+        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+            # `LocalCopy` indicates where on the VM the file should be. The value
+            # given to this parameter (either at runtime or using `defaultValue`)
+            # must be the remote path where the file should be.
+          "path": "A String", # Required. The path within the user's docker container where
+              # this input should be localized to and from, relative to the specified
+              # disk's mount point. For example: file.txt,
+          "disk": "A String", # Required. The name of the disk where this parameter is
+              # located. Can be the name of one of the disks specified in the
+              # Resources field, or "boot", which represents the Docker
+              # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "description": "A String", # Human-readable description.
       },
     ],
     "inputParameters": [ # Input parameters of the pipeline.
-      { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-          "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-          "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+      { # Parameters facilitate setting and delivering data into the
+          # pipeline's execution environment. They are defined at create time,
+          # with optional defaults, and can be overridden at run time.
+          #
+          # If `localCopy` is unset, then the parameter specifies a string that
+          # is passed as-is into the pipeline, as the value of the environment
+          # variable with the given name.  A default value can be optionally
+          # specified at create time. The default can be overridden at run time
+          # using the inputs map. If no default is given, a value must be
+          # supplied at runtime.
+          #
+          # If `localCopy` is defined, then the parameter specifies a data
+          # source or sink, both in Google Cloud Storage and on the Docker container
+          # where the pipeline computation is run. The service account associated with
+          # the Pipeline (by
+          # default the project's Compute Engine service account) must have access to the
+          # Google Cloud Storage paths.
+          #
+          # At run time, the Google Cloud Storage paths can be overridden if a default
+          # was provided at create time, or must be set otherwise. The pipeline runner
+          # should add a key/value pair to either the inputs or outputs map. The
+          # indicated data copies will be carried out before/after pipeline execution,
+          # just as if the corresponding arguments were provided to `gsutil cp`.
+          #
+          # For example: Given the following `PipelineParameter`, specified
+          # in the `inputParameters` list:
+          #
+          # ```
+          # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+          # ```
+          #
+          # where `disk` is defined in the `PipelineResources` object as:
+          #
+          # ```
+          # {name: "pd1", mountPoint: "/mnt/disk/"}
+          # ```
+          #
+          # We create a disk named `pd1`, mount it on the host VM, and map
+          # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+          # runtime, an entry for `input_file` would be required in the inputs
+          # map, such as:
+          #
+          # ```
+          #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+          # ```
+          #
+          # This would generate the following gsutil call:
+          #
+          # ```
+          #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+          # ```
+          #
+          # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+          # Docker container. Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr><td>glob</td><td>directory</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # For outputs, the direction of the copy is reversed:
+          #
+          # ```
+          #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+          # ```
+          #
+          # Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr>
+          #       <td>file</td>
+          #       <td>directory - directory must already exist</td>
+          #     </tr>
+          #     <tr>
+          #       <td>glob</td>
+          #       <td>directory - directory will be created if it doesn't exist</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # One restriction due to docker limitations, is that for outputs that are found
+          # on the boot disk, the local path cannot be a glob and must be a file.
+        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+            # If `localCopy` is present, then this must be a Google Cloud Storage path
+            # beginning with `gs://`.
+        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+            # `LocalCopy` indicates where on the VM the file should be. The value
+            # given to this parameter (either at runtime or using `defaultValue`)
+            # must be the remote path where the file should be.
+          "path": "A String", # Required. The path within the user's docker container where
+              # this input should be localized to and from, relative to the specified
+              # disk's mount point. For example: file.txt,
+          "disk": "A String", # Required. The name of the disk where this parameter is
+              # located. Can be the name of one of the disks specified in the
+              # Resources field, or "boot", which represents the Docker
+              # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "description": "A String", # Human-readable description.
       },
     ],
     "docker": { # The Docker execuctor specification. # Specifies the docker run information.
-      "cmd": "A String", # Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.
-      "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image.
+      "cmd": "A String", # Required. The command or newline delimited script to run. The command
+          # string will be executed within a bash shell.
+          #
+          # If the command exits with a non-zero exit code, output parameter
+          # de-localization will be skipped and the pipeline operation's
+          # `error` field will be populated.
+          #
+          # Maximum command string length is 16384.
+      "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry.
+          # Users that run pipelines must have READ access to the image.
     },
-    "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb
-      "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+    "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run.
+        # Required fields:
+        #
+        # *
+        # minimumCpuCores
+        #
+        # *
+        # minimumRamGb
+      "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+          # feature that may go away. Defaults to false.
+          # Corresponds to `--no_address` flag for [gcloud compute instances create]
+          # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+          # In order to use this, must be true for both create time and run time.
+          # Cannot be true at run time if false at create time. If you need to ssh into
+          # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+          # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+          # only load docker images from Google Container Registry and not Docker Hub.
+          # Before using this, you must
+          # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
       "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-      "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+      "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+          # must be true for both create time and run time. Cannot be true at run time
+          # if false at create time.
       "disks": [ # Disks to attach.
         { # A Google Compute Engine disk resource specification.
-          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-          "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-          "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-          "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-          "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-          "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+          "name": "A String", # Required. The name of the disk that can be used in the pipeline
+              # parameters. Must be 1 - 63 characters.
+              # The name "boot" is reserved for system use.
+          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+              # This field is not applicable for local SSD.
+          "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+              # of the pipeline run, regardless of what this field is set to.
+          "source": "A String", # The full or partial URL of the persistent disk to attach. See
+              # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+              # and
+              # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+              # for more details.
+          "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+              # Specifies the path in the docker container where files on
+              # this disk should be located. For example, if `mountPoint`
+              # is `/mnt/disk`, and the parameter has `localPath`
+              # `inputs/file.txt`, the docker container can access the data at
+              # `/mnt/disk/inputs/file.txt`.
           "type": "A String", # Required. The type of the disk to create.
         },
       ],
       "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-      "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+      "zones": [ # List of Google Compute Engine availability zones to which resource
+          # creation will restricted. If empty, any zone may be chosen.
         "A String",
       ],
       "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
@@ -222,78 +736,351 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(pipelineId, x__xgafv=None)</code>
-  <pre>Deletes a pipeline based on ID. Caller must have WRITE permission to the project.
+    <code class="details" id="delete">delete(pipelineId=None, x__xgafv=None)</code>
+  <pre>Deletes a pipeline based on ID.
+
+Caller must have WRITE permission to the project.
 
 Args:
-  pipelineId: string, Caller must have WRITE access to the project in which this pipeline is defined. (required)
+  pipelineId: string, Caller must have WRITE access to the project in which this pipeline
+is defined. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(pipelineId, x__xgafv=None)</code>
-  <pre>Retrieves a pipeline based on ID. Caller must have READ permission to the project.
+    <code class="details" id="get">get(pipelineId=None, x__xgafv=None)</code>
+  <pre>Retrieves a pipeline based on ID.
+
+Caller must have READ permission to the project.
 
 Args:
-  pipelineId: string, Caller must have READ access to the project in which this pipeline is defined. (required)
+  pipelineId: string, Caller must have READ access to the project in which this pipeline
+is defined. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method.
-    "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.
-    "name": "A String", # Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines.
-    "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have WRITE access.
+    { # The pipeline object. Represents a transformation from a set of input
+      # parameters to a set of output parameters. The transformation is defined
+      # as a docker image and command to run within that image. Each pipeline
+      # is run on a Google Compute Engine VM. A pipeline can be created with the
+      # `create` method and then later run with the `run` method, or a pipeline can
+      # be defined and run all at once with the `run` method.
+    "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline
+        # is called. Cannot be specified in the Pipeline used in the
+        # CreatePipelineRequest, and will be populated in the response to
+        # CreatePipeline and all subsequent Get and List calls. Indicates that the
+        # service has registered this pipeline.
+    "name": "A String", # Required. A user specified pipeline name that does not have to be unique.
+        # This name can be used for filtering Pipelines in ListPipelines.
+    "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have
+        # WRITE access.
     "outputParameters": [ # Output parameters of the pipeline.
-      { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-          "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-          "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+      { # Parameters facilitate setting and delivering data into the
+          # pipeline's execution environment. They are defined at create time,
+          # with optional defaults, and can be overridden at run time.
+          #
+          # If `localCopy` is unset, then the parameter specifies a string that
+          # is passed as-is into the pipeline, as the value of the environment
+          # variable with the given name.  A default value can be optionally
+          # specified at create time. The default can be overridden at run time
+          # using the inputs map. If no default is given, a value must be
+          # supplied at runtime.
+          #
+          # If `localCopy` is defined, then the parameter specifies a data
+          # source or sink, both in Google Cloud Storage and on the Docker container
+          # where the pipeline computation is run. The service account associated with
+          # the Pipeline (by
+          # default the project's Compute Engine service account) must have access to the
+          # Google Cloud Storage paths.
+          #
+          # At run time, the Google Cloud Storage paths can be overridden if a default
+          # was provided at create time, or must be set otherwise. The pipeline runner
+          # should add a key/value pair to either the inputs or outputs map. The
+          # indicated data copies will be carried out before/after pipeline execution,
+          # just as if the corresponding arguments were provided to `gsutil cp`.
+          #
+          # For example: Given the following `PipelineParameter`, specified
+          # in the `inputParameters` list:
+          #
+          # ```
+          # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+          # ```
+          #
+          # where `disk` is defined in the `PipelineResources` object as:
+          #
+          # ```
+          # {name: "pd1", mountPoint: "/mnt/disk/"}
+          # ```
+          #
+          # We create a disk named `pd1`, mount it on the host VM, and map
+          # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+          # runtime, an entry for `input_file` would be required in the inputs
+          # map, such as:
+          #
+          # ```
+          #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+          # ```
+          #
+          # This would generate the following gsutil call:
+          #
+          # ```
+          #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+          # ```
+          #
+          # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+          # Docker container. Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr><td>glob</td><td>directory</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # For outputs, the direction of the copy is reversed:
+          #
+          # ```
+          #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+          # ```
+          #
+          # Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr>
+          #       <td>file</td>
+          #       <td>directory - directory must already exist</td>
+          #     </tr>
+          #     <tr>
+          #       <td>glob</td>
+          #       <td>directory - directory will be created if it doesn't exist</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # One restriction due to docker limitations, is that for outputs that are found
+          # on the boot disk, the local path cannot be a glob and must be a file.
+        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+            # If `localCopy` is present, then this must be a Google Cloud Storage path
+            # beginning with `gs://`.
+        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+            # `LocalCopy` indicates where on the VM the file should be. The value
+            # given to this parameter (either at runtime or using `defaultValue`)
+            # must be the remote path where the file should be.
+          "path": "A String", # Required. The path within the user's docker container where
+              # this input should be localized to and from, relative to the specified
+              # disk's mount point. For example: file.txt,
+          "disk": "A String", # Required. The name of the disk where this parameter is
+              # located. Can be the name of one of the disks specified in the
+              # Resources field, or "boot", which represents the Docker
+              # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "description": "A String", # Human-readable description.
       },
     ],
     "inputParameters": [ # Input parameters of the pipeline.
-      { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-          "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-          "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+      { # Parameters facilitate setting and delivering data into the
+          # pipeline's execution environment. They are defined at create time,
+          # with optional defaults, and can be overridden at run time.
+          #
+          # If `localCopy` is unset, then the parameter specifies a string that
+          # is passed as-is into the pipeline, as the value of the environment
+          # variable with the given name.  A default value can be optionally
+          # specified at create time. The default can be overridden at run time
+          # using the inputs map. If no default is given, a value must be
+          # supplied at runtime.
+          #
+          # If `localCopy` is defined, then the parameter specifies a data
+          # source or sink, both in Google Cloud Storage and on the Docker container
+          # where the pipeline computation is run. The service account associated with
+          # the Pipeline (by
+          # default the project's Compute Engine service account) must have access to the
+          # Google Cloud Storage paths.
+          #
+          # At run time, the Google Cloud Storage paths can be overridden if a default
+          # was provided at create time, or must be set otherwise. The pipeline runner
+          # should add a key/value pair to either the inputs or outputs map. The
+          # indicated data copies will be carried out before/after pipeline execution,
+          # just as if the corresponding arguments were provided to `gsutil cp`.
+          #
+          # For example: Given the following `PipelineParameter`, specified
+          # in the `inputParameters` list:
+          #
+          # ```
+          # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+          # ```
+          #
+          # where `disk` is defined in the `PipelineResources` object as:
+          #
+          # ```
+          # {name: "pd1", mountPoint: "/mnt/disk/"}
+          # ```
+          #
+          # We create a disk named `pd1`, mount it on the host VM, and map
+          # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+          # runtime, an entry for `input_file` would be required in the inputs
+          # map, such as:
+          #
+          # ```
+          #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+          # ```
+          #
+          # This would generate the following gsutil call:
+          #
+          # ```
+          #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+          # ```
+          #
+          # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+          # Docker container. Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr><td>glob</td><td>directory</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # For outputs, the direction of the copy is reversed:
+          #
+          # ```
+          #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+          # ```
+          #
+          # Acceptable paths are:
+          #
+          # <table>
+          #   <thead>
+          #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+          #   </thead>
+          #   <tbody>
+          #     <tr><td>file</td><td>file</td></tr>
+          #     <tr>
+          #       <td>file</td>
+          #       <td>directory - directory must already exist</td>
+          #     </tr>
+          #     <tr>
+          #       <td>glob</td>
+          #       <td>directory - directory will be created if it doesn't exist</td></tr>
+          #   </tbody>
+          # </table>
+          #
+          # One restriction due to docker limitations, is that for outputs that are found
+          # on the boot disk, the local path cannot be a glob and must be a file.
+        "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+            # If `localCopy` is present, then this must be a Google Cloud Storage path
+            # beginning with `gs://`.
+        "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+            # `LocalCopy` indicates where on the VM the file should be. The value
+            # given to this parameter (either at runtime or using `defaultValue`)
+            # must be the remote path where the file should be.
+          "path": "A String", # Required. The path within the user's docker container where
+              # this input should be localized to and from, relative to the specified
+              # disk's mount point. For example: file.txt,
+          "disk": "A String", # Required. The name of the disk where this parameter is
+              # located. Can be the name of one of the disks specified in the
+              # Resources field, or "boot", which represents the Docker
+              # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "description": "A String", # Human-readable description.
       },
     ],
     "docker": { # The Docker execuctor specification. # Specifies the docker run information.
-      "cmd": "A String", # Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.
-      "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image.
+      "cmd": "A String", # Required. The command or newline delimited script to run. The command
+          # string will be executed within a bash shell.
+          #
+          # If the command exits with a non-zero exit code, output parameter
+          # de-localization will be skipped and the pipeline operation's
+          # `error` field will be populated.
+          #
+          # Maximum command string length is 16384.
+      "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry.
+          # Users that run pipelines must have READ access to the image.
     },
-    "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb
-      "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+    "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run.
+        # Required fields:
+        #
+        # *
+        # minimumCpuCores
+        #
+        # *
+        # minimumRamGb
+      "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+          # feature that may go away. Defaults to false.
+          # Corresponds to `--no_address` flag for [gcloud compute instances create]
+          # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+          # In order to use this, must be true for both create time and run time.
+          # Cannot be true at run time if false at create time. If you need to ssh into
+          # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+          # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+          # only load docker images from Google Container Registry and not Docker Hub.
+          # Before using this, you must
+          # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
       "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-      "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+      "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+          # must be true for both create time and run time. Cannot be true at run time
+          # if false at create time.
       "disks": [ # Disks to attach.
         { # A Google Compute Engine disk resource specification.
-          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-          "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-          "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-          "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-          "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-          "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+          "name": "A String", # Required. The name of the disk that can be used in the pipeline
+              # parameters. Must be 1 - 63 characters.
+              # The name "boot" is reserved for system use.
+          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+              # This field is not applicable for local SSD.
+          "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+              # of the pipeline run, regardless of what this field is set to.
+          "source": "A String", # The full or partial URL of the persistent disk to attach. See
+              # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+              # and
+              # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+              # for more details.
+          "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+              # Specifies the path in the docker container where files on
+              # this disk should be located. For example, if `mountPoint`
+              # is `/mnt/disk`, and the parameter has `localPath`
+              # `inputs/file.txt`, the docker container can access the data at
+              # `/mnt/disk/inputs/file.txt`.
           "type": "A String", # Required. The type of the disk to create.
         },
       ],
       "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-      "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+      "zones": [ # List of Google Compute Engine availability zones to which resource
+          # creation will restricted. If empty, any zone may be chosen.
         "A String",
       ],
       "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
@@ -304,23 +1091,29 @@
 
 <div class="method">
     <code class="details" id="getControllerConfig">getControllerConfig(validationToken=None, x__xgafv=None, operationId=None)</code>
-  <pre>Gets controller configuration information. Should only be called by VMs created by the Pipelines Service and not by end users.
+  <pre>Gets controller configuration information. Should only be called
+by VMs created by the Pipelines Service and not by end users.
 
 Args:
   validationToken: string, A parameter
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   operationId: string, The operation to retrieve controller configuration for.
 
 Returns:
   An object of the form:
 
-    { # Stores the information that the controller will fetch from the server in order to run. Should only be used by VMs created by the Pipelines Service and not by end users.
+    { # Stores the information that the controller will fetch from the
+      # server in order to run. Should only be used by VMs created by the
+      # Pipelines Service and not by end users.
     "cmd": "A String",
     "machineType": "A String",
-    "gcsLogPath": "A String",
     "vars": {
       "a_key": "A String",
     },
+    "gcsLogPath": "A String",
     "gcsSinks": {
       "a_key": {
         "values": [
@@ -344,68 +1137,335 @@
 
 <div class="method">
     <code class="details" id="list">list(pageSize=None, projectId=None, namePrefix=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists pipelines. Caller must have READ permission to the project.
+  <pre>Lists pipelines.
+
+Caller must have READ permission to the project.
 
 Args:
-  pageSize: integer, Number of pipelines to return at once. Defaults to 256, and max is 2048.
-  projectId: string, Required. The name of the project to search for pipelines. Caller must have READ access to this project.
-  namePrefix: string, Pipelines with names that match this prefix should be returned. If unspecified, all pipelines in the project, up to `pageSize`, will be returned.
-  pageToken: string, Token to use to indicate where to start getting results. If unspecified, returns the first page of results.
+  pageSize: integer, Number of pipelines to return at once. Defaults to 256, and max
+is 2048.
+  projectId: string, Required. The name of the project to search for pipelines. Caller
+must have READ access to this project.
+  namePrefix: string, Pipelines with names that match this prefix should be
+returned.  If unspecified, all pipelines in the project, up to
+`pageSize`, will be returned.
+  pageToken: string, Token to use to indicate where to start getting results.
+If unspecified, returns the first page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # The response of ListPipelines. Contains at most `pageSize` pipelines. If it contains `pageSize` pipelines, and more pipelines exist, then `nextPageToken` will be populated and should be used as the `pageToken` argument to a subsequent ListPipelines request.
+    { # The response of ListPipelines. Contains at most `pageSize`
+      # pipelines. If it contains `pageSize` pipelines, and more pipelines
+      # exist, then `nextPageToken` will be populated and should be
+      # used as the `pageToken` argument to a subsequent ListPipelines
+      # request.
     "nextPageToken": "A String", # The token to use to get the next page of results.
     "pipelines": [ # The matched pipelines.
-      { # The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method.
-        "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.
-        "name": "A String", # Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines.
-        "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have WRITE access.
+      { # The pipeline object. Represents a transformation from a set of input
+          # parameters to a set of output parameters. The transformation is defined
+          # as a docker image and command to run within that image. Each pipeline
+          # is run on a Google Compute Engine VM. A pipeline can be created with the
+          # `create` method and then later run with the `run` method, or a pipeline can
+          # be defined and run all at once with the `run` method.
+        "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline
+            # is called. Cannot be specified in the Pipeline used in the
+            # CreatePipelineRequest, and will be populated in the response to
+            # CreatePipeline and all subsequent Get and List calls. Indicates that the
+            # service has registered this pipeline.
+        "name": "A String", # Required. A user specified pipeline name that does not have to be unique.
+            # This name can be used for filtering Pipelines in ListPipelines.
+        "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have
+            # WRITE access.
         "outputParameters": [ # Output parameters of the pipeline.
-          { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-            "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-            "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-              "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-              "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+          { # Parameters facilitate setting and delivering data into the
+              # pipeline's execution environment. They are defined at create time,
+              # with optional defaults, and can be overridden at run time.
+              #
+              # If `localCopy` is unset, then the parameter specifies a string that
+              # is passed as-is into the pipeline, as the value of the environment
+              # variable with the given name.  A default value can be optionally
+              # specified at create time. The default can be overridden at run time
+              # using the inputs map. If no default is given, a value must be
+              # supplied at runtime.
+              #
+              # If `localCopy` is defined, then the parameter specifies a data
+              # source or sink, both in Google Cloud Storage and on the Docker container
+              # where the pipeline computation is run. The service account associated with
+              # the Pipeline (by
+              # default the project's Compute Engine service account) must have access to the
+              # Google Cloud Storage paths.
+              #
+              # At run time, the Google Cloud Storage paths can be overridden if a default
+              # was provided at create time, or must be set otherwise. The pipeline runner
+              # should add a key/value pair to either the inputs or outputs map. The
+              # indicated data copies will be carried out before/after pipeline execution,
+              # just as if the corresponding arguments were provided to `gsutil cp`.
+              #
+              # For example: Given the following `PipelineParameter`, specified
+              # in the `inputParameters` list:
+              #
+              # ```
+              # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+              # ```
+              #
+              # where `disk` is defined in the `PipelineResources` object as:
+              #
+              # ```
+              # {name: "pd1", mountPoint: "/mnt/disk/"}
+              # ```
+              #
+              # We create a disk named `pd1`, mount it on the host VM, and map
+              # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+              # runtime, an entry for `input_file` would be required in the inputs
+              # map, such as:
+              #
+              # ```
+              #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+              # ```
+              #
+              # This would generate the following gsutil call:
+              #
+              # ```
+              #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+              # ```
+              #
+              # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+              # Docker container. Acceptable paths are:
+              #
+              # <table>
+              #   <thead>
+              #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+              #   </thead>
+              #   <tbody>
+              #     <tr><td>file</td><td>file</td></tr>
+              #     <tr><td>glob</td><td>directory</td></tr>
+              #   </tbody>
+              # </table>
+              #
+              # For outputs, the direction of the copy is reversed:
+              #
+              # ```
+              #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+              # ```
+              #
+              # Acceptable paths are:
+              #
+              # <table>
+              #   <thead>
+              #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+              #   </thead>
+              #   <tbody>
+              #     <tr><td>file</td><td>file</td></tr>
+              #     <tr>
+              #       <td>file</td>
+              #       <td>directory - directory must already exist</td>
+              #     </tr>
+              #     <tr>
+              #       <td>glob</td>
+              #       <td>directory - directory will be created if it doesn't exist</td></tr>
+              #   </tbody>
+              # </table>
+              #
+              # One restriction due to docker limitations, is that for outputs that are found
+              # on the boot disk, the local path cannot be a glob and must be a file.
+            "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+                # If `localCopy` is present, then this must be a Google Cloud Storage path
+                # beginning with `gs://`.
+            "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+                # `LocalCopy` indicates where on the VM the file should be. The value
+                # given to this parameter (either at runtime or using `defaultValue`)
+                # must be the remote path where the file should be.
+              "path": "A String", # Required. The path within the user's docker container where
+                  # this input should be localized to and from, relative to the specified
+                  # disk's mount point. For example: file.txt,
+              "disk": "A String", # Required. The name of the disk where this parameter is
+                  # located. Can be the name of one of the disks specified in the
+                  # Resources field, or "boot", which represents the Docker
+                  # instance's boot disk and has a mount point of `/`.
             },
-            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+                # as the key to the input and output maps in RunPipeline.
             "description": "A String", # Human-readable description.
           },
         ],
         "inputParameters": [ # Input parameters of the pipeline.
-          { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-            "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-            "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-              "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-              "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+          { # Parameters facilitate setting and delivering data into the
+              # pipeline's execution environment. They are defined at create time,
+              # with optional defaults, and can be overridden at run time.
+              #
+              # If `localCopy` is unset, then the parameter specifies a string that
+              # is passed as-is into the pipeline, as the value of the environment
+              # variable with the given name.  A default value can be optionally
+              # specified at create time. The default can be overridden at run time
+              # using the inputs map. If no default is given, a value must be
+              # supplied at runtime.
+              #
+              # If `localCopy` is defined, then the parameter specifies a data
+              # source or sink, both in Google Cloud Storage and on the Docker container
+              # where the pipeline computation is run. The service account associated with
+              # the Pipeline (by
+              # default the project's Compute Engine service account) must have access to the
+              # Google Cloud Storage paths.
+              #
+              # At run time, the Google Cloud Storage paths can be overridden if a default
+              # was provided at create time, or must be set otherwise. The pipeline runner
+              # should add a key/value pair to either the inputs or outputs map. The
+              # indicated data copies will be carried out before/after pipeline execution,
+              # just as if the corresponding arguments were provided to `gsutil cp`.
+              #
+              # For example: Given the following `PipelineParameter`, specified
+              # in the `inputParameters` list:
+              #
+              # ```
+              # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+              # ```
+              #
+              # where `disk` is defined in the `PipelineResources` object as:
+              #
+              # ```
+              # {name: "pd1", mountPoint: "/mnt/disk/"}
+              # ```
+              #
+              # We create a disk named `pd1`, mount it on the host VM, and map
+              # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+              # runtime, an entry for `input_file` would be required in the inputs
+              # map, such as:
+              #
+              # ```
+              #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+              # ```
+              #
+              # This would generate the following gsutil call:
+              #
+              # ```
+              #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+              # ```
+              #
+              # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+              # Docker container. Acceptable paths are:
+              #
+              # <table>
+              #   <thead>
+              #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+              #   </thead>
+              #   <tbody>
+              #     <tr><td>file</td><td>file</td></tr>
+              #     <tr><td>glob</td><td>directory</td></tr>
+              #   </tbody>
+              # </table>
+              #
+              # For outputs, the direction of the copy is reversed:
+              #
+              # ```
+              #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+              # ```
+              #
+              # Acceptable paths are:
+              #
+              # <table>
+              #   <thead>
+              #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+              #   </thead>
+              #   <tbody>
+              #     <tr><td>file</td><td>file</td></tr>
+              #     <tr>
+              #       <td>file</td>
+              #       <td>directory - directory must already exist</td>
+              #     </tr>
+              #     <tr>
+              #       <td>glob</td>
+              #       <td>directory - directory will be created if it doesn't exist</td></tr>
+              #   </tbody>
+              # </table>
+              #
+              # One restriction due to docker limitations, is that for outputs that are found
+              # on the boot disk, the local path cannot be a glob and must be a file.
+            "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+                # If `localCopy` is present, then this must be a Google Cloud Storage path
+                # beginning with `gs://`.
+            "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+                # `LocalCopy` indicates where on the VM the file should be. The value
+                # given to this parameter (either at runtime or using `defaultValue`)
+                # must be the remote path where the file should be.
+              "path": "A String", # Required. The path within the user's docker container where
+                  # this input should be localized to and from, relative to the specified
+                  # disk's mount point. For example: file.txt,
+              "disk": "A String", # Required. The name of the disk where this parameter is
+                  # located. Can be the name of one of the disks specified in the
+                  # Resources field, or "boot", which represents the Docker
+                  # instance's boot disk and has a mount point of `/`.
             },
-            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+                # as the key to the input and output maps in RunPipeline.
             "description": "A String", # Human-readable description.
           },
         ],
         "docker": { # The Docker execuctor specification. # Specifies the docker run information.
-          "cmd": "A String", # Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.
-          "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image.
+          "cmd": "A String", # Required. The command or newline delimited script to run. The command
+              # string will be executed within a bash shell.
+              #
+              # If the command exits with a non-zero exit code, output parameter
+              # de-localization will be skipped and the pipeline operation's
+              # `error` field will be populated.
+              #
+              # Maximum command string length is 16384.
+          "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry.
+              # Users that run pipelines must have READ access to the image.
         },
-        "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb
-          "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+        "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run.
+            # Required fields:
+            #
+            # *
+            # minimumCpuCores
+            #
+            # *
+            # minimumRamGb
+          "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+              # feature that may go away. Defaults to false.
+              # Corresponds to `--no_address` flag for [gcloud compute instances create]
+              # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+              # In order to use this, must be true for both create time and run time.
+              # Cannot be true at run time if false at create time. If you need to ssh into
+              # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+              # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+              # only load docker images from Google Container Registry and not Docker Hub.
+              # Before using this, you must
+              # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
           "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-          "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+          "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+              # must be true for both create time and run time. Cannot be true at run time
+              # if false at create time.
           "disks": [ # Disks to attach.
             { # A Google Compute Engine disk resource specification.
-              "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-              "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-              "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-              "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-              "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-              "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+              "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                  # parameters. Must be 1 - 63 characters.
+                  # The name "boot" is reserved for system use.
+              "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                  # This field is not applicable for local SSD.
+              "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+                  # of the pipeline run, regardless of what this field is set to.
+              "source": "A String", # The full or partial URL of the persistent disk to attach. See
+                  # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+                  # and
+                  # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+                  # for more details.
+              "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+                  # Specifies the path in the docker container where files on
+                  # this disk should be located. For example, if `mountPoint`
+                  # is `/mnt/disk`, and the parameter has `localPath`
+                  # `inputs/file.txt`, the docker container can access the data at
+                  # `/mnt/disk/inputs/file.txt`.
               "type": "A String", # Required. The type of the disk to create.
             },
           ],
           "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-          "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+          "zones": [ # List of Google Compute Engine availability zones to which resource
+              # creation will restricted. If empty, any zone may be chosen.
             "A String",
           ],
           "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
@@ -432,104 +1492,435 @@
 
 <div class="method">
     <code class="details" id="run">run(body, x__xgafv=None)</code>
-  <pre>Runs a pipeline. If `pipelineId` is specified in the request, then run a saved pipeline. If `ephemeralPipeline` is specified, then run that pipeline once without saving a copy. The caller must have READ permission to the project where the pipeline is stored and WRITE permission to the project where the pipeline will be run, as VMs will be created and storage will be used.
+  <pre>Runs a pipeline. If `pipelineId` is specified in the request, then
+run a saved pipeline. If `ephemeralPipeline` is specified, then run
+that pipeline once without saving a copy.
+
+The caller must have READ permission to the project where the pipeline
+is stored and WRITE permission to the project where the pipeline will be
+run, as VMs will be created and storage will be used.
+
+If a pipeline operation is still running after 6 days, it will be canceled.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request to run a pipeline. If `pipelineId` is specified, it refers to a saved pipeline created with CreatePipeline and set as the `pipelineId` of the returned Pipeline object. If `ephemeralPipeline` is specified, that pipeline is run once with the given args and not saved. It is an error to specify both `pipelineId` and `ephemeralPipeline`. `pipelineArgs` must be specified.
+{ # The request to run a pipeline. If `pipelineId` is specified, it
+      # refers to a saved pipeline created with CreatePipeline and set as
+      # the `pipelineId` of the returned Pipeline object. If
+      # `ephemeralPipeline` is specified, that pipeline is run once
+      # with the given args and not saved. It is an error to specify both
+      # `pipelineId` and `ephemeralPipeline`. `pipelineArgs`
+      # must be specified.
     "pipelineArgs": { # The pipeline run arguments. # The arguments to use when running this pipeline.
-      "inputs": { # Pipeline input arguments; keys are defined in the pipeline documentation. All input parameters that do not have default values must be specified. If parameters with defaults are specified here, the defaults will be overridden.
+      "inputs": { # Pipeline input arguments; keys are defined in the pipeline documentation.
+          # All input parameters that do not have default values  must be specified.
+          # If parameters with defaults are specified here, the defaults will be
+          # overridden.
         "a_key": "A String",
       },
-      "logging": { # The logging options for the pipeline run. # Required. Logging options. Used by the service to communicate results to the user.
-        "gcsPath": "A String", # The location in Google Cloud Storage to which the pipeline logs will be copied. Can be specified as a fully qualified directory path, in which case logs will be output with a unique identifier as the filename in that directory, or as a fully specified path, which must end in `.log`, in which case that path will be used, and the user must ensure that logs are not overwritten. Stdout and stderr logs from the run are also generated and output as `-stdout.log` and `-stderr.log`.
+      "logging": { # The logging options for the pipeline run. # Required. Logging options. Used by the service to communicate results
+          # to the user.
+        "gcsPath": "A String", # The location in Google Cloud Storage to which the pipeline logs
+            # will be copied. Can be specified as a fully qualified directory
+            # path, in which case logs will be output with a unique identifier
+            # as the filename in that directory, or as a fully specified path,
+            # which must end in `.log`, in which case that path will be
+            # used, and the user must ensure that logs are not
+            # overwritten. Stdout and stderr logs from the run are also
+            # generated and output as `-stdout.log` and `-stderr.log`.
       },
-      "projectId": "A String", # Required. The project in which to run the pipeline. The caller must have WRITER access to all Google Cloud services and resources (e.g. Google Compute Engine) will be used.
-      "labels": { # Labels to apply to this pipeline run. Labels will also be applied to compute resources (VM, disks) created by this pipeline run. When listing operations, operations can filtered by labels. Label keys may not be empty; label values may be empty. Non-empty labels must be 1-63 characters long, and comply with [RFC1035] (https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "outputs": { # Pipeline output arguments; keys are defined in the pipeline
+          # documentation.  All output parameters of without default values
+          # must be specified.  If parameters with defaults are specified
+          # here, the defaults will be overridden.
         "a_key": "A String",
       },
-      "serviceAccount": { # A Google Cloud Service Account. # The Google Cloud Service Account that will be used to access data and services. By default, the compute service account associated with `projectId` is used.
-        "scopes": [ # List of scopes to be enabled for this service account on the VM. The following scopes are automatically included: * https://www.googleapis.com/auth/compute * https://www.googleapis.com/auth/devstorage.full_control * https://www.googleapis.com/auth/genomics * https://www.googleapis.com/auth/logging.write * https://www.googleapis.com/auth/monitoring.write
+      "labels": { # Labels to apply to this pipeline run. Labels will also be applied to
+          # compute resources (VM, disks) created by this pipeline run. When listing
+          # operations, operations can filtered by labels.
+          # Label keys may not be empty; label values may be empty. Non-empty labels
+          # must be 1-63 characters long, and comply with [RFC1035]
+          # (https://www.ietf.org/rfc/rfc1035.txt).
+          # Specifically, the name must be 1-63 characters long and match the regular
+          # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
+          # character must be a lowercase letter, and all following characters must be
+          # a dash, lowercase letter, or digit, except the last character, which cannot
+          # be a dash.
+        "a_key": "A String",
+      },
+      "serviceAccount": { # A Google Cloud Service Account. # The Google Cloud Service Account that will be used to access data and
+          # services. By default, the compute service account associated with
+          # `projectId` is used.
+        "scopes": [ # List of scopes to be enabled for this service account on the VM.
+            # The following scopes are automatically included:
+            #
+            # * https://www.googleapis.com/auth/compute
+            # * https://www.googleapis.com/auth/devstorage.full_control
+            # * https://www.googleapis.com/auth/genomics
+            # * https://www.googleapis.com/auth/logging.write
+            # * https://www.googleapis.com/auth/monitoring.write
           "A String",
         ],
-        "email": "A String", # Email address of the service account. Defaults to `default`, which uses the compute service account associated with the project.
+        "email": "A String", # Email address of the service account. Defaults to `default`,
+            # which uses the compute service account associated with the project.
       },
-      "clientId": "A String", # This field is deprecated. Use `labels` instead. Client-specified pipeline operation identifier.
-      "outputs": { # Pipeline output arguments; keys are defined in the pipeline documentation. All output parameters of without default values must be specified. If parameters with defaults are specified here, the defaults will be overridden.
-        "a_key": "A String",
-      },
-      "keepVmAliveOnFailureDuration": "A String", # How long to keep the VM up after a failure (for example docker command failed, copying input or output files failed, etc). While the VM is up, one can ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.
+      "clientId": "A String", # This field is deprecated. Use `labels` instead. Client-specified pipeline
+          # operation identifier.
+      "projectId": "A String", # Required. The project in which to run the pipeline. The caller must have
+          # WRITER access to all Google Cloud services and resources (e.g. Google
+          # Compute Engine) will be used.
+      "keepVmAliveOnFailureDuration": "A String", # How long to keep the VM up after a failure (for example docker command
+          # failed, copying input or output files failed, etc). While the VM is up, one
+          # can ssh into the VM to debug. Default is 0; maximum allowed value is 1 day.
       "resources": { # The system resources for the pipeline run. # Specifies resource requirements/overrides for the pipeline run.
-        "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+        "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+            # feature that may go away. Defaults to false.
+            # Corresponds to `--no_address` flag for [gcloud compute instances create]
+            # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+            # In order to use this, must be true for both create time and run time.
+            # Cannot be true at run time if false at create time. If you need to ssh into
+            # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+            # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+            # only load docker images from Google Container Registry and not Docker Hub.
+            # Before using this, you must
+            # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
         "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-        "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+        "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+            # must be true for both create time and run time. Cannot be true at run time
+            # if false at create time.
         "disks": [ # Disks to attach.
           { # A Google Compute Engine disk resource specification.
-            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-            "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-            "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-            "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-            "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-            "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+            "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                # parameters. Must be 1 - 63 characters.
+                # The name "boot" is reserved for system use.
+            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                # This field is not applicable for local SSD.
+            "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+                # of the pipeline run, regardless of what this field is set to.
+            "source": "A String", # The full or partial URL of the persistent disk to attach. See
+                # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+                # and
+                # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+                # for more details.
+            "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+                # Specifies the path in the docker container where files on
+                # this disk should be located. For example, if `mountPoint`
+                # is `/mnt/disk`, and the parameter has `localPath`
+                # `inputs/file.txt`, the docker container can access the data at
+                # `/mnt/disk/inputs/file.txt`.
             "type": "A String", # Required. The type of the disk to create.
           },
         ],
         "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-        "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+        "zones": [ # List of Google Compute Engine availability zones to which resource
+            # creation will restricted. If empty, any zone may be chosen.
           "A String",
         ],
         "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
       },
     },
-    "ephemeralPipeline": { # The pipeline object. Represents a transformation from a set of input parameters to a set of output parameters. The transformation is defined as a docker image and command to run within that image. Each pipeline is run on a Google Compute Engine VM. A pipeline can be created with the `create` method and then later run with the `run` method, or a pipeline can be defined and run all at once with the `run` method. # A new pipeline object to run once and then delete.
-      "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline is called. Cannot be specified in the Pipeline used in the CreatePipelineRequest, and will be populated in the response to CreatePipeline and all subsequent Get and List calls. Indicates that the service has registered this pipeline.
-      "name": "A String", # Required. A user specified pipeline name that does not have to be unique. This name can be used for filtering Pipelines in ListPipelines.
-      "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have WRITE access.
+    "ephemeralPipeline": { # The pipeline object. Represents a transformation from a set of input # A new pipeline object to run once and then delete.
+        # parameters to a set of output parameters. The transformation is defined
+        # as a docker image and command to run within that image. Each pipeline
+        # is run on a Google Compute Engine VM. A pipeline can be created with the
+        # `create` method and then later run with the `run` method, or a pipeline can
+        # be defined and run all at once with the `run` method.
+      "pipelineId": "A String", # Unique pipeline id that is generated by the service when CreatePipeline
+          # is called. Cannot be specified in the Pipeline used in the
+          # CreatePipelineRequest, and will be populated in the response to
+          # CreatePipeline and all subsequent Get and List calls. Indicates that the
+          # service has registered this pipeline.
+      "name": "A String", # Required. A user specified pipeline name that does not have to be unique.
+          # This name can be used for filtering Pipelines in ListPipelines.
+      "projectId": "A String", # Required. The project in which to create the pipeline. The caller must have
+          # WRITE access.
       "outputParameters": [ # Output parameters of the pipeline.
-        { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-          "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-          "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-            "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-            "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+        { # Parameters facilitate setting and delivering data into the
+            # pipeline's execution environment. They are defined at create time,
+            # with optional defaults, and can be overridden at run time.
+            #
+            # If `localCopy` is unset, then the parameter specifies a string that
+            # is passed as-is into the pipeline, as the value of the environment
+            # variable with the given name.  A default value can be optionally
+            # specified at create time. The default can be overridden at run time
+            # using the inputs map. If no default is given, a value must be
+            # supplied at runtime.
+            #
+            # If `localCopy` is defined, then the parameter specifies a data
+            # source or sink, both in Google Cloud Storage and on the Docker container
+            # where the pipeline computation is run. The service account associated with
+            # the Pipeline (by
+            # default the project's Compute Engine service account) must have access to the
+            # Google Cloud Storage paths.
+            #
+            # At run time, the Google Cloud Storage paths can be overridden if a default
+            # was provided at create time, or must be set otherwise. The pipeline runner
+            # should add a key/value pair to either the inputs or outputs map. The
+            # indicated data copies will be carried out before/after pipeline execution,
+            # just as if the corresponding arguments were provided to `gsutil cp`.
+            #
+            # For example: Given the following `PipelineParameter`, specified
+            # in the `inputParameters` list:
+            #
+            # ```
+            # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+            # ```
+            #
+            # where `disk` is defined in the `PipelineResources` object as:
+            #
+            # ```
+            # {name: "pd1", mountPoint: "/mnt/disk/"}
+            # ```
+            #
+            # We create a disk named `pd1`, mount it on the host VM, and map
+            # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+            # runtime, an entry for `input_file` would be required in the inputs
+            # map, such as:
+            #
+            # ```
+            #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+            # ```
+            #
+            # This would generate the following gsutil call:
+            #
+            # ```
+            #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+            # ```
+            #
+            # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+            # Docker container. Acceptable paths are:
+            #
+            # <table>
+            #   <thead>
+            #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+            #   </thead>
+            #   <tbody>
+            #     <tr><td>file</td><td>file</td></tr>
+            #     <tr><td>glob</td><td>directory</td></tr>
+            #   </tbody>
+            # </table>
+            #
+            # For outputs, the direction of the copy is reversed:
+            #
+            # ```
+            #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+            # ```
+            #
+            # Acceptable paths are:
+            #
+            # <table>
+            #   <thead>
+            #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+            #   </thead>
+            #   <tbody>
+            #     <tr><td>file</td><td>file</td></tr>
+            #     <tr>
+            #       <td>file</td>
+            #       <td>directory - directory must already exist</td>
+            #     </tr>
+            #     <tr>
+            #       <td>glob</td>
+            #       <td>directory - directory will be created if it doesn't exist</td></tr>
+            #   </tbody>
+            # </table>
+            #
+            # One restriction due to docker limitations, is that for outputs that are found
+            # on the boot disk, the local path cannot be a glob and must be a file.
+          "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+              # If `localCopy` is present, then this must be a Google Cloud Storage path
+              # beginning with `gs://`.
+          "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+              # `LocalCopy` indicates where on the VM the file should be. The value
+              # given to this parameter (either at runtime or using `defaultValue`)
+              # must be the remote path where the file should be.
+            "path": "A String", # Required. The path within the user's docker container where
+                # this input should be localized to and from, relative to the specified
+                # disk's mount point. For example: file.txt,
+            "disk": "A String", # Required. The name of the disk where this parameter is
+                # located. Can be the name of one of the disks specified in the
+                # Resources field, or "boot", which represents the Docker
+                # instance's boot disk and has a mount point of `/`.
           },
-          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+              # as the key to the input and output maps in RunPipeline.
           "description": "A String", # Human-readable description.
         },
       ],
       "inputParameters": [ # Input parameters of the pipeline.
-        { # Parameters facilitate setting and delivering data into the pipeline's execution environment. They are defined at create time, with optional defaults, and can be overridden at run time. If `localCopy` is unset, then the parameter specifies a string that is passed as-is into the pipeline, as the value of the environment variable with the given name. A default value can be optionally specified at create time. The default can be overridden at run time using the inputs map. If no default is given, a value must be supplied at runtime. If `localCopy` is defined, then the parameter specifies a data source or sink, both in Google Cloud Storage and on the Docker container where the pipeline computation is run. The service account associated with the Pipeline (by default the project's Compute Engine service account) must have access to the Google Cloud Storage paths. At run time, the Google Cloud Storage paths can be overridden if a default was provided at create time, or must be set otherwise. The pipeline runner should add a key/value pair to either the inputs or outputs map. The indicated data copies will be carried out before/after pipeline execution, just as if the corresponding arguments were provided to `gsutil cp`. For example: Given the following `PipelineParameter`, specified in the `inputParameters` list: ``` {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}} ``` where `disk` is defined in the `PipelineResources` object as: ``` {name: "pd1", mountPoint: "/mnt/disk/"} ``` We create a disk named `pd1`, mount it on the host VM, and map `/mnt/pd1` to `/mnt/disk` in the docker container. At runtime, an entry for `input_file` would be required in the inputs map, such as: ``` inputs["input_file"] = "gs://my-bucket/bar.txt" ``` This would generate the following gsutil call: ``` gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt ``` The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the Docker container. Acceptable paths are:   Google Cloud storage pathLocal path   filefile globdirectory   For outputs, the direction of the copy is reversed: ``` gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt ``` Acceptable paths are:   Local pathGoogle Cloud Storage path   filefile  file directory - directory must already exist   glob directory - directory will be created if it doesn't exist   One restriction due to docker limitations, is that for outputs that are found on the boot disk, the local path cannot be a glob and must be a file.
-          "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime. If `localCopy` is present, then this must be a Google Cloud Storage path beginning with `gs://`.
-          "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM. `LocalCopy` indicates where on the VM the file should be. The value given to this parameter (either at runtime or using `defaultValue`) must be the remote path where the file should be.
-            "path": "A String", # Required. The path within the user's docker container where this input should be localized to and from, relative to the specified disk's mount point. For example: file.txt,
-            "disk": "A String", # Required. The name of the disk where this parameter is located. Can be the name of one of the disks specified in the Resources field, or "boot", which represents the Docker instance's boot disk and has a mount point of `/`.
+        { # Parameters facilitate setting and delivering data into the
+            # pipeline's execution environment. They are defined at create time,
+            # with optional defaults, and can be overridden at run time.
+            #
+            # If `localCopy` is unset, then the parameter specifies a string that
+            # is passed as-is into the pipeline, as the value of the environment
+            # variable with the given name.  A default value can be optionally
+            # specified at create time. The default can be overridden at run time
+            # using the inputs map. If no default is given, a value must be
+            # supplied at runtime.
+            #
+            # If `localCopy` is defined, then the parameter specifies a data
+            # source or sink, both in Google Cloud Storage and on the Docker container
+            # where the pipeline computation is run. The service account associated with
+            # the Pipeline (by
+            # default the project's Compute Engine service account) must have access to the
+            # Google Cloud Storage paths.
+            #
+            # At run time, the Google Cloud Storage paths can be overridden if a default
+            # was provided at create time, or must be set otherwise. The pipeline runner
+            # should add a key/value pair to either the inputs or outputs map. The
+            # indicated data copies will be carried out before/after pipeline execution,
+            # just as if the corresponding arguments were provided to `gsutil cp`.
+            #
+            # For example: Given the following `PipelineParameter`, specified
+            # in the `inputParameters` list:
+            #
+            # ```
+            # {name: "input_file", localCopy: {path: "file.txt", disk: "pd1"}}
+            # ```
+            #
+            # where `disk` is defined in the `PipelineResources` object as:
+            #
+            # ```
+            # {name: "pd1", mountPoint: "/mnt/disk/"}
+            # ```
+            #
+            # We create a disk named `pd1`, mount it on the host VM, and map
+            # `/mnt/pd1` to `/mnt/disk` in the docker container.  At
+            # runtime, an entry for `input_file` would be required in the inputs
+            # map, such as:
+            #
+            # ```
+            #   inputs["input_file"] = "gs://my-bucket/bar.txt"
+            # ```
+            #
+            # This would generate the following gsutil call:
+            #
+            # ```
+            #   gsutil cp gs://my-bucket/bar.txt /mnt/pd1/file.txt
+            # ```
+            #
+            # The file `/mnt/pd1/file.txt` maps to `/mnt/disk/file.txt` in the
+            # Docker container. Acceptable paths are:
+            #
+            # <table>
+            #   <thead>
+            #     <tr><th>Google Cloud storage path</th><th>Local path</th></tr>
+            #   </thead>
+            #   <tbody>
+            #     <tr><td>file</td><td>file</td></tr>
+            #     <tr><td>glob</td><td>directory</td></tr>
+            #   </tbody>
+            # </table>
+            #
+            # For outputs, the direction of the copy is reversed:
+            #
+            # ```
+            #   gsutil cp /mnt/disk/file.txt gs://my-bucket/bar.txt
+            # ```
+            #
+            # Acceptable paths are:
+            #
+            # <table>
+            #   <thead>
+            #     <tr><th>Local path</th><th>Google Cloud Storage path</th></tr>
+            #   </thead>
+            #   <tbody>
+            #     <tr><td>file</td><td>file</td></tr>
+            #     <tr>
+            #       <td>file</td>
+            #       <td>directory - directory must already exist</td>
+            #     </tr>
+            #     <tr>
+            #       <td>glob</td>
+            #       <td>directory - directory will be created if it doesn't exist</td></tr>
+            #   </tbody>
+            # </table>
+            #
+            # One restriction due to docker limitations, is that for outputs that are found
+            # on the boot disk, the local path cannot be a glob and must be a file.
+          "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
+              # If `localCopy` is present, then this must be a Google Cloud Storage path
+              # beginning with `gs://`.
+          "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
+              # `LocalCopy` indicates where on the VM the file should be. The value
+              # given to this parameter (either at runtime or using `defaultValue`)
+              # must be the remote path where the file should be.
+            "path": "A String", # Required. The path within the user's docker container where
+                # this input should be localized to and from, relative to the specified
+                # disk's mount point. For example: file.txt,
+            "disk": "A String", # Required. The name of the disk where this parameter is
+                # located. Can be the name of one of the disks specified in the
+                # Resources field, or "boot", which represents the Docker
+                # instance's boot disk and has a mount point of `/`.
           },
-          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string as the key to the input and output maps in RunPipeline.
+          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+              # as the key to the input and output maps in RunPipeline.
           "description": "A String", # Human-readable description.
         },
       ],
       "docker": { # The Docker execuctor specification. # Specifies the docker run information.
-        "cmd": "A String", # Required. The command or newline delimited script to run. The command string will be executed within a bash shell. If the command exits with a non-zero exit code, output parameter de-localization will be skipped and the pipeline operation's `error` field will be populated. Maximum command string length is 16384.
-        "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry. Users that run pipelines must have READ access to the image.
+        "cmd": "A String", # Required. The command or newline delimited script to run. The command
+            # string will be executed within a bash shell.
+            #
+            # If the command exits with a non-zero exit code, output parameter
+            # de-localization will be skipped and the pipeline operation's
+            # `error` field will be populated.
+            #
+            # Maximum command string length is 16384.
+        "imageName": "A String", # Required. Image name from either Docker Hub or Google Container Registry.
+            # Users that run pipelines must have READ access to the image.
       },
-      "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run. Required fields: * minimumCpuCores * minimumRamGb
-        "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental feature that may go away. Defaults to false. Corresponds to `--no_address` flag for [gcloud compute instances create] (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create). In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time. If you need to ssh into a private IP VM for debugging, you can ssh to a public VM and then ssh into the private VM's Internal IP. If noAddress is set, this pipeline run may only load docker images from Google Container Registry and not Docker Hub. ** Note: To use this option, your project must be in Google Access for Private IPs Early Access Program.**
+      "resources": { # The system resources for the pipeline run. # Required. Specifies resource requirements for the pipeline run.
+          # Required fields:
+          #
+          # *
+          # minimumCpuCores
+          #
+          # *
+          # minimumRamGb
+        "noAddress": True or False, # Whether to assign an external IP to the instance. This is an experimental
+            # feature that may go away. Defaults to false.
+            # Corresponds to `--no_address` flag for [gcloud compute instances create]
+            # (https://cloud.google.com/sdk/gcloud/reference/compute/instances/create).
+            # In order to use this, must be true for both create time and run time.
+            # Cannot be true at run time if false at create time. If you need to ssh into
+            # a private IP VM for debugging, you can ssh to a public VM and then ssh into
+            # the private VM's Internal IP.  If noAddress is set, this pipeline run may
+            # only load docker images from Google Container Registry and not Docker Hub.
+            # Before using this, you must
+            # [configure access to Google services from internal IPs](https://cloud.google.com/compute/docs/configure-private-google-access#configuring_access_to_google_services_from_internal_ips).
         "minimumRamGb": 3.14, # The minimum amount of RAM to use. Defaults to 3.75 (GB)
-        "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this, must be true for both create time and run time. Cannot be true at run time if false at create time.
+        "preemptible": True or False, # Whether to use preemptible VMs. Defaults to `false`. In order to use this,
+            # must be true for both create time and run time. Cannot be true at run time
+            # if false at create time.
         "disks": [ # Disks to attach.
           { # A Google Compute Engine disk resource specification.
-            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB). This field is not applicable for local SSD.
-            "name": "A String", # Required. The name of the disk that can be used in the pipeline parameters. Must be 1 - 63 characters. The name "boot" is reserved for system use.
-            "autoDelete": True or False, # Specifies whether or not to delete the disk when the pipeline completes. This field is applicable only for newly created disks. See https://cloud.google.com/compute/docs/reference/latest/instances#resource for more details. By default, `autoDelete` is `false`. `autoDelete` will be enabled if set to `true` at create time or run time.
-            "source": "A String", # The full or partial URL of the persistent disk to attach. See https://cloud.google.com/compute/docs/reference/latest/instances#resource and https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots for more details.
-            "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances for more details. Can only be set at create time.
-            "mountPoint": "A String", # Required at create time and cannot be overridden at run time. Specifies the path in the docker container where files on this disk should be located. For example, if `mountPoint` is `/mnt/disk`, and the parameter has `localPath` `inputs/file.txt`, the docker container can access the data at `/mnt/disk/inputs/file.txt`.
+            "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                # parameters. Must be 1 - 63 characters.
+                # The name "boot" is reserved for system use.
+            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                # This field is not applicable for local SSD.
+            "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
+                # of the pipeline run, regardless of what this field is set to.
+            "source": "A String", # The full or partial URL of the persistent disk to attach. See
+                # https://cloud.google.com/compute/docs/reference/latest/instances#resource
+                # and
+                # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
+                # for more details.
+            "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
+                # Specifies the path in the docker container where files on
+                # this disk should be located. For example, if `mountPoint`
+                # is `/mnt/disk`, and the parameter has `localPath`
+                # `inputs/file.txt`, the docker container can access the data at
+                # `/mnt/disk/inputs/file.txt`.
             "type": "A String", # Required. The type of the disk to create.
           },
         ],
         "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
-        "zones": [ # List of Google Compute Engine availability zones to which resource creation will restricted. If empty, any zone may be chosen.
+        "zones": [ # List of Google Compute Engine availability zones to which resource
+            # creation will restricted. If empty, any zone may be chosen.
           "A String",
         ],
         "minimumCpuCores": 42, # The minimum number of cores to use. Defaults to 1.
@@ -540,44 +1931,108 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For exports, an empty response is returned.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example: `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
-    "metadata": { # An OperationMetadata object. This will always be returned with the Operation.
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # If importing ReadGroupSets, an ImportReadGroupSetsResponse is returned. If importing Variants, an ImportVariantsResponse is returned. For pipelines and exports, an empty response is returned.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="setOperationStatus">setOperationStatus(body, x__xgafv=None)</code>
-  <pre>Sets status of a given operation. Any new timestamps (as determined by description) are appended to TimestampEvents. Should only be called by VMs created by the Pipelines Service and not by end users.
+  <pre>Sets status of a given operation. Any new timestamps (as determined by
+description) are appended to TimestampEvents. Should only be called by VMs
+created by the Pipelines Service and not by end users.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request to set operation status. Should only be used by VMs created by the Pipelines Service and not by end users.
+{ # Request to set operation status. Should only be used by VMs
+      # created by the Pipelines Service and not by end users.
     "errorCode": "A String",
     "errorMessage": "A String",
     "timestampEvents": [
-      { # Stores the list of events and times they occured for major events in job execution.
+      { # Stores the list of events and times they occured for major events in job
+          # execution.
         "timestamp": "A String", # The time this event occured.
         "description": "A String", # String indicating the type of event
       },
@@ -587,11 +2042,22 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/gmail_v1.users.history.html b/docs/dyn/gmail_v1.users.history.html
index f460c35..29e7ef5 100644
--- a/docs/dyn/gmail_v1.users.history.html
+++ b/docs/dyn/gmail_v1.users.history.html
@@ -75,22 +75,28 @@
 <h1><a href="gmail_v1.html">Gmail API</a> . <a href="gmail_v1.users.html">users</a> . <a href="gmail_v1.users.history.html">history</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(userId, pageToken=None, maxResults=None, startHistoryId=None, labelId=None)</a></code></p>
+  <code><a href="#list">list(userId, labelId=None, pageToken=None, maxResults=None, startHistoryId=None, historyTypes=None)</a></code></p>
 <p class="firstline">Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing historyId).</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, startHistoryId=None, labelId=None)</code>
+    <code class="details" id="list">list(userId, labelId=None, pageToken=None, maxResults=None, startHistoryId=None, historyTypes=None)</code>
   <pre>Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing historyId).
 
 Args:
   userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  labelId: string, Only return messages with a label matching the ID.
   pageToken: string, Page token to retrieve a specific page of results in the list.
   maxResults: integer, The maximum number of history records to return.
   startHistoryId: string, Required. Returns history records after the specified startHistoryId. The supplied startHistoryId should be obtained from the historyId of a message, thread, or previous list response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date startHistoryId typically returns an HTTP 404 error code. A historyId is typically valid for at least a week, but in some rare circumstances may be valid for only a few hours. If you receive an HTTP 404 error response, your application should perform a full sync. If you receive no nextPageToken in the response, there are no updates to retrieve and you can store the returned historyId for a future request.
-  labelId: string, Only return messages with a label matching the ID.
+  historyTypes: string, History types to be returned by the function (repeated)
+    Allowed values
+      labelAdded - 
+      labelRemoved - 
+      messageAdded - 
+      messageDeleted - 
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/gmail_v1.users.messages.html b/docs/dyn/gmail_v1.users.messages.html
index e66cef7..f547d85 100644
--- a/docs/dyn/gmail_v1.users.messages.html
+++ b/docs/dyn/gmail_v1.users.messages.html
@@ -273,7 +273,7 @@
       receivedTime - 
   neverMarkSpam: boolean, Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
-  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Apps Vault to a Vault administrator. Only used for Google Apps for Work accounts.
+  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.
   processForCalendar: boolean, Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.
 
 Returns:
@@ -365,7 +365,7 @@
       dateHeader - 
       receivedTime - 
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
-  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Apps Vault to a Vault administrator. Only used for Google Apps for Work accounts.
+  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for G Suite accounts.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/gmail_v1.users.settings.forwardingAddresses.html b/docs/dyn/gmail_v1.users.settings.forwardingAddresses.html
index b73f420..6ea7c3e 100644
--- a/docs/dyn/gmail_v1.users.settings.forwardingAddresses.html
+++ b/docs/dyn/gmail_v1.users.settings.forwardingAddresses.html
@@ -91,6 +91,8 @@
     <code class="details" id="create">create(userId, body)</code>
   <pre>Creates a forwarding address. If ownership verification is required, a message will be sent to the recipient and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   body: object, The request body. (required)
@@ -115,6 +117,8 @@
     <code class="details" id="delete">delete(userId, forwardingEmail)</code>
   <pre>Deletes the specified forwarding address and revokes any verification that may have been required.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   forwardingEmail: string, The forwarding address to be deleted. (required)
diff --git a/docs/dyn/gmail_v1.users.settings.html b/docs/dyn/gmail_v1.users.settings.html
index 9675a35..4f49c03 100644
--- a/docs/dyn/gmail_v1.users.settings.html
+++ b/docs/dyn/gmail_v1.users.settings.html
@@ -183,7 +183,7 @@
       "startTime": "A String", # An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.
       "endTime": "A String", # An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.
       "responseBodyHtml": "A String", # Response body in HTML format. Gmail will sanitize the HTML before storing it.
-      "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Apps users.
+      "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for G Suite users.
     }</pre>
 </div>
 
@@ -191,6 +191,8 @@
     <code class="details" id="updateAutoForwarding">updateAutoForwarding(userId, body)</code>
   <pre>Updates the auto-forwarding setting for the specified account. A verified forwarding address must be specified when auto-forwarding is enabled.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   body: object, The request body. (required)
@@ -282,7 +284,7 @@
     "startTime": "A String", # An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.
     "endTime": "A String", # An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.
     "responseBodyHtml": "A String", # Response body in HTML format. Gmail will sanitize the HTML before storing it.
-    "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Apps users.
+    "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for G Suite users.
   }
 
 
@@ -297,7 +299,7 @@
       "startTime": "A String", # An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.
       "endTime": "A String", # An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.
       "responseBodyHtml": "A String", # Response body in HTML format. Gmail will sanitize the HTML before storing it.
-      "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Apps users.
+      "restrictToDomain": True or False, # Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for G Suite users.
     }</pre>
 </div>
 
diff --git a/docs/dyn/gmail_v1.users.settings.sendAs.html b/docs/dyn/gmail_v1.users.settings.sendAs.html
index 6d0231f..196d487 100644
--- a/docs/dyn/gmail_v1.users.settings.sendAs.html
+++ b/docs/dyn/gmail_v1.users.settings.sendAs.html
@@ -75,6 +75,11 @@
 <h1><a href="gmail_v1.html">Gmail API</a> . <a href="gmail_v1.users.html">users</a> . <a href="gmail_v1.users.settings.html">settings</a> . <a href="gmail_v1.users.settings.sendAs.html">sendAs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="gmail_v1.users.settings.sendAs.smimeInfo.html">smimeInfo()</a></code>
+</p>
+<p class="firstline">Returns the smimeInfo Resource.</p>
+
+<p class="toc_element">
   <code><a href="#create">create(userId, body)</a></code></p>
 <p class="firstline">Creates a custom "from" send-as alias. If an SMTP MSA is specified, Gmail will attempt to connect to the SMTP service to validate the configuration before creating the alias. If ownership verification is required for the alias, a message will be sent to the email address and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.</p>
 <p class="toc_element">
@@ -88,7 +93,7 @@
 <p class="firstline">Lists the send-as aliases for the specified account. The result includes the primary send-as address associated with the account as well as any custom "from" aliases.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(userId, sendAsEmail, body)</a></code></p>
-<p class="firstline">Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. This method supports patch semantics.</p>
+<p class="firstline">Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.</p>
 <p class="toc_element">
   <code><a href="#update">update(userId, sendAsEmail, body)</a></code></p>
 <p class="firstline">Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.</p>
@@ -100,6 +105,8 @@
     <code class="details" id="create">create(userId, body)</code>
   <pre>Creates a custom "from" send-as alias. If an SMTP MSA is specified, Gmail will attempt to connect to the SMTP service to validate the configuration before creating the alias. If ownership verification is required for the alias, a message will be sent to the email address and the resource's verification status will be set to pending; otherwise, the resource will be created with verification status set to accepted. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   body: object, The request body. (required)
@@ -150,6 +157,8 @@
     <code class="details" id="delete">delete(userId, sendAsEmail)</code>
   <pre>Deletes the specified send-as alias. Revokes any verification that may have been required for using it.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   sendAsEmail: string, The send-as alias to be deleted. (required)
@@ -221,7 +230,9 @@
 
 <div class="method">
     <code class="details" id="patch">patch(userId, sendAsEmail, body)</code>
-  <pre>Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. This method supports patch semantics.
+  <pre>Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.
+
+Addresses other than the primary address for the account can only be updated by service account clients that have been delegated domain-wide authority. This method supports patch semantics.
 
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
@@ -274,6 +285,8 @@
     <code class="details" id="update">update(userId, sendAsEmail, body)</code>
   <pre>Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias.
 
+Addresses other than the primary address for the account can only be updated by service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   sendAsEmail: string, The send-as alias to be updated. (required)
@@ -325,6 +338,8 @@
     <code class="details" id="verify">verify(userId, sendAsEmail)</code>
   <pre>Sends a verification email to the specified send-as alias address. The verification status must be pending.
 
+This method is only available to service account clients that have been delegated domain-wide authority.
+
 Args:
   userId: string, User's email address. The special value "me" can be used to indicate the authenticated user. (required)
   sendAsEmail: string, The send-as alias to be verified. (required)
diff --git a/docs/dyn/gmail_v1.users.settings.sendAs.smimeInfo.html b/docs/dyn/gmail_v1.users.settings.sendAs.smimeInfo.html
new file mode 100644
index 0000000..47478cb
--- /dev/null
+++ b/docs/dyn/gmail_v1.users.settings.sendAs.smimeInfo.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="gmail_v1.html">Gmail API</a> . <a href="gmail_v1.users.html">users</a> . <a href="gmail_v1.users.settings.html">settings</a> . <a href="gmail_v1.users.settings.sendAs.html">sendAs</a> . <a href="gmail_v1.users.settings.sendAs.smimeInfo.html">smimeInfo</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(userId, sendAsEmail, id)</a></code></p>
+<p class="firstline">Deletes the specified S/MIME config for the specified send-as alias.</p>
+<p class="toc_element">
+  <code><a href="#get">get(userId, sendAsEmail, id)</a></code></p>
+<p class="firstline">Gets the specified S/MIME config for the specified send-as alias.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(userId, sendAsEmail, body)</a></code></p>
+<p class="firstline">Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, sendAsEmail)</a></code></p>
+<p class="firstline">Lists S/MIME configs for the specified send-as alias.</p>
+<p class="toc_element">
+  <code><a href="#setDefault">setDefault(userId, sendAsEmail, id)</a></code></p>
+<p class="firstline">Sets the default S/MIME config for the specified send-as alias.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(userId, sendAsEmail, id)</code>
+  <pre>Deletes the specified S/MIME config for the specified send-as alias.
+
+Args:
+  userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  sendAsEmail: string, The email address that appears in the "From:" header for mail sent using this alias. (required)
+  id: string, The immutable ID for the SmimeInfo. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(userId, sendAsEmail, id)</code>
+  <pre>Gets the specified S/MIME config for the specified send-as alias.
+
+Args:
+  userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  sendAsEmail: string, The email address that appears in the "From:" header for mail sent using this alias. (required)
+  id: string, The immutable ID for the SmimeInfo. (required)
+
+Returns:
+  An object of the form:
+
+    { # An S/MIME email config.
+      "pkcs12": "A String", # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
+      "pem": "A String", # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
+      "issuerCn": "A String", # The S/MIME certificate issuer's common name.
+      "encryptedKeyPassword": "A String", # Encrypted key password, when key is encrypted.
+      "id": "A String", # The immutable ID for the SmimeInfo.
+      "isDefault": True or False, # Whether this SmimeInfo is the default one for this user's send-as address.
+      "expiration": "A String", # When the certificate expires (in milliseconds since epoch).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(userId, sendAsEmail, body)</code>
+  <pre>Insert (upload) the given S/MIME config for the specified send-as alias. Note that pkcs12 format is required for the key.
+
+Args:
+  userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  sendAsEmail: string, The email address that appears in the "From:" header for mail sent using this alias. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An S/MIME email config.
+    "pkcs12": "A String", # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
+    "pem": "A String", # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
+    "issuerCn": "A String", # The S/MIME certificate issuer's common name.
+    "encryptedKeyPassword": "A String", # Encrypted key password, when key is encrypted.
+    "id": "A String", # The immutable ID for the SmimeInfo.
+    "isDefault": True or False, # Whether this SmimeInfo is the default one for this user's send-as address.
+    "expiration": "A String", # When the certificate expires (in milliseconds since epoch).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An S/MIME email config.
+      "pkcs12": "A String", # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
+      "pem": "A String", # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
+      "issuerCn": "A String", # The S/MIME certificate issuer's common name.
+      "encryptedKeyPassword": "A String", # Encrypted key password, when key is encrypted.
+      "id": "A String", # The immutable ID for the SmimeInfo.
+      "isDefault": True or False, # Whether this SmimeInfo is the default one for this user's send-as address.
+      "expiration": "A String", # When the certificate expires (in milliseconds since epoch).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, sendAsEmail)</code>
+  <pre>Lists S/MIME configs for the specified send-as alias.
+
+Args:
+  userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  sendAsEmail: string, The email address that appears in the "From:" header for mail sent using this alias. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "smimeInfo": [ # List of SmimeInfo.
+      { # An S/MIME email config.
+          "pkcs12": "A String", # PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.
+          "pem": "A String", # PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).
+          "issuerCn": "A String", # The S/MIME certificate issuer's common name.
+          "encryptedKeyPassword": "A String", # Encrypted key password, when key is encrypted.
+          "id": "A String", # The immutable ID for the SmimeInfo.
+          "isDefault": True or False, # Whether this SmimeInfo is the default one for this user's send-as address.
+          "expiration": "A String", # When the certificate expires (in milliseconds since epoch).
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setDefault">setDefault(userId, sendAsEmail, id)</code>
+  <pre>Sets the default S/MIME config for the specified send-as alias.
+
+Args:
+  userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
+  sendAsEmail: string, The email address that appears in the "From:" header for mail sent using this alias. (required)
+  id: string, The immutable ID for the SmimeInfo. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.html b/docs/dyn/iam_v1.projects.serviceAccounts.html
index 98cd27d..d450dc3 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.html
@@ -80,67 +80,134 @@
 <p class="firstline">Returns the keys Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a ServiceAccount and returns it.</p>
+  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a ServiceAccount</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a ServiceAccount.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a ServiceAccount.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the IAM access control policy for a ServiceAccount.</p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the IAM access control policy for a</p>
 <p class="toc_element">
-  <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists ServiceAccounts for a project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets the IAM access control policy for a ServiceAccount.</p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the IAM access control policy for a</p>
 <p class="toc_element">
-  <code><a href="#signBlob">signBlob(name, body, x__xgafv=None)</a></code></p>
+  <code><a href="#signBlob">signBlob(name=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Signs a blob using a service account's system-managed private key.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Tests the specified permissions against the IAM access control policy for a ServiceAccount.</p>
+  <code><a href="#signJwt">signJwt(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Signs a JWT using a service account's system-managed private key.</p>
 <p class="toc_element">
-  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a ServiceAccount. Currently, only the following fields are updatable: `display_name` . The `etag` is mandatory.</p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Tests the specified permissions against the IAM access control policy</p>
+<p class="toc_element">
+  <code><a href="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a ServiceAccount.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
-  <pre>Creates a ServiceAccount and returns it.
+    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+  <pre>Creates a ServiceAccount
+and returns it.
 
 Args:
-  name: string, Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`. (required)
+  name: string, Required. The resource name of the project associated with the service
+accounts, such as `projects/my-project-123`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The service account create request.
-    "serviceAccount": { # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. # The ServiceAccount resource to create. Currently, only the following values are user assignable: `display_name` .
-      "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-      "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-      "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+    "serviceAccount": { # A service account in the Identity and Access Management API. # The ServiceAccount resource to create.
+        # Currently, only the following values are user assignable:
+        # `display_name` .
+        #
+        # To create a service account, specify the `project_id` and the `account_id`
+        # for the account.  The `account_id` is unique within the project, and is used
+        # to generate the service account email address and a stable
+        # `unique_id`.
+        #
+        # If the account already exists, the account's resource name is returned
+        # in util::Status's ResourceInfo.resource_name in the format of
+        # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+        # use the name in other methods to access the account.
+        #
+        # All other methods can identify the service account using the format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+        # Using `-` as a wildcard for the project will infer the project from
+        # the account. The `account` value can be the `email` address or the
+        # `unique_id` of the service account.
+      "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+          # This is used in conjunction with the OAuth2 clientconfig API to make
+          # three legged OAuth2 (3LO) flows to access the data of Google users.
+      "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+          # fewer than 100 UTF-8 bytes.
+      "name": "A String", # The resource name of the service account in the following format:
+          # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+          #
+          # Requests using `-` as a wildcard for the project will infer the project
+          # from the `account` and the `account` value can be the `email` address or
+          # the `unique_id` of the service account.
+          #
+          # In responses the resource name will always be in the format
+          # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
       "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
       "etag": "A String", # Used to perform a consistent read-modify-write.
       "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
       "email": "A String", # @OutputOnly The email address of the service account.
     },
-    "accountId": "A String", # Required. The account id that is used to generate the service account email address and a stable unique id. It is unique within a project, must be 6-30 characters long, and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
+    "accountId": "A String", # Required. The account id that is used to generate the service account
+        # email address and a stable unique id. It is unique within a project,
+        # must be 6-30 characters long, and match the regular expression
+        # `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
-    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-    "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-    "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+    { # A service account in the Identity and Access Management API.
+      #
+      # To create a service account, specify the `project_id` and the `account_id`
+      # for the account.  The `account_id` is unique within the project, and is used
+      # to generate the service account email address and a stable
+      # `unique_id`.
+      #
+      # If the account already exists, the account's resource name is returned
+      # in util::Status's ResourceInfo.resource_name in the format of
+      # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+      # use the name in other methods to access the account.
+      #
+      # All other methods can identify the service account using the format
+      # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+      # Using `-` as a wildcard for the project will infer the project from
+      # the account. The `account` value can be the `email` address or the
+      # `unique_id` of the service account.
+    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+        # This is used in conjunction with the OAuth2 clientconfig API to make
+        # three legged OAuth2 (3LO) flows to access the data of Google users.
+    "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+        # fewer than 100 UTF-8 bytes.
+    "name": "A String", # The resource name of the service account in the following format:
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+        #
+        # Requests using `-` as a wildcard for the project will infer the project
+        # from the `account` and the `account` value can be the `email` address or
+        # the `unique_id` of the service account.
+        #
+        # In responses the resource name will always be in the format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
     "etag": "A String", # Used to perform a consistent read-modify-write.
     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
@@ -149,35 +216,84 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
   <pre>Deletes a ServiceAccount.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
   <pre>Gets a ServiceAccount.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
-    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-    "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-    "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+    { # A service account in the Identity and Access Management API.
+      #
+      # To create a service account, specify the `project_id` and the `account_id`
+      # for the account.  The `account_id` is unique within the project, and is used
+      # to generate the service account email address and a stable
+      # `unique_id`.
+      #
+      # If the account already exists, the account's resource name is returned
+      # in util::Status's ResourceInfo.resource_name in the format of
+      # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+      # use the name in other methods to access the account.
+      #
+      # All other methods can identify the service account using the format
+      # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+      # Using `-` as a wildcard for the project will infer the project from
+      # the account. The `account` value can be the `email` address or the
+      # `unique_id` of the service account.
+    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+        # This is used in conjunction with the OAuth2 clientconfig API to make
+        # three legged OAuth2 (3LO) flows to access the data of Google users.
+    "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+        # fewer than 100 UTF-8 bytes.
+    "name": "A String", # The resource name of the service account in the following format:
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+        #
+        # Requests using `-` as a wildcard for the project will infer the project
+        # from the `account` and the `account` value can be the `email` address or
+        # the `unique_id` of the service account.
+        #
+        # In responses the resource name will always be in the format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
     "etag": "A String", # Used to perform a consistent read-modify-write.
     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
@@ -186,50 +302,157 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code>
-  <pre>Returns the IAM access control policy for a ServiceAccount.
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Returns the IAM access control policy for a
+ServiceAccount.
 
 Args:
-  resource: string, REQUIRED: The resource for which the policy is being requested. `resource` is usually specified as a path. For example, a Project resource is specified as `projects/{project}`. (required)
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+`resource` is usually specified as a path. For example, a Project
+resource is specified as `projects/{project}`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
           "A String",
         ],
       },
     ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists ServiceAccounts for a project.
 
 Args:
-  name: string, Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`. (required)
-  pageToken: string, Optional pagination token returned in an earlier ListServiceAccountsResponse.next_page_token.
+  name: string, Required. The resource name of the project associated with the service
+accounts, such as `projects/my-project-123`. (required)
+  pageToken: string, Optional pagination token returned in an earlier
+ListServiceAccountsResponse.next_page_token.
   x__xgafv: string, V1 error format.
-  pageSize: integer, Optional limit on the number of service accounts to include in the response. Further accounts can subsequently be obtained by including the ListServiceAccountsResponse.next_page_token in a subsequent request.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional limit on the number of service accounts to include in the
+response. Further accounts can subsequently be obtained by including the
+ListServiceAccountsResponse.next_page_token
+in a subsequent request.
 
 Returns:
   An object of the form:
 
     { # The service account list response.
-    "nextPageToken": "A String", # To retrieve the next page of results, set ListServiceAccountsRequest.page_token to this value.
+    "nextPageToken": "A String", # To retrieve the next page of results, set
+        # ListServiceAccountsRequest.page_token
+        # to this value.
     "accounts": [ # The list of matching service accounts.
-      { # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
-        "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-        "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-        "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+      { # A service account in the Identity and Access Management API.
+          #
+          # To create a service account, specify the `project_id` and the `account_id`
+          # for the account.  The `account_id` is unique within the project, and is used
+          # to generate the service account email address and a stable
+          # `unique_id`.
+          #
+          # If the account already exists, the account's resource name is returned
+          # in util::Status's ResourceInfo.resource_name in the format of
+          # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+          # use the name in other methods to access the account.
+          #
+          # All other methods can identify the service account using the format
+          # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+          # Using `-` as a wildcard for the project will infer the project from
+          # the account. The `account` value can be the `email` address or the
+          # `unique_id` of the service account.
+        "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+            # This is used in conjunction with the OAuth2 clientconfig API to make
+            # three legged OAuth2 (3LO) flows to access the data of Google users.
+        "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+            # fewer than 100 UTF-8 bytes.
+        "name": "A String", # The resource name of the service account in the following format:
+            # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+            #
+            # Requests using `-` as a wildcard for the project will infer the project
+            # from the `account` and the `account` value can be the `email` address or
+            # the `unique_id` of the service account.
+            #
+            # In responses the resource name will always be in the format
+            # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
         "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
         "etag": "A String", # Used to perform a consistent read-modify-write.
         "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
@@ -254,54 +477,195 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Sets the IAM access control policy for a ServiceAccount.
+    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the IAM access control policy for a
+ServiceAccount.
 
 Args:
-  resource: string, REQUIRED: The resource for which the policy is being specified. `resource` is usually specified as a path. For example, a Project resource is specified as `projects/{project}`. (required)
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+`resource` is usually specified as a path. For example, a Project
+resource is specified as `projects/{project}`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request message for `SetIamPolicy` method.
-    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
-      "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
             "A String",
           ],
         },
       ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
       "version": 42, # Version of the `Policy`. The default version is 0.
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
-    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
           "A String",
         ],
       },
     ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
     "version": 42, # Version of the `Policy`. The default version is 0.
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="signBlob">signBlob(name, body, x__xgafv=None)</code>
+    <code class="details" id="signBlob">signBlob(name=None, body, x__xgafv=None)</code>
   <pre>Signs a blob using a service account's system-managed private key.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -310,6 +674,9 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -321,45 +688,129 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
-  <pre>Tests the specified permissions against the IAM access control policy for a ServiceAccount.
+    <code class="details" id="signJwt">signJwt(name=None, body, x__xgafv=None)</code>
+  <pre>Signs a JWT using a service account's system-managed private key.
+
+If no expiry time (`exp`) is provided in the `SignJwtRequest`, IAM sets an
+an expiry time of one hour by default. If you request an expiry time of
+more than one hour, the request will fail.
 
 Args:
-  resource: string, REQUIRED: The resource for which the policy detail is being requested. `resource` is usually specified as a path. For example, a Project resource is specified as `projects/{project}`. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The service account sign JWT request.
+    "payload": "A String", # The JWT payload to sign, a JSON JWT Claim set.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The service account sign JWT response.
+    "keyId": "A String", # The id of the key used to sign the JWT.
+    "signedJwt": "A String", # The signed JWT.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Tests the specified permissions against the IAM access control policy
+for a ServiceAccount.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+`resource` is usually specified as a path. For example, a Project
+resource is specified as `projects/{project}`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request message for `TestIamPermissions` method.
-    "permissions": [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
       "A String",
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response message for `TestIamPermissions` method.
-    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
       "A String",
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
-  <pre>Updates a ServiceAccount. Currently, only the following fields are updatable: `display_name` . The `etag` is mandatory.
+    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+  <pre>Updates a ServiceAccount.
+
+Currently, only the following fields are updatable:
+`display_name` .
+The `etag` is mandatory.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+
+Requests using `-` as a wildcard for the project will infer the project
+from the `account` and the `account` value can be the `email` address or
+the `unique_id` of the service account.
+
+In responses the resource name will always be in the format
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
-  "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-  "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-  "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+{ # A service account in the Identity and Access Management API.
+    # 
+    # To create a service account, specify the `project_id` and the `account_id`
+    # for the account.  The `account_id` is unique within the project, and is used
+    # to generate the service account email address and a stable
+    # `unique_id`.
+    # 
+    # If the account already exists, the account's resource name is returned
+    # in util::Status's ResourceInfo.resource_name in the format of
+    # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+    # use the name in other methods to access the account.
+    # 
+    # All other methods can identify the service account using the format
+    # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+    # Using `-` as a wildcard for the project will infer the project from
+    # the account. The `account` value can be the `email` address or the
+    # `unique_id` of the service account.
+  "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+      # This is used in conjunction with the OAuth2 clientconfig API to make
+      # three legged OAuth2 (3LO) flows to access the data of Google users.
+  "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+      # fewer than 100 UTF-8 bytes.
+  "name": "A String", # The resource name of the service account in the following format:
+      # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+      # 
+      # Requests using `-` as a wildcard for the project will infer the project
+      # from the `account` and the `account` value can be the `email` address or
+      # the `unique_id` of the service account.
+      # 
+      # In responses the resource name will always be in the format
+      # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
   "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
   "etag": "A String", # Used to perform a consistent read-modify-write.
   "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
@@ -367,14 +818,44 @@
 }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. If the account already exists, the account's resource name is returned in util::Status's ResourceInfo.resource_name in the format of projects/{project}/serviceAccounts/{email}. The caller can use the name in other methods to access the account. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
-    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users.
-    "displayName": "A String", # Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes.
-    "name": "A String", # The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`.
+    { # A service account in the Identity and Access Management API.
+      #
+      # To create a service account, specify the `project_id` and the `account_id`
+      # for the account.  The `account_id` is unique within the project, and is used
+      # to generate the service account email address and a stable
+      # `unique_id`.
+      #
+      # If the account already exists, the account's resource name is returned
+      # in util::Status's ResourceInfo.resource_name in the format of
+      # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
+      # use the name in other methods to access the account.
+      #
+      # All other methods can identify the service account using the format
+      # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+      # Using `-` as a wildcard for the project will infer the project from
+      # the account. The `account` value can be the `email` address or the
+      # `unique_id` of the service account.
+    "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
+        # This is used in conjunction with the OAuth2 clientconfig API to make
+        # three legged OAuth2 (3LO) flows to access the data of Google users.
+    "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
+        # fewer than 100 UTF-8 bytes.
+    "name": "A String", # The resource name of the service account in the following format:
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+        #
+        # Requests using `-` as a wildcard for the project will infer the project
+        # from the `account` and the `account` value can be the `email` address or
+        # the `unique_id` of the service account.
+        #
+        # In responses the resource name will always be in the format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
     "etag": "A String", # Used to perform a consistent read-modify-write.
     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
index 8532552..92151ac 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
@@ -75,108 +75,220 @@
 <h1><a href="iam_v1.html">Google Identity and Access Management (IAM) API</a> . <a href="iam_v1.projects.html">projects</a> . <a href="iam_v1.projects.serviceAccounts.html">serviceAccounts</a> . <a href="iam_v1.projects.serviceAccounts.keys.html">keys</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a ServiceAccountKey and returns it.</p>
+  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a ServiceAccountKey</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a ServiceAccountKey.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name, publicKeyType=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the ServiceAccountKey by key id.</p>
+  <code><a href="#get">get(name=None, publicKeyType=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the ServiceAccountKey</p>
 <p class="toc_element">
-  <code><a href="#list">list(name, keyTypes=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(name=None, keyTypes=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists ServiceAccountKeys.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
-  <pre>Creates a ServiceAccountKey and returns it.
+    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+  <pre>Creates a ServiceAccountKey
+and returns it.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The service account key create request.
-    "privateKeyType": "A String", # The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the default output format.
-    "keyAlgorithm": "A String", # Which type of key and algorithm to use for the key. The default is currently a 4K RSA key. However this may change in the future.
+    "keyAlgorithm": "A String", # Which type of key and algorithm to use for the key.
+        # The default is currently a 2K RSA key.  However this may change in the
+        # future.
+    "privateKeyType": "A String", # The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the
+        # default output format.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed key-pairs are managed automatically by Google, and rotated daily without user intervention. The private key never leaves Google's servers to maximize security. Public keys for all service accounts are also published at the OAuth2 Service Account API.
-    "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey` responses.
-    "validAfterTime": "A String", # The key can be used after this timestamp.
+    { # Represents a service account key.
+      #
+      # A service account has two sets of key-pairs: user-managed, and
+      # system-managed.
+      #
+      # User-managed key-pairs can be created and deleted by users.  Users are
+      # responsible for rotating these keys periodically to ensure security of
+      # their service accounts.  Users retain the private key of these key-pairs,
+      # and Google retains ONLY the public key.
+      #
+      # System-managed key-pairs are managed automatically by Google, and rotated
+      # daily without user intervention.  The private key never leaves Google's
+      # servers to maximize security.
+      #
+      # Public keys for all service accounts are also published at the OAuth2
+      # Service Account API.
+    "name": "A String", # The resource name of the service account key in the following format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
     "validBeforeTime": "A String", # The key can be used before this timestamp.
     "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
-    "privateKeyType": "A String", # The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys.
+    "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
+        # responses.
+    "privateKeyType": "A String", # The output format for the private key.
+        # Only provided in `CreateServiceAccountKey` responses, not
+        # in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
+        #
+        # Google never exposes system-managed private keys, and never retains
+        # user-managed private keys.
     "publicKeyData": "A String", # The public key data. Only provided in `GetServiceAccountKey` responses.
-    "name": "A String", # The resource name of the service account key in the following format `projects/{project}/serviceAccounts/{account}/keys/{key}`.
+    "validAfterTime": "A String", # The key can be used after this timestamp.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
   <pre>Deletes a ServiceAccountKey.
 
 Args:
-  name: string, The resource name of the service account key in the following format: `projects/{project}/serviceAccounts/{account}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
+  name: string, The resource name of the service account key in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name, publicKeyType=None, x__xgafv=None)</code>
-  <pre>Gets the ServiceAccountKey by key id.
+    <code class="details" id="get">get(name=None, publicKeyType=None, x__xgafv=None)</code>
+  <pre>Gets the ServiceAccountKey
+by key id.
 
 Args:
-  name: string, The resource name of the service account key in the following format: `projects/{project}/serviceAccounts/{account}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
-  publicKeyType: string, The output format of the public key requested. X509_PEM is the default output format.
+  name: string, The resource name of the service account key in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
+
+Using `-` as a wildcard for the project will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
+  publicKeyType: string, The output format of the public key requested.
+X509_PEM is the default output format.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed key-pairs are managed automatically by Google, and rotated daily without user intervention. The private key never leaves Google's servers to maximize security. Public keys for all service accounts are also published at the OAuth2 Service Account API.
-    "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey` responses.
-    "validAfterTime": "A String", # The key can be used after this timestamp.
+    { # Represents a service account key.
+      #
+      # A service account has two sets of key-pairs: user-managed, and
+      # system-managed.
+      #
+      # User-managed key-pairs can be created and deleted by users.  Users are
+      # responsible for rotating these keys periodically to ensure security of
+      # their service accounts.  Users retain the private key of these key-pairs,
+      # and Google retains ONLY the public key.
+      #
+      # System-managed key-pairs are managed automatically by Google, and rotated
+      # daily without user intervention.  The private key never leaves Google's
+      # servers to maximize security.
+      #
+      # Public keys for all service accounts are also published at the OAuth2
+      # Service Account API.
+    "name": "A String", # The resource name of the service account key in the following format
+        # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
     "validBeforeTime": "A String", # The key can be used before this timestamp.
     "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
-    "privateKeyType": "A String", # The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys.
+    "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
+        # responses.
+    "privateKeyType": "A String", # The output format for the private key.
+        # Only provided in `CreateServiceAccountKey` responses, not
+        # in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
+        #
+        # Google never exposes system-managed private keys, and never retains
+        # user-managed private keys.
     "publicKeyData": "A String", # The public key data. Only provided in `GetServiceAccountKey` responses.
-    "name": "A String", # The resource name of the service account key in the following format `projects/{project}/serviceAccounts/{account}/keys/{key}`.
+    "validAfterTime": "A String", # The key can be used after this timestamp.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name, keyTypes=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(name=None, keyTypes=None, x__xgafv=None)</code>
   <pre>Lists ServiceAccountKeys.
 
 Args:
-  name: string, The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project, will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. (required)
-  keyTypes: string, Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned. (repeated)
+  name: string, The resource name of the service account in the following format:
+`projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
+
+Using `-` as a wildcard for the project, will infer the project from
+the account. The `account` value can be the `email` address or the
+`unique_id` of the service account. (required)
+  keyTypes: string, Filters the types of keys the user wants to include in the list
+response. Duplicate key types are not allowed. If no key type
+is provided, all keys are returned. (repeated)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The service account keys list response.
     "keys": [ # The public keys for the service account.
-      { # Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed key-pairs are managed automatically by Google, and rotated daily without user intervention. The private key never leaves Google's servers to maximize security. Public keys for all service accounts are also published at the OAuth2 Service Account API.
-        "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey` responses.
-        "validAfterTime": "A String", # The key can be used after this timestamp.
+      { # Represents a service account key.
+          #
+          # A service account has two sets of key-pairs: user-managed, and
+          # system-managed.
+          #
+          # User-managed key-pairs can be created and deleted by users.  Users are
+          # responsible for rotating these keys periodically to ensure security of
+          # their service accounts.  Users retain the private key of these key-pairs,
+          # and Google retains ONLY the public key.
+          #
+          # System-managed key-pairs are managed automatically by Google, and rotated
+          # daily without user intervention.  The private key never leaves Google's
+          # servers to maximize security.
+          #
+          # Public keys for all service accounts are also published at the OAuth2
+          # Service Account API.
+        "name": "A String", # The resource name of the service account key in the following format
+            # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
         "validBeforeTime": "A String", # The key can be used before this timestamp.
         "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
-        "privateKeyType": "A String", # The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys.
+        "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
+            # responses.
+        "privateKeyType": "A String", # The output format for the private key.
+            # Only provided in `CreateServiceAccountKey` responses, not
+            # in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
+            #
+            # Google never exposes system-managed private keys, and never retains
+            # user-managed private keys.
         "publicKeyData": "A String", # The public key data. Only provided in `GetServiceAccountKey` responses.
-        "name": "A String", # The resource name of the service account key in the following format `projects/{project}/serviceAccounts/{account}/keys/{key}`.
+        "validAfterTime": "A String", # The key can be used after this timestamp.
       },
     ],
   }</pre>
diff --git a/docs/dyn/iam_v1.roles.html b/docs/dyn/iam_v1.roles.html
index f40c785..887b98f 100644
--- a/docs/dyn/iam_v1.roles.html
+++ b/docs/dyn/iam_v1.roles.html
@@ -76,21 +76,30 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Queries roles that can be granted on a particular resource. A role is grantable if it can be used as the role in a binding for a policy for that resource.</p>
+<p class="firstline">Queries roles that can be granted on a particular resource.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</code>
-  <pre>Queries roles that can be granted on a particular resource. A role is grantable if it can be used as the role in a binding for a policy for that resource.
+  <pre>Queries roles that can be granted on a particular resource.
+A role is grantable if it can be used as the role in a binding for a policy
+for that resource.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The grantable role query request.
-    "fullResourceName": "A String", # Required. The full resource name to query from the list of grantable roles. The name follows the Google Cloud Platform resource format. For example, a Cloud Platform project with id `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`.
+    "fullResourceName": "A String", # Required. The full resource name to query from the list of grantable roles.
+        # 
+        # The name follows the Google Cloud Platform resource format.
+        # For example, a Cloud Platform project with id `my-project` will be named
+        # `//cloudresourcemanager.googleapis.com/projects/my-project`.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -98,9 +107,16 @@
     { # The grantable role query response.
     "roles": [ # The list of matching roles.
       { # A role in the Identity and Access Management API.
-        "description": "A String", # Optional. A human-readable description for the role.
-        "name": "A String", # The name of the role. When Role is used in CreateRole, the role name must not be set. When Role is used in output and other input such as UpdateRole, the role name is the complete path, e.g., roles/logging.viewer for curated roles and organizations/{organization-id}/roles/logging.viewer for custom roles.
-        "title": "A String", # Optional. A human-readable title for the role. Typically this is limited to 100 UTF-8 bytes.
+        "title": "A String", # Optional.  A human-readable title for the role.  Typically this
+            # is limited to 100 UTF-8 bytes.
+        "name": "A String", # The name of the role.
+            #
+            # When Role is used in CreateRole, the role name must not be set.
+            #
+            # When Role is used in output and other input such as UpdateRole, the role
+            # name is the complete path, e.g., roles/logging.viewer for curated roles
+            # and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
+        "description": "A String", # Optional.  A human-readable description for the role.
       },
     ],
   }</pre>
diff --git a/docs/dyn/identitytoolkit_v3.relyingparty.html b/docs/dyn/identitytoolkit_v3.relyingparty.html
index 03e9cbb..bd43282 100644
--- a/docs/dyn/identitytoolkit_v3.relyingparty.html
+++ b/docs/dyn/identitytoolkit_v3.relyingparty.html
@@ -84,6 +84,9 @@
   <code><a href="#downloadAccount">downloadAccount(body)</a></code></p>
 <p class="firstline">Batch download user accounts.</p>
 <p class="toc_element">
+  <code><a href="#downloadAccount_next">downloadAccount_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="#getAccountInfo">getAccountInfo(body)</a></code></p>
 <p class="firstline">Returns the account info.</p>
 <p class="toc_element">
@@ -213,7 +216,7 @@
 Returns:
   An object of the form:
 
-    { # Respone of downloading accounts in batch.
+    { # Response 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.
@@ -251,6 +254,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="downloadAccount_next">downloadAccount_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="getAccountInfo">getAccountInfo(body)</code>
   <pre>Returns the account info.
 
@@ -512,9 +529,10 @@
     "displayName": "A String", # The name of the user.
     "localId": "A String", # The local ID of the user.
     "photoUrl": "A String", # The photo url of the user.
-    "idToken": "A String", # The Gitkit id token to login the newly sign up user.
+    "emailVerified": True or False, # If email has been verified.
     "passwordHash": "A String", # The user's hashed password.
     "newEmail": "A String", # The new email the user attempts to change to.
+    "idToken": "A String", # The Gitkit id token to login the newly sign up user.
     "refreshToken": "A String", # If idToken is STS id token, then this field will be refresh token.
     "providerUserInfo": [ # The user's profiles at the associated IdPs.
       {
@@ -633,6 +651,7 @@
 { # Request to signup new user, create anonymous user or anonymous user reauth.
     "instanceId": "A String", # Instance id token of the app.
     "displayName": "A String", # The name of the user.
+    "localId": "A String", # Privileged caller can create user with specified user id.
     "photoUrl": "A String", # The photo url of the user.
     "captchaResponse": "A String", # Response to the captcha.
     "emailVerified": True or False, # Mark the email as verified or not. Only can be used by service account.
@@ -753,6 +772,7 @@
     "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.
+    "isNewUser": True or False, # True if it's a new user sign-in, false if it's a returning user.
     "inputEmail": "A String", # It's the identifier param in the createAuthUri request if the identifier is an email. It can be used to check whether the user input email is different from the asserted email.
     "rawUserInfo": "A String", # Raw IDP-returned user info.
     "appScheme": "A String", # The custom scheme used by mobile app.
diff --git a/docs/dyn/kgsearch_v1.entities.html b/docs/dyn/kgsearch_v1.entities.html
index c413be9..c5412c7 100644
--- a/docs/dyn/kgsearch_v1.entities.html
+++ b/docs/dyn/kgsearch_v1.entities.html
@@ -76,31 +76,43 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#search">search(prefix=None, query=None, x__xgafv=None, types=None, indent=None, languages=None, ids=None, limit=None)</a></code></p>
-<p class="firstline">Searches Knowledge Graph for entities that match the constraints. A list of matched entities will be returned in response, which will be in JSON-LD format and compatible with http://schema.org</p>
+<p class="firstline">Searches Knowledge Graph for entities that match the constraints.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="search">search(prefix=None, query=None, x__xgafv=None, types=None, indent=None, languages=None, ids=None, limit=None)</code>
-  <pre>Searches Knowledge Graph for entities that match the constraints. A list of matched entities will be returned in response, which will be in JSON-LD format and compatible with http://schema.org
+  <pre>Searches Knowledge Graph for entities that match the constraints.
+A list of matched entities will be returned in response, which will be in
+JSON-LD format and compatible with http://schema.org
 
 Args:
   prefix: boolean, Enables prefix match against names and aliases of entities
   query: string, The literal query string for search.
   x__xgafv: string, V1 error format.
-  types: string, Restricts returned entities with these types, e.g. Person (as defined in http://schema.org/Person). (repeated)
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  types: string, Restricts returned entities with these types, e.g. Person
+(as defined in http://schema.org/Person). If multiple types are specified,
+returned entities will contain one or more of these types. (repeated)
   indent: boolean, Enables indenting of json results.
-  languages: string, The list of language codes (defined in ISO 693) to run the query with, e.g. 'en'. (repeated)
-  ids: string, The list of entity id to be used for search instead of query string. (repeated)
+  languages: string, The list of language codes (defined in ISO 693) to run the query with,
+e.g. 'en'. (repeated)
+  ids: string, The list of entity id to be used for search instead of query string.
+To specify multiple ids in the HTTP request, repeat the parameter in the
+URL as in ...?ids=A&ids=B (repeated)
   limit: integer, Limits the number of entities to be returned.
 
 Returns:
   An object of the form:
 
-    { # Response message includes the context and a list of matching results which contain the detail of associated entities.
+    { # Response message includes the context and a list of matching results
+      # which contain the detail of associated entities.
+    "@context": "", # The local context applicable for the response. See more details at
+        # http://www.w3.org/TR/json-ld/#context-definitions.
     "itemListElement": [ # The item list of search results.
       "",
     ],
-    "type": "", # The schema type of top-level JSON-LD object, e.g. ItemList.
-    "context": "", # The local context applicable for the response. See more details at http://www.w3.org/TR/json-ld/#context-definitions.
+    "@type": "", # The schema type of top-level JSON-LD object, e.g. ItemList.
   }</pre>
 </div>
 
diff --git a/docs/dyn/language_v1.documents.html b/docs/dyn/language_v1.documents.html
index 3e0e122..6f89cbd 100644
--- a/docs/dyn/language_v1.documents.html
+++ b/docs/dyn/language_v1.documents.html
@@ -97,6 +97,7 @@
     The object takes the form of:
 
 { # The entity analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -117,7 +118,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -133,7 +133,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "type": "A String", # The entity type.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -152,6 +151,7 @@
             # importance or centrality of that entity to the entire document text.
             # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
             # salient.
+        "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
@@ -253,6 +253,7 @@
     The object takes the form of:
 
 { # The syntax analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -273,7 +274,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -306,17 +306,17 @@
             # are as defined in
             # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
           "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
+          "aspect": "A String", # The grammatical aspect.
           "form": "A String", # The grammatical form.
           "gender": "A String", # The grammatical gender.
           "number": "A String", # The grammatical number.
           "person": "A String", # The grammatical person.
           "tag": "A String", # The part of speech tag.
           "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
+          "reciprocity": "A String", # The grammatical reciprocity.
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
+          "mood": "A String", # The grammatical mood.
         },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
@@ -357,6 +357,7 @@
 
 { # The request message for the text annotation API, which can perform multiple
       # analysis types (sentiment, entities, and syntax) in one call.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -377,12 +378,11 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
         # Setting each one to true will enable that specific analysis for the input.
-      "extractSyntax": True or False, # Extract syntax information.
-      "extractEntities": True or False, # Extract entities.
       "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
     },
   }
 
@@ -418,17 +418,17 @@
             # are as defined in
             # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
           "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
+          "aspect": "A String", # The grammatical aspect.
           "form": "A String", # The grammatical form.
           "gender": "A String", # The grammatical gender.
           "number": "A String", # The grammatical number.
           "person": "A String", # The grammatical person.
           "tag": "A String", # The part of speech tag.
           "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
+          "reciprocity": "A String", # The grammatical reciprocity.
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
+          "mood": "A String", # The grammatical mood.
         },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
@@ -439,7 +439,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "type": "A String", # The entity type.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -458,6 +457,7 @@
             # importance or centrality of that entity to the entire document text.
             # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
             # salient.
+        "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
diff --git a/docs/dyn/language_v1beta1.documents.html b/docs/dyn/language_v1beta1.documents.html
index bf6cf97..d7190fc 100644
--- a/docs/dyn/language_v1beta1.documents.html
+++ b/docs/dyn/language_v1beta1.documents.html
@@ -97,6 +97,7 @@
     The object takes the form of:
 
 { # The entity analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -117,7 +118,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -133,7 +133,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "type": "A String", # The entity type.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -152,6 +151,7 @@
             # importance or centrality of that entity to the entire document text.
             # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
             # salient.
+        "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
@@ -259,6 +259,7 @@
     The object takes the form of:
 
 { # The syntax analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -279,7 +280,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -298,6 +298,20 @@
           "beginOffset": 42, # The API calculates the beginning offset of the content in the original
               # document according to the EncodingType specified in the API request.
         },
+        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
+          "case": "A String", # The grammatical case.
+          "mood": "A String", # The grammatical mood.
+          "form": "A String", # The grammatical form.
+          "gender": "A String", # The grammatical gender.
+          "aspect": "A String", # The grammatical aspect.
+          "number": "A String", # The grammatical number.
+          "person": "A String", # The grammatical person.
+          "tag": "A String", # The part of speech tag.
+          "tense": "A String", # The grammatical tense.
+          "reciprocity": "A String", # The grammatical reciprocity.
+          "proper": "A String", # The grammatical properness.
+          "voice": "A String", # The grammatical voice.
+        },
         "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
           "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
               # This is the index of the token which has an arc going to this token.
@@ -306,20 +320,6 @@
               # `head_token_index` is its own index.
           "label": "A String", # The parse label for the token.
         },
-        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
-          "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
-          "form": "A String", # The grammatical form.
-          "gender": "A String", # The grammatical gender.
-          "number": "A String", # The grammatical number.
-          "person": "A String", # The grammatical person.
-          "tag": "A String", # The part of speech tag.
-          "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
-          "proper": "A String", # The grammatical properness.
-          "voice": "A String", # The grammatical voice.
-        },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
     ],
@@ -362,6 +362,7 @@
 
 { # The request message for the text annotation API, which can perform multiple
       # analysis types (sentiment, entities, and syntax) in one call.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -382,12 +383,11 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
         # Setting each one to true will enable that specific analysis for the input.
-      "extractSyntax": True or False, # Extract syntax information.
-      "extractEntities": True or False, # Extract entities.
       "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
     },
   }
 
@@ -409,6 +409,20 @@
           "beginOffset": 42, # The API calculates the beginning offset of the content in the original
               # document according to the EncodingType specified in the API request.
         },
+        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
+          "case": "A String", # The grammatical case.
+          "mood": "A String", # The grammatical mood.
+          "form": "A String", # The grammatical form.
+          "gender": "A String", # The grammatical gender.
+          "aspect": "A String", # The grammatical aspect.
+          "number": "A String", # The grammatical number.
+          "person": "A String", # The grammatical person.
+          "tag": "A String", # The part of speech tag.
+          "tense": "A String", # The grammatical tense.
+          "reciprocity": "A String", # The grammatical reciprocity.
+          "proper": "A String", # The grammatical properness.
+          "voice": "A String", # The grammatical voice.
+        },
         "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
           "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
               # This is the index of the token which has an arc going to this token.
@@ -417,20 +431,6 @@
               # `head_token_index` is its own index.
           "label": "A String", # The parse label for the token.
         },
-        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
-          "case": "A String", # The grammatical case.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "mood": "A String", # The grammatical mood.
-          "form": "A String", # The grammatical form.
-          "gender": "A String", # The grammatical gender.
-          "number": "A String", # The grammatical number.
-          "person": "A String", # The grammatical person.
-          "tag": "A String", # The part of speech tag.
-          "tense": "A String", # The grammatical tense.
-          "aspect": "A String", # The grammatical aspect.
-          "proper": "A String", # The grammatical properness.
-          "voice": "A String", # The grammatical voice.
-        },
         "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
     ],
@@ -440,7 +440,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "type": "A String", # The entity type.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -459,6 +458,7 @@
             # importance or centrality of that entity to the entire document text.
             # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
             # salient.
+        "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
             #
diff --git a/docs/dyn/logging_v2.billingAccounts.logs.html b/docs/dyn/logging_v2.billingAccounts.logs.html
index d5d9c12..3ad11dd 100644
--- a/docs/dyn/logging_v2.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2.billingAccounts.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.billingAccounts.sinks.html b/docs/dyn/logging_v2.billingAccounts.sinks.html
index 4a00d87..d2e93be 100644
--- a/docs/dyn/logging_v2.billingAccounts.sinks.html
+++ b/docs/dyn/logging_v2.billingAccounts.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,11 +101,13 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -120,7 +122,7 @@
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -129,7 +131,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -153,7 +155,9 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
+Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,9 +179,11 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The parent resource name of the sink:
+  sinkName: string, Required. The resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -187,7 +193,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -204,11 +210,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
+  parent: string, Required. The parent resource whose sinks are to be listed:
+"projects/[PROJECT_ID]"
+"organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
+ (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -222,7 +233,7 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
           "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
@@ -262,11 +273,13 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -283,8 +296,8 @@
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value was true and the new value is false.
+If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value is true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -293,7 +306,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
diff --git a/docs/dyn/logging_v2.entries.html b/docs/dyn/logging_v2.entries.html
index d901a2c..469249e 100644
--- a/docs/dyn/logging_v2.entries.html
+++ b/docs/dyn/logging_v2.entries.html
@@ -78,8 +78,11 @@
   <code><a href="#list">list(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs.</p>
 <p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#write">write(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Writes log entries to Stackdriver Logging. All log entries are written by this method.</p>
+<p class="firstline">Writes log entries to Stackdriver Logging.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(body, x__xgafv=None)</code>
@@ -90,16 +93,18 @@
     The object takes the form of:
 
 { # The parameters to ListLogEntries.
-    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of LogEntry.insertId.
-    "resourceNames": [ # Required. Names of one or more resources from which to retrieve log entries:
+    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.
+    "resourceNames": [ # Required. Names of one or more parent resources from which to retrieve log entries:
         # "projects/[PROJECT_ID]"
         # "organizations/[ORGANIZATION_ID]"
+        # "billingAccounts/[BILLING_ACCOUNT_ID]"
+        # "folders/[FOLDER_ID]"
         # Projects listed in the project_ids field are added to this list.
       "A String",
     ],
-    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
+    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.
     "filter": "A String", # Optional. A filter that chooses which log entries to return. See Advanced Logs Filters. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.
-    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
+    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.
     "projectIds": [ # Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: "my-project-1A". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.
       "A String",
     ],
@@ -119,14 +124,14 @@
       { # An individual entry in a log.
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
-          "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
-          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
           "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "cacheFillBytes": "A String", # The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.
           "requestUrl": "A String", # The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: "http://example.com/some/info?color=red".
           "serverIp": "A String", # The IP address (IPv4 or IPv6) of the origin server that the request was sent to.
           "cacheLookup": True or False, # Whether or not a cache lookup was attempted.
-          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
+          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
           "referer": "A String", # The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
           "remoteIp": "A String", # The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
           "userAgent": "A String", # The user agent sent by the client. Example: "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
@@ -142,23 +147,26 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -170,15 +178,28 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
     <code class="details" id="write">write(body, x__xgafv=None)</code>
-  <pre>Writes log entries to Stackdriver Logging. All log entries are written by this method.
+  <pre>Writes log entries to Stackdriver Logging.
 
 Args:
   body: object, The request body. (required)
@@ -198,26 +219,28 @@
       },
       "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
     },
-    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, the response status will be the error associated with one of the failed entries and include error details in the form of WriteLogEntriesPartialErrors.
+    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.
     "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
       "a_key": "A String",
     },
     "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
         # "projects/[PROJECT_ID]/logs/[LOG_ID]"
         # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+        # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+        # "folders/[FOLDER_ID]/logs/[LOG_ID]"
         # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
-    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are added to those log entries that do not provide their own values for the fields.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
+    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are inserted into those log entries in this list that do not provide their own values.Stackdriver Logging also creates and inserts values for timestamp and insert_id if the entries do not provide them. The created insert_id for the N'th entry in this list will be greater than earlier entries and less than later entries. Otherwise, the order of log entries in this list does not matter.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
       { # An individual entry in a log.
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
-          "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
-          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
           "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "cacheFillBytes": "A String", # The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.
           "requestUrl": "A String", # The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: "http://example.com/some/info?color=red".
           "serverIp": "A String", # The IP address (IPv4 or IPv6) of the origin server that the request was sent to.
           "cacheLookup": True or False, # Whether or not a cache lookup was attempted.
-          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
+          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
           "referer": "A String", # The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
           "remoteIp": "A String", # The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
           "userAgent": "A String", # The user agent sent by the client. Example: "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
@@ -233,23 +256,26 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -261,7 +287,6 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }
diff --git a/docs/dyn/logging_v2.folders.logs.html b/docs/dyn/logging_v2.folders.logs.html
index c2d6b2c..9b2db43 100644
--- a/docs/dyn/logging_v2.folders.logs.html
+++ b/docs/dyn/logging_v2.folders.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.folders.sinks.html b/docs/dyn/logging_v2.folders.sinks.html
index 5fe02f0..476f770 100644
--- a/docs/dyn/logging_v2.folders.sinks.html
+++ b/docs/dyn/logging_v2.folders.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,11 +101,13 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -120,7 +122,7 @@
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -129,7 +131,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -153,7 +155,9 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
+Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,9 +179,11 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The parent resource name of the sink:
+  sinkName: string, Required. The resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -187,7 +193,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -204,11 +210,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
+  parent: string, Required. The parent resource whose sinks are to be listed:
+"projects/[PROJECT_ID]"
+"organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
+ (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -222,7 +233,7 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
           "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
@@ -262,11 +273,13 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -283,8 +296,8 @@
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value was true and the new value is false.
+If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value is true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -293,7 +306,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
diff --git a/docs/dyn/logging_v2.organizations.logs.html b/docs/dyn/logging_v2.organizations.logs.html
index 323c113..5974754 100644
--- a/docs/dyn/logging_v2.organizations.logs.html
+++ b/docs/dyn/logging_v2.organizations.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.organizations.sinks.html b/docs/dyn/logging_v2.organizations.sinks.html
index ad06cec..9b375b8 100644
--- a/docs/dyn/logging_v2.organizations.sinks.html
+++ b/docs/dyn/logging_v2.organizations.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,11 +101,13 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -120,7 +122,7 @@
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -129,7 +131,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -153,7 +155,9 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
+Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,9 +179,11 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The parent resource name of the sink:
+  sinkName: string, Required. The resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -187,7 +193,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -204,11 +210,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
+  parent: string, Required. The parent resource whose sinks are to be listed:
+"projects/[PROJECT_ID]"
+"organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
+ (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -222,7 +233,7 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
           "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
@@ -262,11 +273,13 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -283,8 +296,8 @@
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value was true and the new value is false.
+If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value is true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -293,7 +306,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
diff --git a/docs/dyn/logging_v2.projects.logs.html b/docs/dyn/logging_v2.projects.logs.html
index 1e1af12..75ed366 100644
--- a/docs/dyn/logging_v2.projects.logs.html
+++ b/docs/dyn/logging_v2.projects.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.projects.metrics.html b/docs/dyn/logging_v2.projects.metrics.html
index 2e6bcb6..a625799 100644
--- a/docs/dyn/logging_v2.projects.metrics.html
+++ b/docs/dyn/logging_v2.projects.metrics.html
@@ -109,8 +109,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -126,8 +126,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
@@ -176,8 +176,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
@@ -206,8 +206,8 @@
               # "resource.type=gae_app AND severity>=ERROR"
               # The maximum length of the filter is 20000 characters.
           "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-          "description": "A String", # Optional. A description of this metric, which is used in documentation.
           "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+          "description": "A String", # Optional. A description of this metric, which is used in documentation.
         },
     ],
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
@@ -244,8 +244,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -261,8 +261,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
diff --git a/docs/dyn/logging_v2.projects.sinks.html b/docs/dyn/logging_v2.projects.sinks.html
index 4019cc6..280a046 100644
--- a/docs/dyn/logging_v2.projects.sinks.html
+++ b/docs/dyn/logging_v2.projects.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,11 +101,13 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -120,7 +122,7 @@
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -129,7 +131,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -153,7 +155,9 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
+Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,9 +179,11 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The parent resource name of the sink:
+  sinkName: string, Required. The resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -187,7 +193,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -204,11 +210,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
+  parent: string, Required. The parent resource whose sinks are to be listed:
+"projects/[PROJECT_ID]"
+"organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
+ (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -222,7 +233,7 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
           "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
@@ -262,11 +273,13 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -283,8 +296,8 @@
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value was true and the new value is false.
+If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value is true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -293,7 +306,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
diff --git a/docs/dyn/logging_v2beta1.billingAccounts.logs.html b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
index 3036096..c467d7d 100644
--- a/docs/dyn/logging_v2beta1.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2beta1.entries.html b/docs/dyn/logging_v2beta1.entries.html
index 6602c0d..885a189 100644
--- a/docs/dyn/logging_v2beta1.entries.html
+++ b/docs/dyn/logging_v2beta1.entries.html
@@ -78,8 +78,11 @@
   <code><a href="#list">list(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists log entries. Use this method to retrieve log entries from Stackdriver Logging. For ways to export log entries, see Exporting Logs.</p>
 <p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#write">write(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Writes log entries to Stackdriver Logging. All log entries are written by this method.</p>
+<p class="firstline">Writes log entries to Stackdriver Logging.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(body, x__xgafv=None)</code>
@@ -90,16 +93,18 @@
     The object takes the form of:
 
 { # The parameters to ListLogEntries.
-    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of LogEntry.insertId.
-    "resourceNames": [ # Required. Names of one or more resources from which to retrieve log entries:
+    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.
+    "resourceNames": [ # Required. Names of one or more parent resources from which to retrieve log entries:
         # "projects/[PROJECT_ID]"
         # "organizations/[ORGANIZATION_ID]"
+        # "billingAccounts/[BILLING_ACCOUNT_ID]"
+        # "folders/[FOLDER_ID]"
         # Projects listed in the project_ids field are added to this list.
       "A String",
     ],
-    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
+    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.
     "filter": "A String", # Optional. A filter that chooses which log entries to return. See Advanced Logs Filters. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.
-    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
+    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.
     "projectIds": [ # Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: "my-project-1A". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.
       "A String",
     ],
@@ -142,19 +147,22 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
         "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -170,21 +178,44 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
     <code class="details" id="write">write(body, x__xgafv=None)</code>
-  <pre>Writes log entries to Stackdriver Logging. All log entries are written by this method.
+  <pre>Writes log entries to Stackdriver Logging.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The parameters to WriteLogEntries.
+    "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
+        # "projects/[PROJECT_ID]/logs/[LOG_ID]"
+        # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+        # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+        # "folders/[FOLDER_ID]/logs/[LOG_ID]"
+        # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
+    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.
+    "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
+      "a_key": "A String",
+    },
     "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:
         # { "type": "gce_instance",
         #   "labels": {
@@ -198,15 +229,7 @@
       },
       "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
     },
-    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, the response status will be the error associated with one of the failed entries and include error details in the form of WriteLogEntriesPartialErrors.
-    "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
-      "a_key": "A String",
-    },
-    "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
-        # "projects/[PROJECT_ID]/logs/[LOG_ID]"
-        # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-        # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
-    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are added to those log entries that do not provide their own values for the fields.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
+    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are inserted into those log entries in this list that do not provide their own values.Stackdriver Logging also creates and inserts values for timestamp and insert_id if the entries do not provide them. The created insert_id for the N'th entry in this list will be greater than earlier entries and less than later entries. Otherwise, the order of log entries in this list does not matter.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
       { # An individual entry in a log.
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
@@ -233,19 +256,22 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
         "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -261,7 +287,6 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }
diff --git a/docs/dyn/logging_v2beta1.monitoredResourceDescriptors.html b/docs/dyn/logging_v2beta1.monitoredResourceDescriptors.html
index b5ce7bd..72ffe03 100644
--- a/docs/dyn/logging_v2beta1.monitoredResourceDescriptors.html
+++ b/docs/dyn/logging_v2beta1.monitoredResourceDescriptors.html
@@ -109,8 +109,8 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
       },
     ],
   }</pre>
diff --git a/docs/dyn/logging_v2beta1.organizations.logs.html b/docs/dyn/logging_v2beta1.organizations.logs.html
index ed86da3..23b0b7b 100644
--- a/docs/dyn/logging_v2beta1.organizations.logs.html
+++ b/docs/dyn/logging_v2beta1.organizations.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2beta1.projects.logs.html b/docs/dyn/logging_v2beta1.projects.logs.html
index f9571c8..a047d54 100644
--- a/docs/dyn/logging_v2beta1.projects.logs.html
+++ b/docs/dyn/logging_v2beta1.projects.logs.html
@@ -76,22 +76,24 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</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(logName=None, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -111,12 +113,14 @@
 
 <div class="method">
     <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
+  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2beta1.projects.metrics.html b/docs/dyn/logging_v2beta1.projects.metrics.html
index 7bd636d..802a1b7 100644
--- a/docs/dyn/logging_v2beta1.projects.metrics.html
+++ b/docs/dyn/logging_v2beta1.projects.metrics.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(metricName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists logs-based metrics.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -109,8 +109,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -126,8 +126,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
@@ -176,41 +176,41 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists logs-based metrics.
 
 Args:
   parent: string, Required. The name of the project containing the metrics:
 "projects/[PROJECT_ID]"
  (required)
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
 
     { # Result returned from ListLogMetrics.
+    "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
     "metrics": [ # A list of logs-based metrics.
       { # Describes a logs-based metric. The value of the metric is the number of log entries that match a logs filter in a given time interval.
           "filter": "A String", # Required. An advanced logs filter which is used to match log entries. Example:
               # "resource.type=gae_app AND severity>=ERROR"
               # The maximum length of the filter is 20000 characters.
           "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-          "description": "A String", # Optional. A description of this metric, which is used in documentation.
           "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+          "description": "A String", # Optional. A description of this metric, which is used in documentation.
         },
     ],
-    "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
   }</pre>
 </div>
 
@@ -244,8 +244,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -261,8 +261,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
diff --git a/docs/dyn/logging_v2beta1.projects.sinks.html b/docs/dyn/logging_v2beta1.projects.sinks.html
index 40d5624..8ea4016 100644
--- a/docs/dyn/logging_v2beta1.projects.sinks.html
+++ b/docs/dyn/logging_v2beta1.projects.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,11 +101,13 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -120,7 +122,7 @@
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -129,7 +131,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -153,7 +155,9 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
+Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,9 +179,11 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The parent resource name of the sink:
+  sinkName: string, Required. The resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -187,7 +193,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
@@ -204,11 +210,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
+  parent: string, Required. The parent resource whose sinks are to be listed:
+"projects/[PROJECT_ID]"
+"organizations/[ORGANIZATION_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]"
+"folders/[FOLDER_ID]"
+ (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -222,7 +233,7 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
           "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
@@ -262,11 +273,13 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
+"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
+"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
     "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
@@ -283,8 +296,8 @@
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value was true and the new value is false.
+If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value is true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -293,7 +306,7 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
       "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
diff --git a/docs/dyn/manufacturers_v1.accounts.products.html b/docs/dyn/manufacturers_v1.accounts.products.html
index 240c393..08ea302 100644
--- a/docs/dyn/manufacturers_v1.accounts.products.html
+++ b/docs/dyn/manufacturers_v1.accounts.products.html
@@ -227,8 +227,8 @@
             # https://support.google.com/manufacturers/answer/6124116.
         "type": "A String", # The server-generated type of the issue, for example,
             # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
-        "severity": "A String", # The severity of the issue.
         "description": "A String", # Description of the issue.
+        "severity": "A String", # The severity of the issue.
       },
     ],
     "productId": "A String", # The ID of the product. For more information, see
@@ -375,8 +375,8 @@
                 # https://support.google.com/manufacturers/answer/6124116.
             "type": "A String", # The server-generated type of the issue, for example,
                 # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
-            "severity": "A String", # The severity of the issue.
             "description": "A String", # Description of the issue.
+            "severity": "A String", # The severity of the issue.
           },
         ],
         "productId": "A String", # The ID of the product. For more information, see
diff --git a/docs/dyn/ml_v1.html b/docs/dyn/ml_v1.html
new file mode 100644
index 0000000..ee95955
--- /dev/null
+++ b/docs/dyn/ml_v1.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="ml_v1.html">Google Cloud Machine Learning Engine</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ml_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ml_v1.projects.html b/docs/dyn/ml_v1.projects.html
new file mode 100644
index 0000000..f228e04
--- /dev/null
+++ b/docs/dyn/ml_v1.projects.html
@@ -0,0 +1,418 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ml_v1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ml_v1.projects.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="ml_v1.projects.models.html">models()</a></code>
+</p>
+<p class="firstline">Returns the models Resource.</p>
+
+<p class="toc_element">
+  <code><a href="ml_v1.projects.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#getConfig">getConfig(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Get the service account information associated with your project. You need</p>
+<p class="toc_element">
+  <code><a href="#predict">predict(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Performs prediction on the data in the request.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getConfig">getConfig(name=None, x__xgafv=None)</code>
+  <pre>Get the service account information associated with your project. You need
+this information in order to grant the service account persmissions for
+the Google Cloud Storage location where you put your model training code
+for training the model with Google Cloud Machine Learning.
+
+Args:
+  name: string, Required. The project name.
+
+Authorization: requires `Viewer` role on the specified project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Returns service account information associated with a project.
+    "serviceAccountProject": "A String", # The project number for `service_account`.
+    "serviceAccount": "A String", # The service account Cloud ML uses to access resources in the project.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="predict">predict(name=None, body, x__xgafv=None)</code>
+  <pre>Performs prediction on the data in the request.
+
+**** REMOVE FROM GENERATED DOCUMENTATION
+
+Args:
+  name: string, Required. The resource name of a model or a version.
+
+Authorization: requires `Viewer` role on the parent project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for predictions to be issued against a trained model.
+      # 
+      # The body of the request is a single JSON object with a single top-level
+      # field:
+      # 
+      # <dl>
+      #   <dt>instances</dt>
+      #   <dd>A JSON array containing values representing the instances to use for
+      #       prediction.</dd>
+      # </dl>
+      # 
+      # The structure of each element of the instances list is determined by your
+      # model's input definition. Instances can include named inputs or can contain
+      # only unlabeled values.
+      # 
+      # Not all data includes named inputs. Some instances will be simple
+      # JSON values (boolean, number, or string). However, instances are often lists
+      # of simple values, or complex nested lists. Here are some examples of request
+      # bodies:
+      # 
+      # CSV data with each row encoded as a string value:
+      # <pre>
+      # {"instances": ["1.0,true,\\"x\\"", "-2.0,false,\\"y\\""]}
+      # </pre>
+      # Plain text:
+      # <pre>
+      # {"instances": ["the quick brown fox", "la bruja le dio"]}
+      # </pre>
+      # Sentences encoded as lists of words (vectors of strings):
+      # <pre>
+      # {
+      #   "instances": [
+      #     ["the","quick","brown"],
+      #     ["la","bruja","le"],
+      #     ...
+      #   ]
+      # }
+      # </pre>
+      # Floating point scalar values:
+      # <pre>
+      # {"instances": [0.0, 1.1, 2.2]}
+      # </pre>
+      # Vectors of integers:
+      # <pre>
+      # {
+      #   "instances": [
+      #     [0, 1, 2],
+      #     [3, 4, 5],
+      #     ...
+      #   ]
+      # }
+      # </pre>
+      # Tensors (in this case, two-dimensional tensors):
+      # <pre>
+      # {
+      #   "instances": [
+      #     [
+      #       [0, 1, 2],
+      #       [3, 4, 5]
+      #     ],
+      #     ...
+      #   ]
+      # }
+      # </pre>
+      # Images can be represented different ways. In this encoding scheme the first
+      # two dimensions represent the rows and columns of the image, and the third
+      # contains lists (vectors) of the R, G, and B values for each pixel.
+      # <pre>
+      # {
+      #   "instances": [
+      #     [
+      #       [
+      #         [138, 30, 66],
+      #         [130, 20, 56],
+      #         ...
+      #       ],
+      #       [
+      #         [126, 38, 61],
+      #         [122, 24, 57],
+      #         ...
+      #       ],
+      #       ...
+      #     ],
+      #     ...
+      #   ]
+      # }
+      # </pre>
+      # JSON strings must be encoded as UTF-8. To send binary data, you must
+      # base64-encode the data and mark it as binary. To mark a JSON string
+      # as binary, replace it with a JSON object with a single attribute named `b64`:
+      # <pre>{"b64": "..."} </pre>
+      # For example:
+      # 
+      # Two Serialized tf.Examples (fake data, for illustrative purposes only):
+      # <pre>
+      # {"instances": [{"b64": "X5ad6u"}, {"b64": "IA9j4nx"}]}
+      # </pre>
+      # Two JPEG image byte strings (fake data, for illustrative purposes only):
+      # <pre>
+      # {"instances": [{"b64": "ASa8asdf"}, {"b64": "JLK7ljk3"}]}
+      # </pre>
+      # If your data includes named references, format each instance as a JSON object
+      # with the named references as the keys:
+      # 
+      # JSON input data to be preprocessed:
+      # <pre>
+      # {
+      #   "instances": [
+      #     {
+      #       "a": 1.0,
+      #       "b": true,
+      #       "c": "x"
+      #     },
+      #     {
+      #       "a": -2.0,
+      #       "b": false,
+      #       "c": "y"
+      #     }
+      #   ]
+      # }
+      # </pre>
+      # Some models have an underlying TensorFlow graph that accepts multiple input
+      # tensors. In this case, you should use the names of JSON name/value pairs to
+      # identify the input tensors, as shown in the following exmaples:
+      # 
+      # For a graph with input tensor aliases "tag" (string) and "image"
+      # (base64-encoded string):
+      # <pre>
+      # {
+      #   "instances": [
+      #     {
+      #       "tag": "beach",
+      #       "image": {"b64": "ASa8asdf"}
+      #     },
+      #     {
+      #       "tag": "car",
+      #       "image": {"b64": "JLK7ljk3"}
+      #     }
+      #   ]
+      # }
+      # </pre>
+      # For a graph with input tensor aliases "tag" (string) and "image"
+      # (3-dimensional array of 8-bit ints):
+      # <pre>
+      # {
+      #   "instances": [
+      #     {
+      #       "tag": "beach",
+      #       "image": [
+      #         [
+      #           [138, 30, 66],
+      #           [130, 20, 56],
+      #           ...
+      #         ],
+      #         [
+      #           [126, 38, 61],
+      #           [122, 24, 57],
+      #           ...
+      #         ],
+      #         ...
+      #       ]
+      #     },
+      #     {
+      #       "tag": "car",
+      #       "image": [
+      #         [
+      #           [255, 0, 102],
+      #           [255, 0, 97],
+      #           ...
+      #         ],
+      #         [
+      #           [254, 1, 101],
+      #           [254, 2, 93],
+      #           ...
+      #         ],
+      #         ...
+      #       ]
+      #     },
+      #     ...
+      #   ]
+      # }
+      # </pre>
+      # If the call is successful, the response body will contain one prediction
+      # entry per instance in the request body. If prediction fails for any
+      # instance, the response body will contain no predictions and will contian
+      # a single error entry instead.
+    "httpBody": { # Message that represents an arbitrary HTTP body. It should only be used for # 
+        # Required. The prediction request body.
+        # payload formats that can't be represented as JSON, such as raw binary or
+        # an HTML page.
+        #
+        #
+        # This message can be used both in streaming and non-streaming API methods in
+        # the request as well as the response.
+        #
+        # It can be used as a top-level request field, which is convenient if one
+        # wants to extract parameters from either the URL or HTTP template into the
+        # request fields and also want access to the raw HTTP body.
+        #
+        # Example:
+        #
+        #     message GetResourceRequest {
+        #       // A unique request id.
+        #       string request_id = 1;
+        #
+        #       // The raw HTTP body is bound to this field.
+        #       google.api.HttpBody http_body = 2;
+        #     }
+        #
+        #     service ResourceService {
+        #       rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
+        #       rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);
+        #     }
+        #
+        # Example with streaming methods:
+        #
+        #     service CaldavService {
+        #       rpc GetCalendar(stream google.api.HttpBody)
+        #         returns (stream google.api.HttpBody);
+        #       rpc UpdateCalendar(stream google.api.HttpBody)
+        #         returns (stream google.api.HttpBody);
+        #     }
+        #
+        # Use of this type only changes how the request and response bodies are
+        # handled, all other features will continue to work unchanged.
+      "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
+      "data": "A String", # HTTP body binary data.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Message that represents an arbitrary HTTP body. It should only be used for
+      # payload formats that can't be represented as JSON, such as raw binary or
+      # an HTML page.
+      #
+      #
+      # This message can be used both in streaming and non-streaming API methods in
+      # the request as well as the response.
+      #
+      # It can be used as a top-level request field, which is convenient if one
+      # wants to extract parameters from either the URL or HTTP template into the
+      # request fields and also want access to the raw HTTP body.
+      #
+      # Example:
+      #
+      #     message GetResourceRequest {
+      #       // A unique request id.
+      #       string request_id = 1;
+      #
+      #       // The raw HTTP body is bound to this field.
+      #       google.api.HttpBody http_body = 2;
+      #     }
+      #
+      #     service ResourceService {
+      #       rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
+      #       rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty);
+      #     }
+      #
+      # Example with streaming methods:
+      #
+      #     service CaldavService {
+      #       rpc GetCalendar(stream google.api.HttpBody)
+      #         returns (stream google.api.HttpBody);
+      #       rpc UpdateCalendar(stream google.api.HttpBody)
+      #         returns (stream google.api.HttpBody);
+      #     }
+      #
+      # Use of this type only changes how the request and response bodies are
+      # handled, all other features will continue to work unchanged.
+    "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
+    "data": "A String", # HTTP body binary data.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ml_v1.projects.jobs.html b/docs/dyn/ml_v1.projects.jobs.html
new file mode 100644
index 0000000..a1f577b
--- /dev/null
+++ b/docs/dyn/ml_v1.projects.jobs.html
@@ -0,0 +1,1079 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ml_v1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1.projects.html">projects</a> . <a href="ml_v1.projects.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Cancels a running job.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a training or a batch prediction job.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Describes a job.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the jobs in the 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="cancel">cancel(name=None, body, x__xgafv=None)</code>
+  <pre>Cancels a running job.
+
+Args:
+  name: string, Required. The name of the job to cancel.
+
+Authorization: requires `Editor` role on the parent project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for the CancelJob method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates a training or a batch prediction job.
+
+Args:
+  parent: string, Required. The project name.
+
+Authorization: requires `Editor` role on the specified project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a training or prediction job.
+    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+    "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+          # Only set for hyperparameter tuning jobs.
+      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+      "trials": [ # Results for individual Hyperparameter trials.
+          # Only set for hyperparameter tuning jobs.
+        { # Represents the result of a single hyperparameter tuning trial from a
+            # training job. The TrainingOutput object that is returned on successful
+            # completion of a training job with hyperparameter tuning includes a list
+            # of HyperparameterOutput objects, one for each successful trial.
+          "hyperparameters": { # The hyperparameters given to this trial.
+            "a_key": "A String",
+          },
+          "trialId": "A String", # The trial id for these results.
+          "allMetrics": [ # All recorded object metrics for this trial.
+            { # An observed value of a metric.
+              "trainingStep": "A String", # The global training step for this metric.
+              "objectiveValue": 3.14, # The objective value at this training step.
+            },
+          ],
+          "finalMetric": { # An observed value of a metric. # The final objective metric seen for this trial.
+            "trainingStep": "A String", # The global training step for this metric.
+            "objectiveValue": 3.14, # The objective value at this training step.
+          },
+        },
+      ],
+      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+    },
+    "startTime": "A String", # Output only. When the job processing was started.
+    "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
+      "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+          # job's worker nodes.
+          #
+          # The supported values are the same as those described in the entry for
+          # `masterType`.
+          #
+          # This value must be present when `scaleTier` is set to `CUSTOM` and
+          # `workerCount` is greater than zero.
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+          # set, Google Cloud ML will choose the latest stable version.
+      "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
+          # and parameter servers.
+      "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+          # job's master worker.
+          #
+          # The following types are supported:
+          #
+          # <dl>
+          #   <dt>standard</dt>
+          #   <dd>
+          #   A basic machine configuration suitable for training simple models with
+          #   small to moderate datasets.
+          #   </dd>
+          #   <dt>large_model</dt>
+          #   <dd>
+          #   A machine with a lot of memory, specially suited for parameter servers
+          #   when your model is large (having many hidden layers or layers with very
+          #   large numbers of nodes).
+          #   </dd>
+          #   <dt>complex_model_s</dt>
+          #   <dd>
+          #   A machine suitable for the master and workers of the cluster when your
+          #   model requires more computation than the standard machine can handle
+          #   satisfactorily.
+          #   </dd>
+          #   <dt>complex_model_m</dt>
+          #   <dd>
+          #   A machine with roughly twice the number of cores and roughly double the
+          #   memory of <code suppresswarning="true">complex_model_s</code>.
+          #   </dd>
+          #   <dt>complex_model_l</dt>
+          #   <dd>
+          #   A machine with roughly twice the number of cores and roughly double the
+          #   memory of <code suppresswarning="true">complex_model_m</code>.
+          #   </dd>
+          #   <dt>standard_gpu</dt>
+          #   <dd>
+          #   A machine equivalent to <code suppresswarning="true">standard</code> that
+          #   also includes a
+          #   <a href="ml/docs/how-tos/using-gpus">
+          #   GPU that you can use in your trainer</a>.
+          #   </dd>
+          #   <dt>complex_model_m_gpu</dt>
+          #   <dd>
+          #   A machine equivalent to
+          #   <code suppresswarning="true">coplex_model_m</code> that also includes
+          #   four GPUs.
+          #   </dd>
+          # </dl>
+          #
+          # You must set this value when `scaleTier` is set to `CUSTOM`.
+      "hyperparameters": { # Represents a set of hyperparameters to optimize. # Optional. The set of Hyperparameters to tune.
+        "maxTrials": 42, # Optional. How many training trials should be attempted to optimize
+            # the specified hyperparameters.
+            #
+            # Defaults to one.
+        "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+            # current versions of Tensorflow, this tag name should exactly match what is
+            # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+            # prior to 0.12, this should be only the tag passed to tf.Summary.
+            # By default, "training/hptuning/metric" will be used.
+        "params": [ # Required. The set of parameters to tune.
+          { # Represents a single hyperparameter to optimize.
+            "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
+                # should be unset if type is `CATEGORICAL`. This value should be integers if
+                # type is `INTEGER`.
+            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                # should be unset if type is `CATEGORICAL`. This value should be integers if
+                # type is INTEGER.
+            "discreteValues": [ # Required if type is `DISCRETE`.
+                # A list of feasible points.
+                # The list should be in strictly increasing order. For instance, this
+                # parameter might have possible settings of 1.5, 2.5, and 4.0. This list
+                # should not contain more than 1,000 values.
+              3.14,
+            ],
+            "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
+                # a HyperparameterSpec message. E.g., "learning_rate".
+            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+              "A String",
+            ],
+            "type": "A String", # Required. The type of the parameter.
+            "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
+                # Leave unset for categorical parameters.
+                # Some kind of scaling is strongly recommended for real or integral
+                # parameters (e.g., `UNIT_LINEAR_SCALE`).
+          },
+        ],
+        "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
+            # You can reduce the time it takes to perform hyperparameter tuning by adding
+            # trials in parallel. However, each trail only benefits from the information
+            # gained in completed trials. That means that a trial does not get access to
+            # the results of trials running at the same time, which could reduce the
+            # quality of the overall optimization.
+            #
+            # Each trial will use the same scale tier and machine types.
+            #
+            # Defaults to one.
+        "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+            # `MAXIMIZE` and `MINIMIZE`.
+            #
+            # Defaults to `MAXIMIZE`.
+      },
+      "region": "A String", # Required. The Google Compute Engine region to run the training job in.
+      "args": [ # Optional. Command line arguments to pass to the program.
+        "A String",
+      ],
+      "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+      "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+          # and other data needed for training. This path is passed to your TensorFlow
+          # program as the 'job_dir' command-line argument. The benefit of specifying
+          # this field is that Cloud ML validates the path for use in training.
+      "packageUris": [ # Required. The Google Cloud Storage location of the packages with
+          # the training program and any additional dependencies.
+        "A String",
+      ],
+      "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
+          # replica in the cluster will be of the type specified in `worker_type`.
+          #
+          # This value can only be used when `scale_tier` is set to `CUSTOM`. If you
+          # set this value, you must also set `worker_type`.
+      "parameterServerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+          # job's parameter server.
+          #
+          # The supported values are the same as those described in the entry for
+          # `master_type`.
+          #
+          # This value must be present when `scaleTier` is set to `CUSTOM` and
+          # `parameter_server_count` is greater than zero.
+      "parameterServerCount": "A String", # Optional. The number of parameter server replicas to use for the training
+          # job. Each replica in the cluster will be of the type specified in
+          # `parameter_server_type`.
+          #
+          # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
+          # set this value, you must also set `parameter_server_type`.
+    },
+    "jobId": "A String", # Required. The user-specified id of the job.
+    "state": "A String", # Output only. The detailed state of a job.
+    "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+      "modelName": "A String", # Use this field if you want to use the default version for the specified
+          # model. The string must use the following format:
+          #
+          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+          # prediction. If not set, Google Cloud ML will pick the runtime version used
+          # during the CreateVersion request for this model version, or choose the
+          # latest stable version when model version information is not available
+          # such as when the model is specified by uri.
+      "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+          # May contain wildcards.
+        "A String",
+      ],
+      "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+          # Defaults to 10 if not specified.
+      "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+          # the model to use.
+      "outputPath": "A String", # Required. The output Google Cloud Storage location.
+      "dataFormat": "A String", # Required. The format of the input data files.
+      "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+          # string is formatted the same way as `model_version`, with the addition
+          # of the version information:
+          #
+          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+      "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+    },
+    "endTime": "A String", # Output only. When the job processing was completed.
+    "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
+      "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+      "nodeHours": 3.14, # Node hours used by the batch prediction job.
+      "predictionCount": "A String", # The number of generated predictions.
+      "errorCount": "A String", # The number of data instances which resulted in errors.
+    },
+    "createTime": "A String", # Output only. When the job was created.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a training or prediction job.
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+        "trials": [ # Results for individual Hyperparameter trials.
+            # Only set for hyperparameter tuning jobs.
+          { # Represents the result of a single hyperparameter tuning trial from a
+              # training job. The TrainingOutput object that is returned on successful
+              # completion of a training job with hyperparameter tuning includes a list
+              # of HyperparameterOutput objects, one for each successful trial.
+            "hyperparameters": { # The hyperparameters given to this trial.
+              "a_key": "A String",
+            },
+            "trialId": "A String", # The trial id for these results.
+            "allMetrics": [ # All recorded object metrics for this trial.
+              { # An observed value of a metric.
+                "trainingStep": "A String", # The global training step for this metric.
+                "objectiveValue": 3.14, # The objective value at this training step.
+              },
+            ],
+            "finalMetric": { # An observed value of a metric. # The final objective metric seen for this trial.
+              "trainingStep": "A String", # The global training step for this metric.
+              "objectiveValue": 3.14, # The objective value at this training step.
+            },
+          },
+        ],
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      },
+      "startTime": "A String", # Output only. When the job processing was started.
+      "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
+        "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's worker nodes.
+            #
+            # The supported values are the same as those described in the entry for
+            # `masterType`.
+            #
+            # This value must be present when `scaleTier` is set to `CUSTOM` and
+            # `workerCount` is greater than zero.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+            # set, Google Cloud ML will choose the latest stable version.
+        "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
+            # and parameter servers.
+        "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's master worker.
+            #
+            # The following types are supported:
+            #
+            # <dl>
+            #   <dt>standard</dt>
+            #   <dd>
+            #   A basic machine configuration suitable for training simple models with
+            #   small to moderate datasets.
+            #   </dd>
+            #   <dt>large_model</dt>
+            #   <dd>
+            #   A machine with a lot of memory, specially suited for parameter servers
+            #   when your model is large (having many hidden layers or layers with very
+            #   large numbers of nodes).
+            #   </dd>
+            #   <dt>complex_model_s</dt>
+            #   <dd>
+            #   A machine suitable for the master and workers of the cluster when your
+            #   model requires more computation than the standard machine can handle
+            #   satisfactorily.
+            #   </dd>
+            #   <dt>complex_model_m</dt>
+            #   <dd>
+            #   A machine with roughly twice the number of cores and roughly double the
+            #   memory of <code suppresswarning="true">complex_model_s</code>.
+            #   </dd>
+            #   <dt>complex_model_l</dt>
+            #   <dd>
+            #   A machine with roughly twice the number of cores and roughly double the
+            #   memory of <code suppresswarning="true">complex_model_m</code>.
+            #   </dd>
+            #   <dt>standard_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to <code suppresswarning="true">standard</code> that
+            #   also includes a
+            #   <a href="ml/docs/how-tos/using-gpus">
+            #   GPU that you can use in your trainer</a>.
+            #   </dd>
+            #   <dt>complex_model_m_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to
+            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   four GPUs.
+            #   </dd>
+            # </dl>
+            #
+            # You must set this value when `scaleTier` is set to `CUSTOM`.
+        "hyperparameters": { # Represents a set of hyperparameters to optimize. # Optional. The set of Hyperparameters to tune.
+          "maxTrials": 42, # Optional. How many training trials should be attempted to optimize
+              # the specified hyperparameters.
+              #
+              # Defaults to one.
+          "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+              # current versions of Tensorflow, this tag name should exactly match what is
+              # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+              # prior to 0.12, this should be only the tag passed to tf.Summary.
+              # By default, "training/hptuning/metric" will be used.
+          "params": [ # Required. The set of parameters to tune.
+            { # Represents a single hyperparameter to optimize.
+              "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is `INTEGER`.
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
+              "discreteValues": [ # Required if type is `DISCRETE`.
+                  # A list of feasible points.
+                  # The list should be in strictly increasing order. For instance, this
+                  # parameter might have possible settings of 1.5, 2.5, and 4.0. This list
+                  # should not contain more than 1,000 values.
+                3.14,
+              ],
+              "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
+                  # a HyperparameterSpec message. E.g., "learning_rate".
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
+              "type": "A String", # Required. The type of the parameter.
+              "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
+                  # Leave unset for categorical parameters.
+                  # Some kind of scaling is strongly recommended for real or integral
+                  # parameters (e.g., `UNIT_LINEAR_SCALE`).
+            },
+          ],
+          "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
+              # You can reduce the time it takes to perform hyperparameter tuning by adding
+              # trials in parallel. However, each trail only benefits from the information
+              # gained in completed trials. That means that a trial does not get access to
+              # the results of trials running at the same time, which could reduce the
+              # quality of the overall optimization.
+              #
+              # Each trial will use the same scale tier and machine types.
+              #
+              # Defaults to one.
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
+        },
+        "region": "A String", # Required. The Google Compute Engine region to run the training job in.
+        "args": [ # Optional. Command line arguments to pass to the program.
+          "A String",
+        ],
+        "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+        "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+            # and other data needed for training. This path is passed to your TensorFlow
+            # program as the 'job_dir' command-line argument. The benefit of specifying
+            # this field is that Cloud ML validates the path for use in training.
+        "packageUris": [ # Required. The Google Cloud Storage location of the packages with
+            # the training program and any additional dependencies.
+          "A String",
+        ],
+        "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
+            # replica in the cluster will be of the type specified in `worker_type`.
+            #
+            # This value can only be used when `scale_tier` is set to `CUSTOM`. If you
+            # set this value, you must also set `worker_type`.
+        "parameterServerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's parameter server.
+            #
+            # The supported values are the same as those described in the entry for
+            # `master_type`.
+            #
+            # This value must be present when `scaleTier` is set to `CUSTOM` and
+            # `parameter_server_count` is greater than zero.
+        "parameterServerCount": "A String", # Optional. The number of parameter server replicas to use for the training
+            # job. Each replica in the cluster will be of the type specified in
+            # `parameter_server_type`.
+            #
+            # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
+            # set this value, you must also set `parameter_server_type`.
+      },
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+        "modelName": "A String", # Use this field if you want to use the default version for the specified
+            # model. The string must use the following format:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
+        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+            # May contain wildcards.
+          "A String",
+        ],
+        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+            # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
+        "outputPath": "A String", # Required. The output Google Cloud Storage location.
+        "dataFormat": "A String", # Required. The format of the input data files.
+        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+            # string is formatted the same way as `model_version`, with the addition
+            # of the version information:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+      },
+      "endTime": "A String", # Output only. When the job processing was completed.
+      "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
+        "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+        "nodeHours": 3.14, # Node hours used by the batch prediction job.
+        "predictionCount": "A String", # The number of generated predictions.
+        "errorCount": "A String", # The number of data instances which resulted in errors.
+      },
+      "createTime": "A String", # Output only. When the job was created.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Describes a job.
+
+Args:
+  name: string, Required. The name of the job to get the description of.
+
+Authorization: requires `Viewer` role on the parent project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a training or prediction job.
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+        "trials": [ # Results for individual Hyperparameter trials.
+            # Only set for hyperparameter tuning jobs.
+          { # Represents the result of a single hyperparameter tuning trial from a
+              # training job. The TrainingOutput object that is returned on successful
+              # completion of a training job with hyperparameter tuning includes a list
+              # of HyperparameterOutput objects, one for each successful trial.
+            "hyperparameters": { # The hyperparameters given to this trial.
+              "a_key": "A String",
+            },
+            "trialId": "A String", # The trial id for these results.
+            "allMetrics": [ # All recorded object metrics for this trial.
+              { # An observed value of a metric.
+                "trainingStep": "A String", # The global training step for this metric.
+                "objectiveValue": 3.14, # The objective value at this training step.
+              },
+            ],
+            "finalMetric": { # An observed value of a metric. # The final objective metric seen for this trial.
+              "trainingStep": "A String", # The global training step for this metric.
+              "objectiveValue": 3.14, # The objective value at this training step.
+            },
+          },
+        ],
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      },
+      "startTime": "A String", # Output only. When the job processing was started.
+      "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
+        "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's worker nodes.
+            #
+            # The supported values are the same as those described in the entry for
+            # `masterType`.
+            #
+            # This value must be present when `scaleTier` is set to `CUSTOM` and
+            # `workerCount` is greater than zero.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+            # set, Google Cloud ML will choose the latest stable version.
+        "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
+            # and parameter servers.
+        "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's master worker.
+            #
+            # The following types are supported:
+            #
+            # <dl>
+            #   <dt>standard</dt>
+            #   <dd>
+            #   A basic machine configuration suitable for training simple models with
+            #   small to moderate datasets.
+            #   </dd>
+            #   <dt>large_model</dt>
+            #   <dd>
+            #   A machine with a lot of memory, specially suited for parameter servers
+            #   when your model is large (having many hidden layers or layers with very
+            #   large numbers of nodes).
+            #   </dd>
+            #   <dt>complex_model_s</dt>
+            #   <dd>
+            #   A machine suitable for the master and workers of the cluster when your
+            #   model requires more computation than the standard machine can handle
+            #   satisfactorily.
+            #   </dd>
+            #   <dt>complex_model_m</dt>
+            #   <dd>
+            #   A machine with roughly twice the number of cores and roughly double the
+            #   memory of <code suppresswarning="true">complex_model_s</code>.
+            #   </dd>
+            #   <dt>complex_model_l</dt>
+            #   <dd>
+            #   A machine with roughly twice the number of cores and roughly double the
+            #   memory of <code suppresswarning="true">complex_model_m</code>.
+            #   </dd>
+            #   <dt>standard_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to <code suppresswarning="true">standard</code> that
+            #   also includes a
+            #   <a href="ml/docs/how-tos/using-gpus">
+            #   GPU that you can use in your trainer</a>.
+            #   </dd>
+            #   <dt>complex_model_m_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to
+            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   four GPUs.
+            #   </dd>
+            # </dl>
+            #
+            # You must set this value when `scaleTier` is set to `CUSTOM`.
+        "hyperparameters": { # Represents a set of hyperparameters to optimize. # Optional. The set of Hyperparameters to tune.
+          "maxTrials": 42, # Optional. How many training trials should be attempted to optimize
+              # the specified hyperparameters.
+              #
+              # Defaults to one.
+          "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+              # current versions of Tensorflow, this tag name should exactly match what is
+              # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+              # prior to 0.12, this should be only the tag passed to tf.Summary.
+              # By default, "training/hptuning/metric" will be used.
+          "params": [ # Required. The set of parameters to tune.
+            { # Represents a single hyperparameter to optimize.
+              "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is `INTEGER`.
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
+              "discreteValues": [ # Required if type is `DISCRETE`.
+                  # A list of feasible points.
+                  # The list should be in strictly increasing order. For instance, this
+                  # parameter might have possible settings of 1.5, 2.5, and 4.0. This list
+                  # should not contain more than 1,000 values.
+                3.14,
+              ],
+              "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
+                  # a HyperparameterSpec message. E.g., "learning_rate".
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
+              "type": "A String", # Required. The type of the parameter.
+              "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
+                  # Leave unset for categorical parameters.
+                  # Some kind of scaling is strongly recommended for real or integral
+                  # parameters (e.g., `UNIT_LINEAR_SCALE`).
+            },
+          ],
+          "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
+              # You can reduce the time it takes to perform hyperparameter tuning by adding
+              # trials in parallel. However, each trail only benefits from the information
+              # gained in completed trials. That means that a trial does not get access to
+              # the results of trials running at the same time, which could reduce the
+              # quality of the overall optimization.
+              #
+              # Each trial will use the same scale tier and machine types.
+              #
+              # Defaults to one.
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
+        },
+        "region": "A String", # Required. The Google Compute Engine region to run the training job in.
+        "args": [ # Optional. Command line arguments to pass to the program.
+          "A String",
+        ],
+        "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+        "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+            # and other data needed for training. This path is passed to your TensorFlow
+            # program as the 'job_dir' command-line argument. The benefit of specifying
+            # this field is that Cloud ML validates the path for use in training.
+        "packageUris": [ # Required. The Google Cloud Storage location of the packages with
+            # the training program and any additional dependencies.
+          "A String",
+        ],
+        "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
+            # replica in the cluster will be of the type specified in `worker_type`.
+            #
+            # This value can only be used when `scale_tier` is set to `CUSTOM`. If you
+            # set this value, you must also set `worker_type`.
+        "parameterServerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+            # job's parameter server.
+            #
+            # The supported values are the same as those described in the entry for
+            # `master_type`.
+            #
+            # This value must be present when `scaleTier` is set to `CUSTOM` and
+            # `parameter_server_count` is greater than zero.
+        "parameterServerCount": "A String", # Optional. The number of parameter server replicas to use for the training
+            # job. Each replica in the cluster will be of the type specified in
+            # `parameter_server_type`.
+            #
+            # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
+            # set this value, you must also set `parameter_server_type`.
+      },
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+        "modelName": "A String", # Use this field if you want to use the default version for the specified
+            # model. The string must use the following format:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
+        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+            # May contain wildcards.
+          "A String",
+        ],
+        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+            # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
+        "outputPath": "A String", # Required. The output Google Cloud Storage location.
+        "dataFormat": "A String", # Required. The format of the input data files.
+        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+            # string is formatted the same way as `model_version`, with the addition
+            # of the version information:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+      },
+      "endTime": "A String", # Output only. When the job processing was completed.
+      "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
+        "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+        "nodeHours": 3.14, # Node hours used by the batch prediction job.
+        "predictionCount": "A String", # The number of generated predictions.
+        "errorCount": "A String", # The number of data instances which resulted in errors.
+      },
+      "createTime": "A String", # Output only. When the job was created.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the jobs in the project.
+
+Args:
+  parent: string, Required. The name of the project for which to list jobs.
+
+Authorization: requires `Viewer` role on the specified project. (required)
+  pageSize: integer, Optional. The number of jobs to retrieve per "page" of results. If there
+are more remaining results than this number, the response message will
+contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
+  filter: string, Optional. Specifies the subset of jobs to retrieve.
+  pageToken: string, Optional. A page token to request the next page of results.
+
+You get the token from the `next_page_token` field of the response from
+the previous call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the ListJobs method.
+    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
+        # subsequent call.
+    "jobs": [ # The list of jobs.
+      { # Represents a training or prediction job.
+          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+          "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+                # Only set for hyperparameter tuning jobs.
+            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+            "trials": [ # Results for individual Hyperparameter trials.
+                # Only set for hyperparameter tuning jobs.
+              { # Represents the result of a single hyperparameter tuning trial from a
+                  # training job. The TrainingOutput object that is returned on successful
+                  # completion of a training job with hyperparameter tuning includes a list
+                  # of HyperparameterOutput objects, one for each successful trial.
+                "hyperparameters": { # The hyperparameters given to this trial.
+                  "a_key": "A String",
+                },
+                "trialId": "A String", # The trial id for these results.
+                "allMetrics": [ # All recorded object metrics for this trial.
+                  { # An observed value of a metric.
+                    "trainingStep": "A String", # The global training step for this metric.
+                    "objectiveValue": 3.14, # The objective value at this training step.
+                  },
+                ],
+                "finalMetric": { # An observed value of a metric. # The final objective metric seen for this trial.
+                  "trainingStep": "A String", # The global training step for this metric.
+                  "objectiveValue": 3.14, # The objective value at this training step.
+                },
+              },
+            ],
+            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+          },
+          "startTime": "A String", # Output only. When the job processing was started.
+          "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
+            "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+                # job's worker nodes.
+                #
+                # The supported values are the same as those described in the entry for
+                # `masterType`.
+                #
+                # This value must be present when `scaleTier` is set to `CUSTOM` and
+                # `workerCount` is greater than zero.
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+                # set, Google Cloud ML will choose the latest stable version.
+            "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
+                # and parameter servers.
+            "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+                # job's master worker.
+                #
+                # The following types are supported:
+                #
+                # <dl>
+                #   <dt>standard</dt>
+                #   <dd>
+                #   A basic machine configuration suitable for training simple models with
+                #   small to moderate datasets.
+                #   </dd>
+                #   <dt>large_model</dt>
+                #   <dd>
+                #   A machine with a lot of memory, specially suited for parameter servers
+                #   when your model is large (having many hidden layers or layers with very
+                #   large numbers of nodes).
+                #   </dd>
+                #   <dt>complex_model_s</dt>
+                #   <dd>
+                #   A machine suitable for the master and workers of the cluster when your
+                #   model requires more computation than the standard machine can handle
+                #   satisfactorily.
+                #   </dd>
+                #   <dt>complex_model_m</dt>
+                #   <dd>
+                #   A machine with roughly twice the number of cores and roughly double the
+                #   memory of <code suppresswarning="true">complex_model_s</code>.
+                #   </dd>
+                #   <dt>complex_model_l</dt>
+                #   <dd>
+                #   A machine with roughly twice the number of cores and roughly double the
+                #   memory of <code suppresswarning="true">complex_model_m</code>.
+                #   </dd>
+                #   <dt>standard_gpu</dt>
+                #   <dd>
+                #   A machine equivalent to <code suppresswarning="true">standard</code> that
+                #   also includes a
+                #   <a href="ml/docs/how-tos/using-gpus">
+                #   GPU that you can use in your trainer</a>.
+                #   </dd>
+                #   <dt>complex_model_m_gpu</dt>
+                #   <dd>
+                #   A machine equivalent to
+                #   <code suppresswarning="true">coplex_model_m</code> that also includes
+                #   four GPUs.
+                #   </dd>
+                # </dl>
+                #
+                # You must set this value when `scaleTier` is set to `CUSTOM`.
+            "hyperparameters": { # Represents a set of hyperparameters to optimize. # Optional. The set of Hyperparameters to tune.
+              "maxTrials": 42, # Optional. How many training trials should be attempted to optimize
+                  # the specified hyperparameters.
+                  #
+                  # Defaults to one.
+              "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+                  # current versions of Tensorflow, this tag name should exactly match what is
+                  # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+                  # prior to 0.12, this should be only the tag passed to tf.Summary.
+                  # By default, "training/hptuning/metric" will be used.
+              "params": [ # Required. The set of parameters to tune.
+                { # Represents a single hyperparameter to optimize.
+                  "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
+                      # should be unset if type is `CATEGORICAL`. This value should be integers if
+                      # type is `INTEGER`.
+                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                      # should be unset if type is `CATEGORICAL`. This value should be integers if
+                      # type is INTEGER.
+                  "discreteValues": [ # Required if type is `DISCRETE`.
+                      # A list of feasible points.
+                      # The list should be in strictly increasing order. For instance, this
+                      # parameter might have possible settings of 1.5, 2.5, and 4.0. This list
+                      # should not contain more than 1,000 values.
+                    3.14,
+                  ],
+                  "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
+                      # a HyperparameterSpec message. E.g., "learning_rate".
+                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                    "A String",
+                  ],
+                  "type": "A String", # Required. The type of the parameter.
+                  "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
+                      # Leave unset for categorical parameters.
+                      # Some kind of scaling is strongly recommended for real or integral
+                      # parameters (e.g., `UNIT_LINEAR_SCALE`).
+                },
+              ],
+              "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
+                  # You can reduce the time it takes to perform hyperparameter tuning by adding
+                  # trials in parallel. However, each trail only benefits from the information
+                  # gained in completed trials. That means that a trial does not get access to
+                  # the results of trials running at the same time, which could reduce the
+                  # quality of the overall optimization.
+                  #
+                  # Each trial will use the same scale tier and machine types.
+                  #
+                  # Defaults to one.
+              "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+                  # `MAXIMIZE` and `MINIMIZE`.
+                  #
+                  # Defaults to `MAXIMIZE`.
+            },
+            "region": "A String", # Required. The Google Compute Engine region to run the training job in.
+            "args": [ # Optional. Command line arguments to pass to the program.
+              "A String",
+            ],
+            "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+            "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+                # and other data needed for training. This path is passed to your TensorFlow
+                # program as the 'job_dir' command-line argument. The benefit of specifying
+                # this field is that Cloud ML validates the path for use in training.
+            "packageUris": [ # Required. The Google Cloud Storage location of the packages with
+                # the training program and any additional dependencies.
+              "A String",
+            ],
+            "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
+                # replica in the cluster will be of the type specified in `worker_type`.
+                #
+                # This value can only be used when `scale_tier` is set to `CUSTOM`. If you
+                # set this value, you must also set `worker_type`.
+            "parameterServerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
+                # job's parameter server.
+                #
+                # The supported values are the same as those described in the entry for
+                # `master_type`.
+                #
+                # This value must be present when `scaleTier` is set to `CUSTOM` and
+                # `parameter_server_count` is greater than zero.
+            "parameterServerCount": "A String", # Optional. The number of parameter server replicas to use for the training
+                # job. Each replica in the cluster will be of the type specified in
+                # `parameter_server_type`.
+                #
+                # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
+                # set this value, you must also set `parameter_server_type`.
+          },
+          "jobId": "A String", # Required. The user-specified id of the job.
+          "state": "A String", # Output only. The detailed state of a job.
+          "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+            "modelName": "A String", # Use this field if you want to use the default version for the specified
+                # model. The string must use the following format:
+                #
+                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+                # prediction. If not set, Google Cloud ML will pick the runtime version used
+                # during the CreateVersion request for this model version, or choose the
+                # latest stable version when model version information is not available
+                # such as when the model is specified by uri.
+            "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+                # May contain wildcards.
+              "A String",
+            ],
+            "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+                # Defaults to 10 if not specified.
+            "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+                # the model to use.
+            "outputPath": "A String", # Required. The output Google Cloud Storage location.
+            "dataFormat": "A String", # Required. The format of the input data files.
+            "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+                # string is formatted the same way as `model_version`, with the addition
+                # of the version information:
+                #
+                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+            "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+          },
+          "endTime": "A String", # Output only. When the job processing was completed.
+          "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
+            "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+            "nodeHours": 3.14, # Node hours used by the batch prediction job.
+            "predictionCount": "A String", # The number of generated predictions.
+            "errorCount": "A String", # The number of data instances which resulted in errors.
+          },
+          "createTime": "A String", # Output only. When the job was created.
+        },
+    ],
+  }</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/ml_v1.projects.models.html b/docs/dyn/ml_v1.projects.models.html
new file mode 100644
index 0000000..3db945b
--- /dev/null
+++ b/docs/dyn/ml_v1.projects.models.html
@@ -0,0 +1,552 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ml_v1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1.projects.html">projects</a> . <a href="ml_v1.projects.models.html">models</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ml_v1.projects.models.versions.html">versions()</a></code>
+</p>
+<p class="firstline">Returns the versions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a model which will later contain one or more versions.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a model.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a model, including its name, the description (if</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the models in a project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates a model which will later contain one or more versions.
+
+You must add at least one version before you can request predictions from
+the model. Add versions by calling
+[projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create).
+
+Args:
+  parent: string, Required. The project name.
+
+Authorization: requires `Editor` role on the specified project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a machine learning solution.
+      # 
+      # A model can have multiple versions, each of which is a deployed, trained
+      # model ready to receive prediction requests. The model itself is just a
+      # container.
+    "regions": [ # Optional. The list of regions where the model is going to be deployed.
+        # Currently only one region per model is supported.
+        # Defaults to 'us-central1' if nothing is set.
+      "A String",
+    ],
+    "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
+        # handle prediction requests that do not specify a version.
+        # 
+        # You can change the default version by calling
+        # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+        #
+        # Each version is a trained model deployed in the cloud, ready to handle
+        # prediction requests. A model can have multiple versions. You can get
+        # information about all of the versions of a given model by calling
+        # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+      "description": "A String", # Optional. The description specified for the version when it was created.
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+          # If not set, Google Cloud ML will choose a version.
+      "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+          # model. If unset (i.e., by default), the number of nodes used to serve
+          # the model automatically scales with traffic. However, care should be
+          # taken to ramp up traffic according to the model's ability to scale. If
+          # your model needs to handle bursts of traffic beyond it's ability to
+          # scale, it is recommended you set this field appropriately.
+        "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+            # starting from the time the model is deployed, so the cost of operating
+            # this model will be proportional to nodes * number of hours since
+            # deployment.
+      },
+      "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+      "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+          # create the version. See the
+          # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+          # more informaiton.
+          #
+          # When passing Version to
+          # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+          # the model service uses the specified location as the source of the model.
+          # Once deployed, the model version is hosted by the prediction service, so
+          # this location is useful only as a historical record.
+      "createTime": "A String", # Output only. The time the version was created.
+      "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+          # requests that do not specify a version.
+          #
+          # You can change the default version by calling
+          # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+      "name": "A String", # Required.The name specified for the version when it was created.
+          #
+          # The version name must be unique within the model it is created in.
+    },
+    "name": "A String", # Required. The name specified for the model when it was created.
+        # 
+        # The model name must be unique within the project it is created in.
+    "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+        # Default is false.
+    "description": "A String", # Optional. The description specified for the model when it was created.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a machine learning solution.
+        #
+        # A model can have multiple versions, each of which is a deployed, trained
+        # model ready to receive prediction requests. The model itself is just a
+        # container.
+      "regions": [ # Optional. The list of regions where the model is going to be deployed.
+          # Currently only one region per model is supported.
+          # Defaults to 'us-central1' if nothing is set.
+        "A String",
+      ],
+      "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
+          # handle prediction requests that do not specify a version.
+          #
+          # You can change the default version by calling
+          # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+          #
+          # Each version is a trained model deployed in the cloud, ready to handle
+          # prediction requests. A model can have multiple versions. You can get
+          # information about all of the versions of a given model by calling
+          # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+        "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+            # create the version. See the
+            # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+            # more informaiton.
+            #
+            # When passing Version to
+            # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+            # the model service uses the specified location as the source of the model.
+            # Once deployed, the model version is hosted by the prediction service, so
+            # this location is useful only as a historical record.
+        "createTime": "A String", # Output only. The time the version was created.
+        "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+            # requests that do not specify a version.
+            #
+            # You can change the default version by calling
+            # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
+      },
+      "name": "A String", # Required. The name specified for the model when it was created.
+          #
+          # The model name must be unique within the project it is created in.
+      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+          # Default is false.
+      "description": "A String", # Optional. The description specified for the model when it was created.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+  <pre>Deletes a model.
+
+You can only delete a model if there are no versions in it. You can delete
+versions by calling
+[projects.models.versions.delete](/ml/reference/rest/v1/projects.models.versions/delete).
+
+Args:
+  name: string, Required. The name of the model.
+
+Authorization: requires `Editor` role on the parent project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets information about a model, including its name, the description (if
+set), and the default version (if at least one version of the model has
+been deployed).
+
+Args:
+  name: string, Required. The name of the model.
+
+Authorization: requires `Viewer` role on the parent project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a machine learning solution.
+        #
+        # A model can have multiple versions, each of which is a deployed, trained
+        # model ready to receive prediction requests. The model itself is just a
+        # container.
+      "regions": [ # Optional. The list of regions where the model is going to be deployed.
+          # Currently only one region per model is supported.
+          # Defaults to 'us-central1' if nothing is set.
+        "A String",
+      ],
+      "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
+          # handle prediction requests that do not specify a version.
+          #
+          # You can change the default version by calling
+          # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+          #
+          # Each version is a trained model deployed in the cloud, ready to handle
+          # prediction requests. A model can have multiple versions. You can get
+          # information about all of the versions of a given model by calling
+          # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+        "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+            # create the version. See the
+            # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+            # more informaiton.
+            #
+            # When passing Version to
+            # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+            # the model service uses the specified location as the source of the model.
+            # Once deployed, the model version is hosted by the prediction service, so
+            # this location is useful only as a historical record.
+        "createTime": "A String", # Output only. The time the version was created.
+        "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+            # requests that do not specify a version.
+            #
+            # You can change the default version by calling
+            # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
+      },
+      "name": "A String", # Required. The name specified for the model when it was created.
+          #
+          # The model name must be unique within the project it is created in.
+      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+          # Default is false.
+      "description": "A String", # Optional. The description specified for the model when it was created.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists the models in a project.
+
+Each project can contain multiple models, and each model can have multiple
+versions.
+
+Args:
+  parent: string, Required. The name of the project whose models are to be listed.
+
+Authorization: requires `Viewer` role on the specified project. (required)
+  pageToken: string, Optional. A page token to request the next page of results.
+
+You get the token from the `next_page_token` field of the response from
+the previous call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional. The number of models to retrieve per "page" of results. If there
+are more remaining results than this number, the response message will
+contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
+
+Returns:
+  An object of the form:
+
+    { # Response message for the ListModels method.
+    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
+        # subsequent call.
+    "models": [ # The list of models.
+      { # Represents a machine learning solution.
+            #
+            # A model can have multiple versions, each of which is a deployed, trained
+            # model ready to receive prediction requests. The model itself is just a
+            # container.
+          "regions": [ # Optional. The list of regions where the model is going to be deployed.
+              # Currently only one region per model is supported.
+              # Defaults to 'us-central1' if nothing is set.
+            "A String",
+          ],
+          "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
+              # handle prediction requests that do not specify a version.
+              #
+              # You can change the default version by calling
+              # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+              #
+              # Each version is a trained model deployed in the cloud, ready to handle
+              # prediction requests. A model can have multiple versions. You can get
+              # information about all of the versions of a given model by calling
+              # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+            "description": "A String", # Optional. The description specified for the version when it was created.
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+                # If not set, Google Cloud ML will choose a version.
+            "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+                # model. If unset (i.e., by default), the number of nodes used to serve
+                # the model automatically scales with traffic. However, care should be
+                # taken to ramp up traffic according to the model's ability to scale. If
+                # your model needs to handle bursts of traffic beyond it's ability to
+                # scale, it is recommended you set this field appropriately.
+              "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+                  # starting from the time the model is deployed, so the cost of operating
+                  # this model will be proportional to nodes * number of hours since
+                  # deployment.
+            },
+            "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+            "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+                # create the version. See the
+                # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+                # more informaiton.
+                #
+                # When passing Version to
+                # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+                # the model service uses the specified location as the source of the model.
+                # Once deployed, the model version is hosted by the prediction service, so
+                # this location is useful only as a historical record.
+            "createTime": "A String", # Output only. The time the version was created.
+            "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+                # requests that do not specify a version.
+                #
+                # You can change the default version by calling
+                # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+            "name": "A String", # Required.The name specified for the version when it was created.
+                #
+                # The version name must be unique within the model it is created in.
+          },
+          "name": "A String", # Required. The name specified for the model when it was created.
+              #
+              # The model name must be unique within the project it is created in.
+          "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+              # Default is false.
+          "description": "A String", # Optional. The description specified for the model when it was created.
+        },
+    ],
+  }</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/ml_v1.projects.models.versions.html b/docs/dyn/ml_v1.projects.models.versions.html
new file mode 100644
index 0000000..116096f
--- /dev/null
+++ b/docs/dyn/ml_v1.projects.models.versions.html
@@ -0,0 +1,598 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ml_v1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1.projects.html">projects</a> . <a href="ml_v1.projects.models.html">models</a> . <a href="ml_v1.projects.models.versions.html">versions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new version of a model from a trained TensorFlow model.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a model version.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a model version.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Gets basic information about all the versions of a model.</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="#setDefault">setDefault(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Designates a version to be the default for the model.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates a new version of a model from a trained TensorFlow model.
+
+If the version created in the cloud by this call is the first deployed
+version of the specified model, it will be made the default version of the
+model. When you add a version to a model that already has one or more
+versions, the default version does not automatically change. If you want a
+new version to be the default, you must call
+[projects.models.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+
+Args:
+  parent: string, Required. The name of the model.
+
+Authorization: requires `Editor` role on the parent project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a version of the model.
+    # 
+    # Each version is a trained model deployed in the cloud, ready to handle
+    # prediction requests. A model can have multiple versions. You can get
+    # information about all of the versions of a given model by calling
+    # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+  "description": "A String", # Optional. The description specified for the version when it was created.
+  "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+      # If not set, Google Cloud ML will choose a version.
+  "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+      # model. If unset (i.e., by default), the number of nodes used to serve
+      # the model automatically scales with traffic. However, care should be
+      # taken to ramp up traffic according to the model's ability to scale. If
+      # your model needs to handle bursts of traffic beyond it's ability to
+      # scale, it is recommended you set this field appropriately.
+    "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+        # starting from the time the model is deployed, so the cost of operating
+        # this model will be proportional to nodes * number of hours since
+        # deployment.
+  },
+  "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+  "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+      # create the version. See the
+      # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+      # more informaiton.
+      # 
+      # When passing Version to
+      # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+      # the model service uses the specified location as the source of the model.
+      # Once deployed, the model version is hosted by the prediction service, so
+      # this location is useful only as a historical record.
+  "createTime": "A String", # Output only. The time the version was created.
+  "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+      # requests that do not specify a version.
+      # 
+      # You can change the default version by calling
+      # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+  "name": "A String", # Required.The name specified for the version when it was created.
+      # 
+      # The version name must be unique within the model it is created in.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+  <pre>Deletes a model version.
+
+Each model can have multiple versions deployed and in use at any given
+time. Use this method to remove a single version.
+
+Note: You cannot delete the version that is set as the default version
+of the model unless it is the only remaining version.
+
+Args:
+  name: string, Required. The name of the version. You can get the names of all the
+versions of a model by calling
+[projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+
+Authorization: requires `Editor` role on the parent project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets information about a model version.
+
+Models can have multiple versions. You can call
+[projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list)
+to get the same information that this method returns for all of the
+versions of a model.
+
+Args:
+  name: string, Required. The name of the version.
+
+Authorization: requires `Viewer` role on the parent project. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a version of the model.
+      #
+      # Each version is a trained model deployed in the cloud, ready to handle
+      # prediction requests. A model can have multiple versions. You can get
+      # information about all of the versions of a given model by calling
+      # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+    "description": "A String", # Optional. The description specified for the version when it was created.
+    "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+        # If not set, Google Cloud ML will choose a version.
+    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+        # model. If unset (i.e., by default), the number of nodes used to serve
+        # the model automatically scales with traffic. However, care should be
+        # taken to ramp up traffic according to the model's ability to scale. If
+        # your model needs to handle bursts of traffic beyond it's ability to
+        # scale, it is recommended you set this field appropriately.
+      "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+          # starting from the time the model is deployed, so the cost of operating
+          # this model will be proportional to nodes * number of hours since
+          # deployment.
+    },
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+        # create the version. See the
+        # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+        # more informaiton.
+        #
+        # When passing Version to
+        # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+        # the model service uses the specified location as the source of the model.
+        # Once deployed, the model version is hosted by the prediction service, so
+        # this location is useful only as a historical record.
+    "createTime": "A String", # Output only. The time the version was created.
+    "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+        # requests that do not specify a version.
+        #
+        # You can change the default version by calling
+        # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+    "name": "A String", # Required.The name specified for the version when it was created.
+        #
+        # The version name must be unique within the model it is created in.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Gets basic information about all the versions of a model.
+
+If you expect that a model has a lot of versions, or if you need to handle
+only a limited number of results at a time, you can request that the list
+be retrieved in batches (called pages):
+
+Args:
+  parent: string, Required. The name of the model for which to list the version.
+
+Authorization: requires `Viewer` role on the parent project. (required)
+  pageToken: string, Optional. A page token to request the next page of results.
+
+You get the token from the `next_page_token` field of the response from
+the previous call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
+there are more remaining results than this number, the response message
+will contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
+
+Returns:
+  An object of the form:
+
+    { # Response message for the ListVersions method.
+    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
+        # subsequent call.
+    "versions": [ # The list of versions.
+      { # Represents a version of the model.
+          #
+          # Each version is a trained model deployed in the cloud, ready to handle
+          # prediction requests. A model can have multiple versions. You can get
+          # information about all of the versions of a given model by calling
+          # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+        "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+            # create the version. See the
+            # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+            # more informaiton.
+            #
+            # When passing Version to
+            # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+            # the model service uses the specified location as the source of the model.
+            # Once deployed, the model version is hosted by the prediction service, so
+            # this location is useful only as a historical record.
+        "createTime": "A String", # Output only. The time the version was created.
+        "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+            # requests that do not specify a version.
+            #
+            # You can change the default version by calling
+            # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
+      },
+    ],
+  }</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="setDefault">setDefault(name=None, body, x__xgafv=None)</code>
+  <pre>Designates a version to be the default for the model.
+
+The default version is used for prediction requests made against the model
+that don't specify a version.
+
+The first version to be created for a model is automatically set as the
+default. You must make any subsequent changes to the default version
+setting manually using this method.
+
+Args:
+  name: string, Required. The name of the version to make the default for the model. You
+can get the names of all the versions of a model by calling
+[projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+
+Authorization: requires `Editor` role on the parent project. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for the SetDefaultVersion request.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a version of the model.
+      #
+      # Each version is a trained model deployed in the cloud, ready to handle
+      # prediction requests. A model can have multiple versions. You can get
+      # information about all of the versions of a given model by calling
+      # [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
+    "description": "A String", # Optional. The description specified for the version when it was created.
+    "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+        # If not set, Google Cloud ML will choose a version.
+    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+        # model. If unset (i.e., by default), the number of nodes used to serve
+        # the model automatically scales with traffic. However, care should be
+        # taken to ramp up traffic according to the model's ability to scale. If
+        # your model needs to handle bursts of traffic beyond it's ability to
+        # scale, it is recommended you set this field appropriately.
+      "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+          # starting from the time the model is deployed, so the cost of operating
+          # this model will be proportional to nodes * number of hours since
+          # deployment.
+    },
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
+        # create the version. See the
+        # [overview of model deployment](/ml/docs/concepts/deployment-overview) for
+        # more informaiton.
+        #
+        # When passing Version to
+        # [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
+        # the model service uses the specified location as the source of the model.
+        # Once deployed, the model version is hosted by the prediction service, so
+        # this location is useful only as a historical record.
+    "createTime": "A String", # Output only. The time the version was created.
+    "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
+        # requests that do not specify a version.
+        #
+        # You can change the default version by calling
+        # [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
+    "name": "A String", # Required.The name specified for the version when it was created.
+        #
+        # The version name must be unique within the model it is created in.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ml_v1.projects.operations.html b/docs/dyn/ml_v1.projects.operations.html
new file mode 100644
index 0000000..14d735f
--- /dev/null
+++ b/docs/dyn/ml_v1.projects.operations.html
@@ -0,0 +1,393 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ml_v1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1.projects.html">projects</a> . <a href="ml_v1.projects.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation.  The server</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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="cancel">cancel(name, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation.  The server
+makes a best effort to cancel the operation, but success is not
+guaranteed.  If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.  Clients can use
+Operations.GetOperation or
+other methods to check whether the cancellation succeeded or whether the
+operation completed despite cancellation. On successful cancellation,
+the operation is not deleted; instead, it becomes an operation with
+an Operation.error value with a google.rpc.Status.code of 1,
+corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is
+no longer interested in the operation result. It does not cancel the
+operation. If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding below allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`.
+
+Args:
+  name: string, The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/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/ml_v1beta1.html b/docs/dyn/ml_v1beta1.html
index c8ffcd4..347c704 100644
--- a/docs/dyn/ml_v1beta1.html
+++ b/docs/dyn/ml_v1beta1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="ml_v1beta1.projects.html">projects()</a></code>
diff --git a/docs/dyn/ml_v1beta1.projects.html b/docs/dyn/ml_v1beta1.projects.html
index 6aab1f0..677fdd3 100644
--- a/docs/dyn/ml_v1beta1.projects.html
+++ b/docs/dyn/ml_v1beta1.projects.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a> . <a href="ml_v1beta1.projects.html">projects</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1beta1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="ml_v1beta1.projects.jobs.html">jobs()</a></code>
@@ -125,51 +125,7 @@
     <code class="details" id="predict">predict(name=None, body, x__xgafv=None)</code>
   <pre>Performs prediction on the data in the request.
 
-Responses are very similar to requests. There are two top-level fields,
-each of which are JSON lists:
-
-<dl>
-  <dt>predictions</dt>
-  <dd>The list of predictions, one per instance in the request.</dd>
-  <dt>error</dt>
-  <dd>An error message returned instead of a prediction list if any
-      instance produced an error.</dd>
-</dl>
-
-If the call is successful, the response body will contain one prediction
-entry per instance in the request body. If prediction fails for any
-instance, the response body will contain no predictions and will contian
-a single error entry instead.
-
-Even though there is one prediction per instance, the format of a
-prediction is not directly related to the format of an instance.
-Predictions take whatever format is specified in the outputs collection
-defined in the model. The collection of predictions is returned in a JSON
-list. Each member of the list can be a simple value, a list, or a JSON
-object of any complexity. If your model has more than one output tensor,
-each prediction will be a JSON object containing a name/value pair for each
-output. The names identify the output aliases in the graph.
-
-The following examples show some possible responses:
-
-A simple set of predictions for three input instances, where each
-prediction is an integer value:
-<pre>
-{"predictions": [5, 4, 3]}
-</pre>
-A more complex set of predictions, each containing two named values that
-correspond to output tensors, named **label** and **scores** respectively.
-The value of **label** is the predicted category ("car" or "beach") and
-**scores** contains a list of probabilities for that instance across the
-possible categories.
-<pre>
-{"predictions": [{"label": "beach", "scores": [0.1, 0.9]},
-                 {"label": "car", "scores": [0.75, 0.25]}]}
-</pre>
-A response when there is an error processing an input instance:
-<pre>
-{"error": "Divide by zero"}
-</pre>
+**** REMOVE FROM GENERATED DOCUMENTATION
 
 Args:
   name: string, Required. The resource name of a model or a version.
@@ -193,7 +149,7 @@
       # model's input definition. Instances can include named inputs or can contain
       # only unlabeled values.
       # 
-      # Most data does not include named inputs. Some instances will be simple
+      # Not all data includes named inputs. Some instances will be simple
       # JSON values (boolean, number, or string). However, instances are often lists
       # of simple values, or complex nested lists. Here are some examples of request
       # bodies:
@@ -208,7 +164,13 @@
       # </pre>
       # Sentences encoded as lists of words (vectors of strings):
       # <pre>
-      # {"instances": [["the","quick","brown"], ["la","bruja","le"]]}
+      # {
+      #   "instances": [
+      #     ["the","quick","brown"],
+      #     ["la","bruja","le"],
+      #     ...
+      #   ]
+      # }
       # </pre>
       # Floating point scalar values:
       # <pre>
@@ -216,22 +178,53 @@
       # </pre>
       # Vectors of integers:
       # <pre>
-      # {"instances": [[0, 1, 2], [3, 4, 5],...]}
+      # {
+      #   "instances": [
+      #     [0, 1, 2],
+      #     [3, 4, 5],
+      #     ...
+      #   ]
+      # }
       # </pre>
       # Tensors (in this case, two-dimensional tensors):
       # <pre>
-      # {"instances": [[[0, 1, 2], [3, 4, 5]], ...]}
+      # {
+      #   "instances": [
+      #     [
+      #       [0, 1, 2],
+      #       [3, 4, 5]
+      #     ],
+      #     ...
+      #   ]
+      # }
       # </pre>
-      # Images represented as a three-dimensional list. In this encoding scheme the
-      # first two dimensions represent the rows and columns of the image, and the
-      # third contains the R, G, and B values for each pixel.
+      # Images can be represented different ways. In this encoding scheme the first
+      # two dimensions represent the rows and columns of the image, and the third
+      # contains lists (vectors) of the R, G, and B values for each pixel.
       # <pre>
-      # {"instances": [[[[138, 30, 66], [130, 20, 56], ...]]]]}
+      # {
+      #   "instances": [
+      #     [
+      #       [
+      #         [138, 30, 66],
+      #         [130, 20, 56],
+      #         ...
+      #       ],
+      #       [
+      #         [126, 38, 61],
+      #         [122, 24, 57],
+      #         ...
+      #       ],
+      #       ...
+      #     ],
+      #     ...
+      #   ]
+      # }
       # </pre>
-      # Data must be encoded as UTF-8. If your data uses another character encoding,
-      # you must base64 encode the data and mark it as binary. To mark a JSON string
-      # as binary, replace it with an object with a single attribute named `b`:
-      # <pre>{"b": "..."} </pre>
+      # JSON strings must be encoded as UTF-8. To send binary data, you must
+      # base64-encode the data and mark it as binary. To mark a JSON string
+      # as binary, replace it with a JSON object with a single attribute named `b64`:
+      # <pre>{"b64": "..."} </pre>
       # For example:
       # 
       # Two Serialized tf.Examples (fake data, for illustrative purposes only):
@@ -247,8 +240,20 @@
       # 
       # JSON input data to be preprocessed:
       # <pre>
-      # {"instances": [{"a": 1.0,  "b": true,  "c": "x"},
-      #                {"a": -2.0, "b": false, "c": "y"}]}
+      # {
+      #   "instances": [
+      #     {
+      #       "a": 1.0,
+      #       "b": true,
+      #       "c": "x"
+      #     },
+      #     {
+      #       "a": -2.0,
+      #       "b": false,
+      #       "c": "y"
+      #     }
+      #   ]
+      # }
       # </pre>
       # Some models have an underlying TensorFlow graph that accepts multiple input
       # tensors. In this case, you should use the names of JSON name/value pairs to
@@ -257,14 +262,59 @@
       # For a graph with input tensor aliases "tag" (string) and "image"
       # (base64-encoded string):
       # <pre>
-      # {"instances": [{"tag": "beach", "image": {"b64": "ASa8asdf"}},
-      #                {"tag": "car", "image": {"b64": "JLK7ljk3"}}]}
+      # {
+      #   "instances": [
+      #     {
+      #       "tag": "beach",
+      #       "image": {"b64": "ASa8asdf"}
+      #     },
+      #     {
+      #       "tag": "car",
+      #       "image": {"b64": "JLK7ljk3"}
+      #     }
+      #   ]
+      # }
       # </pre>
       # For a graph with input tensor aliases "tag" (string) and "image"
       # (3-dimensional array of 8-bit ints):
       # <pre>
-      # {"instances": [{"tag": "beach", "image": [[[263, 1, 10], [262, 2, 11], ...]]},
-      #                {"tag": "car", "image": [[[10, 11, 24], [23, 10, 15], ...]]}]}
+      # {
+      #   "instances": [
+      #     {
+      #       "tag": "beach",
+      #       "image": [
+      #         [
+      #           [138, 30, 66],
+      #           [130, 20, 56],
+      #           ...
+      #         ],
+      #         [
+      #           [126, 38, 61],
+      #           [122, 24, 57],
+      #           ...
+      #         ],
+      #         ...
+      #       ]
+      #     },
+      #     {
+      #       "tag": "car",
+      #       "image": [
+      #         [
+      #           [255, 0, 102],
+      #           [255, 0, 97],
+      #           ...
+      #         ],
+      #         [
+      #           [254, 1, 101],
+      #           [254, 2, 93],
+      #           ...
+      #         ],
+      #         ...
+      #       ]
+      #     },
+      #     ...
+      #   ]
+      # }
       # </pre>
       # If the call is successful, the response body will contain one prediction
       # entry per instance in the request body. If prediction fails for any
diff --git a/docs/dyn/ml_v1beta1.projects.jobs.html b/docs/dyn/ml_v1beta1.projects.jobs.html
index 35a941e..57245ca 100644
--- a/docs/dyn/ml_v1beta1.projects.jobs.html
+++ b/docs/dyn/ml_v1beta1.projects.jobs.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.jobs.html">jobs</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.jobs.html">jobs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name=None, body, x__xgafv=None)</a></code></p>
@@ -136,9 +136,12 @@
     The object takes the form of:
 
 { # Represents a training or prediction job.
-    "trainingOutput": { # Represents results of a training job. # The current training job result.
-      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+    "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+          # Only set for hyperparameter tuning jobs.
+      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
       "trials": [ # Results for individual Hyperparameter trials.
+          # Only set for hyperparameter tuning jobs.
         { # Represents the result of a single hyperparameter tuning trial from a
             # training job. The TrainingOutput object that is returned on successful
             # completion of a training job with hyperparameter tuning includes a list
@@ -159,23 +162,26 @@
           },
         },
       ],
-      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
     },
-    "startTime": "A String", # Output only. When the job processing was started.
-    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-    "jobId": "A String", # Required. The user-specified id of the job.
-    "state": "A String", # Output only. The detailed state of a job.
     "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
       "modelName": "A String", # Use this field if you want to use the default version for the specified
           # model. The string must use the following format:
           #
           # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+          # prediction. If not set, Google Cloud ML will pick the runtime version used
+          # during the CreateVersion request for this model version, or choose the
+          # latest stable version when model version information is not available
+          # such as when the model is specified by uri.
       "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
           # May contain wildcards.
         "A String",
       ],
       "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
           # Defaults to 10 if not specified.
+      "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+          # the model to use.
       "outputPath": "A String", # Required. The output Google Cloud Storage location.
       "dataFormat": "A String", # Required. The format of the input data files.
       "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
@@ -185,6 +191,10 @@
           # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
       "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
     },
+    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+    "jobId": "A String", # Required. The user-specified id of the job.
+    "state": "A String", # Output only. The detailed state of a job.
+    "startTime": "A String", # Output only. When the job processing was started.
     "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
       "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
           # job's worker nodes.
@@ -194,6 +204,8 @@
           #
           # This value must be present when `scaleTier` is set to `CUSTOM` and
           # `workerCount` is greater than zero.
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+          # set, Google Cloud ML will choose the latest stable version.
       "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
           # and parameter servers.
       "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
@@ -229,6 +241,19 @@
           #   A machine with roughly twice the number of cores and roughly double the
           #   memory of <code suppresswarning="true">complex_model_m</code>.
           #   </dd>
+          #   <dt>standard_gpu</dt>
+          #   <dd>
+          #   A machine equivalent to <code suppresswarning="true">standard</code> that
+          #   also includes a
+          #   <a href="ml/docs/how-tos/using-gpus">
+          #   GPU that you can use in your trainer</a>.
+          #   </dd>
+          #   <dt>complex_model_m_gpu</dt>
+          #   <dd>
+          #   A machine equivalent to
+          #   <code suppresswarning="true">coplex_model_m</code> that also includes
+          #   four GPUs.
+          #   </dd>
           # </dl>
           #
           # You must set this value when `scaleTier` is set to `CUSTOM`.
@@ -237,14 +262,19 @@
             # the specified hyperparameters.
             #
             # Defaults to one.
+        "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+            # current versions of Tensorflow, this tag name should exactly match what is
+            # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+            # prior to 0.12, this should be only the tag passed to tf.Summary.
+            # By default, "training/hptuning/metric" will be used.
         "params": [ # Required. The set of parameters to tune.
           { # Represents a single hyperparameter to optimize.
             "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                 # should be unset if type is `CATEGORICAL`. This value should be integers if
                 # type is `INTEGER`.
-            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                # should be unset if type is `CATEGORICAL`. This value should be integers if
-                # type is INTEGER.
+            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+              "A String",
+            ],
             "discreteValues": [ # Required if type is `DISCRETE`.
                 # A list of feasible points.
                 # The list should be in strictly increasing order. For instance, this
@@ -254,9 +284,9 @@
             ],
             "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                 # a HyperparameterSpec message. E.g., "learning_rate".
-            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-              "A String",
-            ],
+            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                # should be unset if type is `CATEGORICAL`. This value should be integers if
+                # type is INTEGER.
             "type": "A String", # Required. The type of the parameter.
             "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                 # Leave unset for categorical parameters.
@@ -264,6 +294,10 @@
                 # parameters (e.g., `UNIT_LINEAR_SCALE`).
           },
         ],
+        "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+            # `MAXIMIZE` and `MINIMIZE`.
+            #
+            # Defaults to `MAXIMIZE`.
         "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
             # You can reduce the time it takes to perform hyperparameter tuning by adding
             # trials in parallel. However, each trail only benefits from the information
@@ -274,16 +308,16 @@
             # Each trial will use the same scale tier and machine types.
             #
             # Defaults to one.
-        "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-            # `MAXIMIZE` and `MINIMIZE`.
-            #
-            # Defaults to `MAXIMIZE`.
       },
       "region": "A String", # Required. The Google Compute Engine region to run the training job in.
       "args": [ # Optional. Command line arguments to pass to the program.
         "A String",
       ],
       "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+      "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+          # and other data needed for training. This path is passed to your TensorFlow
+          # program as the 'job_dir' command-line argument. The benefit of specifying
+          # this field is that Cloud ML validates the path for use in training.
       "packageUris": [ # Required. The Google Cloud Storage location of the packages with
           # the training program and any additional dependencies.
         "A String",
@@ -311,6 +345,7 @@
     "endTime": "A String", # Output only. When the job processing was completed.
     "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
       "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+      "nodeHours": 3.14, # Node hours used by the batch prediction job.
       "predictionCount": "A String", # The number of generated predictions.
       "errorCount": "A String", # The number of data instances which resulted in errors.
     },
@@ -326,9 +361,12 @@
   An object of the form:
 
     { # Represents a training or prediction job.
-      "trainingOutput": { # Represents results of a training job. # The current training job result.
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "trials": [ # Results for individual Hyperparameter trials.
+            # Only set for hyperparameter tuning jobs.
           { # Represents the result of a single hyperparameter tuning trial from a
               # training job. The TrainingOutput object that is returned on successful
               # completion of a training job with hyperparameter tuning includes a list
@@ -349,23 +387,26 @@
             },
           },
         ],
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
       },
-      "startTime": "A String", # Output only. When the job processing was started.
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-      "jobId": "A String", # Required. The user-specified id of the job.
-      "state": "A String", # Output only. The detailed state of a job.
       "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
         "modelName": "A String", # Use this field if you want to use the default version for the specified
             # model. The string must use the following format:
             #
             # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
         "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
             # May contain wildcards.
           "A String",
         ],
         "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
             # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
         "outputPath": "A String", # Required. The output Google Cloud Storage location.
         "dataFormat": "A String", # Required. The format of the input data files.
         "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
@@ -375,6 +416,10 @@
             # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
         "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
       },
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -384,6 +429,8 @@
             #
             # This value must be present when `scaleTier` is set to `CUSTOM` and
             # `workerCount` is greater than zero.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+            # set, Google Cloud ML will choose the latest stable version.
         "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
             # and parameter servers.
         "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
@@ -419,6 +466,19 @@
             #   A machine with roughly twice the number of cores and roughly double the
             #   memory of <code suppresswarning="true">complex_model_m</code>.
             #   </dd>
+            #   <dt>standard_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to <code suppresswarning="true">standard</code> that
+            #   also includes a
+            #   <a href="ml/docs/how-tos/using-gpus">
+            #   GPU that you can use in your trainer</a>.
+            #   </dd>
+            #   <dt>complex_model_m_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to
+            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   four GPUs.
+            #   </dd>
             # </dl>
             #
             # You must set this value when `scaleTier` is set to `CUSTOM`.
@@ -427,14 +487,19 @@
               # the specified hyperparameters.
               #
               # Defaults to one.
+          "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+              # current versions of Tensorflow, this tag name should exactly match what is
+              # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+              # prior to 0.12, this should be only the tag passed to tf.Summary.
+              # By default, "training/hptuning/metric" will be used.
           "params": [ # Required. The set of parameters to tune.
             { # Represents a single hyperparameter to optimize.
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -444,9 +509,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -454,6 +519,10 @@
                   # parameters (e.g., `UNIT_LINEAR_SCALE`).
             },
           ],
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
           "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
               # You can reduce the time it takes to perform hyperparameter tuning by adding
               # trials in parallel. However, each trail only benefits from the information
@@ -464,16 +533,16 @@
               # Each trial will use the same scale tier and machine types.
               #
               # Defaults to one.
-          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-              # `MAXIMIZE` and `MINIMIZE`.
-              #
-              # Defaults to `MAXIMIZE`.
         },
         "region": "A String", # Required. The Google Compute Engine region to run the training job in.
         "args": [ # Optional. Command line arguments to pass to the program.
           "A String",
         ],
         "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+        "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+            # and other data needed for training. This path is passed to your TensorFlow
+            # program as the 'job_dir' command-line argument. The benefit of specifying
+            # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
           "A String",
@@ -501,6 +570,7 @@
       "endTime": "A String", # Output only. When the job processing was completed.
       "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
         "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+        "nodeHours": 3.14, # Node hours used by the batch prediction job.
         "predictionCount": "A String", # The number of generated predictions.
         "errorCount": "A String", # The number of data instances which resulted in errors.
       },
@@ -525,9 +595,12 @@
   An object of the form:
 
     { # Represents a training or prediction job.
-      "trainingOutput": { # Represents results of a training job. # The current training job result.
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "trials": [ # Results for individual Hyperparameter trials.
+            # Only set for hyperparameter tuning jobs.
           { # Represents the result of a single hyperparameter tuning trial from a
               # training job. The TrainingOutput object that is returned on successful
               # completion of a training job with hyperparameter tuning includes a list
@@ -548,23 +621,26 @@
             },
           },
         ],
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
       },
-      "startTime": "A String", # Output only. When the job processing was started.
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-      "jobId": "A String", # Required. The user-specified id of the job.
-      "state": "A String", # Output only. The detailed state of a job.
       "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
         "modelName": "A String", # Use this field if you want to use the default version for the specified
             # model. The string must use the following format:
             #
             # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
         "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
             # May contain wildcards.
           "A String",
         ],
         "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
             # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
         "outputPath": "A String", # Required. The output Google Cloud Storage location.
         "dataFormat": "A String", # Required. The format of the input data files.
         "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
@@ -574,6 +650,10 @@
             # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
         "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
       },
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -583,6 +663,8 @@
             #
             # This value must be present when `scaleTier` is set to `CUSTOM` and
             # `workerCount` is greater than zero.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+            # set, Google Cloud ML will choose the latest stable version.
         "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
             # and parameter servers.
         "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
@@ -618,6 +700,19 @@
             #   A machine with roughly twice the number of cores and roughly double the
             #   memory of <code suppresswarning="true">complex_model_m</code>.
             #   </dd>
+            #   <dt>standard_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to <code suppresswarning="true">standard</code> that
+            #   also includes a
+            #   <a href="ml/docs/how-tos/using-gpus">
+            #   GPU that you can use in your trainer</a>.
+            #   </dd>
+            #   <dt>complex_model_m_gpu</dt>
+            #   <dd>
+            #   A machine equivalent to
+            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   four GPUs.
+            #   </dd>
             # </dl>
             #
             # You must set this value when `scaleTier` is set to `CUSTOM`.
@@ -626,14 +721,19 @@
               # the specified hyperparameters.
               #
               # Defaults to one.
+          "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+              # current versions of Tensorflow, this tag name should exactly match what is
+              # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+              # prior to 0.12, this should be only the tag passed to tf.Summary.
+              # By default, "training/hptuning/metric" will be used.
           "params": [ # Required. The set of parameters to tune.
             { # Represents a single hyperparameter to optimize.
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -643,9 +743,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -653,6 +753,10 @@
                   # parameters (e.g., `UNIT_LINEAR_SCALE`).
             },
           ],
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
           "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
               # You can reduce the time it takes to perform hyperparameter tuning by adding
               # trials in parallel. However, each trail only benefits from the information
@@ -663,16 +767,16 @@
               # Each trial will use the same scale tier and machine types.
               #
               # Defaults to one.
-          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-              # `MAXIMIZE` and `MINIMIZE`.
-              #
-              # Defaults to `MAXIMIZE`.
         },
         "region": "A String", # Required. The Google Compute Engine region to run the training job in.
         "args": [ # Optional. Command line arguments to pass to the program.
           "A String",
         ],
         "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+        "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+            # and other data needed for training. This path is passed to your TensorFlow
+            # program as the 'job_dir' command-line argument. The benefit of specifying
+            # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
           "A String",
@@ -700,6 +804,7 @@
       "endTime": "A String", # Output only. When the job processing was completed.
       "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
         "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+        "nodeHours": 3.14, # Node hours used by the batch prediction job.
         "predictionCount": "A String", # The number of generated predictions.
         "errorCount": "A String", # The number of data instances which resulted in errors.
       },
@@ -738,9 +843,12 @@
         # subsequent call.
     "jobs": [ # The list of jobs.
       { # Represents a training or prediction job.
-          "trainingOutput": { # Represents results of a training job. # The current training job result.
-            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+          "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
+            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+                # Only set for hyperparameter tuning jobs.
+            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
             "trials": [ # Results for individual Hyperparameter trials.
+                # Only set for hyperparameter tuning jobs.
               { # Represents the result of a single hyperparameter tuning trial from a
                   # training job. The TrainingOutput object that is returned on successful
                   # completion of a training job with hyperparameter tuning includes a list
@@ -761,23 +869,26 @@
                 },
               },
             ],
-            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
           },
-          "startTime": "A String", # Output only. When the job processing was started.
-          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-          "jobId": "A String", # Required. The user-specified id of the job.
-          "state": "A String", # Output only. The detailed state of a job.
           "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
             "modelName": "A String", # Use this field if you want to use the default version for the specified
                 # model. The string must use the following format:
                 #
                 # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+                # prediction. If not set, Google Cloud ML will pick the runtime version used
+                # during the CreateVersion request for this model version, or choose the
+                # latest stable version when model version information is not available
+                # such as when the model is specified by uri.
             "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
                 # May contain wildcards.
               "A String",
             ],
             "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
                 # Defaults to 10 if not specified.
+            "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+                # the model to use.
             "outputPath": "A String", # Required. The output Google Cloud Storage location.
             "dataFormat": "A String", # Required. The format of the input data files.
             "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
@@ -787,6 +898,10 @@
                 # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
             "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
           },
+          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+          "jobId": "A String", # Required. The user-specified id of the job.
+          "state": "A String", # Output only. The detailed state of a job.
+          "startTime": "A String", # Output only. When the job processing was started.
           "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
             "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
                 # job's worker nodes.
@@ -796,6 +911,8 @@
                 #
                 # This value must be present when `scaleTier` is set to `CUSTOM` and
                 # `workerCount` is greater than zero.
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for training.  If not
+                # set, Google Cloud ML will choose the latest stable version.
             "scaleTier": "A String", # Required. Specifies the machine types, the number of replicas for workers
                 # and parameter servers.
             "masterType": "A String", # Optional. Specifies the type of virtual machine to use for your training
@@ -831,6 +948,19 @@
                 #   A machine with roughly twice the number of cores and roughly double the
                 #   memory of <code suppresswarning="true">complex_model_m</code>.
                 #   </dd>
+                #   <dt>standard_gpu</dt>
+                #   <dd>
+                #   A machine equivalent to <code suppresswarning="true">standard</code> that
+                #   also includes a
+                #   <a href="ml/docs/how-tos/using-gpus">
+                #   GPU that you can use in your trainer</a>.
+                #   </dd>
+                #   <dt>complex_model_m_gpu</dt>
+                #   <dd>
+                #   A machine equivalent to
+                #   <code suppresswarning="true">coplex_model_m</code> that also includes
+                #   four GPUs.
+                #   </dd>
                 # </dl>
                 #
                 # You must set this value when `scaleTier` is set to `CUSTOM`.
@@ -839,14 +969,19 @@
                   # the specified hyperparameters.
                   #
                   # Defaults to one.
+              "hyperparameterMetricTag": "A String", # Optional. The Tensorflow summary tag name to use for optimizing trials. For
+                  # current versions of Tensorflow, this tag name should exactly match what is
+                  # shown in Tensorboard, including all scopes.  For versions of Tensorflow
+                  # prior to 0.12, this should be only the tag passed to tf.Summary.
+                  # By default, "training/hptuning/metric" will be used.
               "params": [ # Required. The set of parameters to tune.
                 { # Represents a single hyperparameter to optimize.
                   "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                       # should be unset if type is `CATEGORICAL`. This value should be integers if
                       # type is `INTEGER`.
-                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                      # should be unset if type is `CATEGORICAL`. This value should be integers if
-                      # type is INTEGER.
+                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                    "A String",
+                  ],
                   "discreteValues": [ # Required if type is `DISCRETE`.
                       # A list of feasible points.
                       # The list should be in strictly increasing order. For instance, this
@@ -856,9 +991,9 @@
                   ],
                   "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                       # a HyperparameterSpec message. E.g., "learning_rate".
-                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                    "A String",
-                  ],
+                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                      # should be unset if type is `CATEGORICAL`. This value should be integers if
+                      # type is INTEGER.
                   "type": "A String", # Required. The type of the parameter.
                   "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                       # Leave unset for categorical parameters.
@@ -866,6 +1001,10 @@
                       # parameters (e.g., `UNIT_LINEAR_SCALE`).
                 },
               ],
+              "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+                  # `MAXIMIZE` and `MINIMIZE`.
+                  #
+                  # Defaults to `MAXIMIZE`.
               "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
                   # You can reduce the time it takes to perform hyperparameter tuning by adding
                   # trials in parallel. However, each trail only benefits from the information
@@ -876,16 +1015,16 @@
                   # Each trial will use the same scale tier and machine types.
                   #
                   # Defaults to one.
-              "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-                  # `MAXIMIZE` and `MINIMIZE`.
-                  #
-                  # Defaults to `MAXIMIZE`.
             },
             "region": "A String", # Required. The Google Compute Engine region to run the training job in.
             "args": [ # Optional. Command line arguments to pass to the program.
               "A String",
             ],
             "pythonModule": "A String", # Required. The Python module name to run after installing the packages.
+            "jobDir": "A String", # Optional. A Google Cloud Storage path in which to store training outputs
+                # and other data needed for training. This path is passed to your TensorFlow
+                # program as the 'job_dir' command-line argument. The benefit of specifying
+                # this field is that Cloud ML validates the path for use in training.
             "packageUris": [ # Required. The Google Cloud Storage location of the packages with
                 # the training program and any additional dependencies.
               "A String",
@@ -913,6 +1052,7 @@
           "endTime": "A String", # Output only. When the job processing was completed.
           "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
             "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
+            "nodeHours": 3.14, # Node hours used by the batch prediction job.
             "predictionCount": "A String", # The number of generated predictions.
             "errorCount": "A String", # The number of data instances which resulted in errors.
           },
diff --git a/docs/dyn/ml_v1beta1.projects.models.html b/docs/dyn/ml_v1beta1.projects.models.html
index 015558a..1ead461 100644
--- a/docs/dyn/ml_v1beta1.projects.models.html
+++ b/docs/dyn/ml_v1beta1.projects.models.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.models.html">models</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.models.html">models</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="ml_v1beta1.projects.models.versions.html">versions()</a></code>
@@ -115,6 +115,11 @@
       # A model can have multiple versions, each of which is a deployed, trained
       # model ready to receive prediction requests. The model itself is just a
       # container.
+    "regions": [ # Optional. The list of regions where the model is going to be deployed.
+        # Currently only one region per model is supported.
+        # Defaults to 'us-central1' if nothing is set.
+      "A String",
+    ],
     "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
         # handle prediction requests that do not specify a version.
         # 
@@ -126,6 +131,19 @@
         # information about all of the versions of a given model by calling
         # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
       "description": "A String", # Optional. The description specified for the version when it was created.
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+          # If not set, Google Cloud ML will choose a version.
+      "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+          # model. If unset (i.e., by default), the number of nodes used to serve
+          # the model automatically scales with traffic. However, care should be
+          # taken to ramp up traffic according to the model's ability to scale. If
+          # your model needs to handle bursts of traffic beyond it's ability to
+          # scale, it is recommended you set this field appropriately.
+        "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+            # starting from the time the model is deployed, so the cost of operating
+            # this model will be proportional to nodes * number of hours since
+            # deployment.
+      },
       "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
       "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
           # create the version. See the
@@ -147,10 +165,12 @@
           #
           # The version name must be unique within the model it is created in.
     },
-    "description": "A String", # Optional. The description specified for the model when it was created.
     "name": "A String", # Required. The name specified for the model when it was created.
         # 
         # The model name must be unique within the project it is created in.
+    "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+        # Default is false.
+    "description": "A String", # Optional. The description specified for the model when it was created.
   }
 
   x__xgafv: string, V1 error format.
@@ -166,6 +186,11 @@
         # A model can have multiple versions, each of which is a deployed, trained
         # model ready to receive prediction requests. The model itself is just a
         # container.
+      "regions": [ # Optional. The list of regions where the model is going to be deployed.
+          # Currently only one region per model is supported.
+          # Defaults to 'us-central1' if nothing is set.
+        "A String",
+      ],
       "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
           # handle prediction requests that do not specify a version.
           #
@@ -177,6 +202,19 @@
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
         "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
         "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
@@ -198,10 +236,12 @@
             #
             # The version name must be unique within the model it is created in.
       },
-      "description": "A String", # Optional. The description specified for the model when it was created.
       "name": "A String", # Required. The name specified for the model when it was created.
           #
           # The model name must be unique within the project it is created in.
+      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+          # Default is false.
+      "description": "A String", # Optional. The description specified for the model when it was created.
     }</pre>
 </div>
 
@@ -233,22 +273,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -312,6 +336,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -338,6 +378,11 @@
         # A model can have multiple versions, each of which is a deployed, trained
         # model ready to receive prediction requests. The model itself is just a
         # container.
+      "regions": [ # Optional. The list of regions where the model is going to be deployed.
+          # Currently only one region per model is supported.
+          # Defaults to 'us-central1' if nothing is set.
+        "A String",
+      ],
       "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
           # handle prediction requests that do not specify a version.
           #
@@ -349,6 +394,19 @@
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
         "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
         "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
@@ -370,10 +428,12 @@
             #
             # The version name must be unique within the model it is created in.
       },
-      "description": "A String", # Optional. The description specified for the model when it was created.
       "name": "A String", # Required. The name specified for the model when it was created.
           #
           # The model name must be unique within the project it is created in.
+      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+          # Default is false.
+      "description": "A String", # Optional. The description specified for the model when it was created.
     }</pre>
 </div>
 
@@ -406,12 +466,19 @@
   An object of the form:
 
     { # Response message for the ListModels method.
+    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
+        # subsequent call.
     "models": [ # The list of models.
       { # Represents a machine learning solution.
             #
             # A model can have multiple versions, each of which is a deployed, trained
             # model ready to receive prediction requests. The model itself is just a
             # container.
+          "regions": [ # Optional. The list of regions where the model is going to be deployed.
+              # Currently only one region per model is supported.
+              # Defaults to 'us-central1' if nothing is set.
+            "A String",
+          ],
           "defaultVersion": { # Represents a version of the model. # Output only. The default version of the model. This version will be used to
               # handle prediction requests that do not specify a version.
               #
@@ -423,6 +490,19 @@
               # information about all of the versions of a given model by calling
               # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
             "description": "A String", # Optional. The description specified for the version when it was created.
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+                # If not set, Google Cloud ML will choose a version.
+            "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+                # model. If unset (i.e., by default), the number of nodes used to serve
+                # the model automatically scales with traffic. However, care should be
+                # taken to ramp up traffic according to the model's ability to scale. If
+                # your model needs to handle bursts of traffic beyond it's ability to
+                # scale, it is recommended you set this field appropriately.
+              "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+                  # starting from the time the model is deployed, so the cost of operating
+                  # this model will be proportional to nodes * number of hours since
+                  # deployment.
+            },
             "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
             "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
                 # create the version. See the
@@ -444,14 +524,14 @@
                 #
                 # The version name must be unique within the model it is created in.
           },
-          "description": "A String", # Optional. The description specified for the model when it was created.
           "name": "A String", # Required. The name specified for the model when it was created.
               #
               # The model name must be unique within the project it is created in.
+          "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
+              # Default is false.
+          "description": "A String", # Optional. The description specified for the model when it was created.
         },
     ],
-    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
-        # subsequent call.
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1beta1.projects.models.versions.html b/docs/dyn/ml_v1beta1.projects.models.versions.html
index 3624328..e201ee0 100644
--- a/docs/dyn/ml_v1beta1.projects.models.versions.html
+++ b/docs/dyn/ml_v1beta1.projects.models.versions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.models.html">models</a> . <a href="ml_v1beta1.projects.models.versions.html">versions</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.models.html">models</a> . <a href="ml_v1beta1.projects.models.versions.html">versions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a model version.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets basic information about all the versions of a model.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -118,6 +118,19 @@
     # information about all of the versions of a given model by calling
     # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
   "description": "A String", # Optional. The description specified for the version when it was created.
+  "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+      # If not set, Google Cloud ML will choose a version.
+  "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+      # model. If unset (i.e., by default), the number of nodes used to serve
+      # the model automatically scales with traffic. However, care should be
+      # taken to ramp up traffic according to the model's ability to scale. If
+      # your model needs to handle bursts of traffic beyond it's ability to
+      # scale, it is recommended you set this field appropriately.
+    "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+        # starting from the time the model is deployed, so the cost of operating
+        # this model will be proportional to nodes * number of hours since
+        # deployment.
+  },
   "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
   "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
       # create the version. See the
@@ -156,22 +169,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -235,6 +232,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -270,22 +283,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -349,6 +346,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -380,6 +393,19 @@
       # information about all of the versions of a given model by calling
       # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
     "description": "A String", # Optional. The description specified for the version when it was created.
+    "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+        # If not set, Google Cloud ML will choose a version.
+    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+        # model. If unset (i.e., by default), the number of nodes used to serve
+        # the model automatically scales with traffic. However, care should be
+        # taken to ramp up traffic according to the model's ability to scale. If
+        # your model needs to handle bursts of traffic beyond it's ability to
+        # scale, it is recommended you set this field appropriately.
+      "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+          # starting from the time the model is deployed, so the cost of operating
+          # this model will be proportional to nodes * number of hours since
+          # deployment.
+    },
     "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
@@ -404,7 +430,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Gets basic information about all the versions of a model.
 
 If you expect that a model has a lot of versions, or if you need to handle
@@ -415,6 +441,11 @@
   parent: string, Required. The name of the model for which to list the version.
 
 Authorization: requires `Viewer` role on the parent project. (required)
+  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
+there are more remaining results than this number, the response message
+will contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
   pageToken: string, Optional. A page token to request the next page of results.
 
 You get the token from the `next_page_token` field of the response from
@@ -423,11 +454,6 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
-there are more remaining results than this number, the response message
-will contain a valid value in the `next_page_token` field.
-
-The default value is 20, and the maximum page size is 100.
 
 Returns:
   An object of the form:
@@ -443,6 +469,19 @@
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
         "description": "A String", # Optional. The description specified for the version when it was created.
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+            # If not set, Google Cloud ML will choose a version.
+        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+            # model. If unset (i.e., by default), the number of nodes used to serve
+            # the model automatically scales with traffic. However, care should be
+            # taken to ramp up traffic according to the model's ability to scale. If
+            # your model needs to handle bursts of traffic beyond it's ability to
+            # scale, it is recommended you set this field appropriately.
+          "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+              # starting from the time the model is deployed, so the cost of operating
+              # this model will be proportional to nodes * number of hours since
+              # deployment.
+        },
         "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
@@ -520,6 +559,19 @@
       # information about all of the versions of a given model by calling
       # [projects.models.versions.list](/ml/reference/rest/v1beta1/projects.models.versions/list).
     "description": "A String", # Optional. The description specified for the version when it was created.
+    "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
+        # If not set, Google Cloud ML will choose a version.
+    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
+        # model. If unset (i.e., by default), the number of nodes used to serve
+        # the model automatically scales with traffic. However, care should be
+        # taken to ramp up traffic according to the model's ability to scale. If
+        # your model needs to handle bursts of traffic beyond it's ability to
+        # scale, it is recommended you set this field appropriately.
+      "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
+          # starting from the time the model is deployed, so the cost of operating
+          # this model will be proportional to nodes * number of hours since
+          # deployment.
+    },
     "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
diff --git a/docs/dyn/ml_v1beta1.projects.operations.html b/docs/dyn/ml_v1beta1.projects.operations.html
index 3f1d5f7..0639f0d 100644
--- a/docs/dyn/ml_v1beta1.projects.operations.html
+++ b/docs/dyn/ml_v1beta1.projects.operations.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.operations.html">operations</a></h1>
+<h1><a href="ml_v1beta1.html">Google Cloud Machine Learning Engine</a> . <a href="ml_v1beta1.projects.html">projects</a> . <a href="ml_v1beta1.projects.operations.html">operations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
@@ -178,22 +178,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -257,6 +241,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -292,22 +292,6 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -371,6 +355,22 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
index b2eccbb..91d1335 100644
--- a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
@@ -129,9 +129,9 @@
                 "mean": 3.14, # The arithmetic mean of the values in the population. If count is zero then this field must be zero.
               },
               "stringValue": "A String", # A variable-length string value.
-              "boolValue": True or False, # A Boolean value: true or false.
               "int64Value": "A String", # A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
               "doubleValue": 3.14, # A 64-bit double-precision floating-point number. Its magnitude is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16 significant digits of precision.
+              "boolValue": True or False, # A Boolean value: true or false.
             },
           },
         ],
@@ -173,9 +173,9 @@
               "mean": 3.14, # The arithmetic mean of the values in the population. If count is zero then this field must be zero.
             },
             "stringValue": "A String", # A variable-length string value.
-            "boolValue": True or False, # A Boolean value: true or false.
             "int64Value": "A String", # A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
             "doubleValue": 3.14, # A 64-bit double-precision floating-point number. Its magnitude is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16 significant digits of precision.
+            "boolValue": True or False, # A Boolean value: true or false.
           },
         },
       },
diff --git a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
index b2020d1..9697af1 100644
--- a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
@@ -108,8 +108,8 @@
       },
     ],
     "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
-    "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
     "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+    "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
   }</pre>
 </div>
 
@@ -145,8 +145,8 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
       },
     ],
   }</pre>
diff --git a/docs/dyn/monitoring_v3.projects.timeSeries.html b/docs/dyn/monitoring_v3.projects.timeSeries.html
index 2479bb8..8712d02 100644
--- a/docs/dyn/monitoring_v3.projects.timeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.timeSeries.html
@@ -142,9 +142,9 @@
                 "mean": 3.14, # The arithmetic mean of the values in the population. If count is zero then this field must be zero.
               },
               "stringValue": "A String", # A variable-length string value.
-              "boolValue": True or False, # A Boolean value: true or false.
               "int64Value": "A String", # A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
               "doubleValue": 3.14, # A 64-bit double-precision floating-point number. Its magnitude is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16 significant digits of precision.
+              "boolValue": True or False, # A Boolean value: true or false.
             },
           },
         ],
@@ -256,9 +256,9 @@
                 "mean": 3.14, # The arithmetic mean of the values in the population. If count is zero then this field must be zero.
               },
               "stringValue": "A String", # A variable-length string value.
-              "boolValue": True or False, # A Boolean value: true or false.
               "int64Value": "A String", # A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
               "doubleValue": 3.14, # A 64-bit double-precision floating-point number. Its magnitude is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16 significant digits of precision.
+              "boolValue": True or False, # A Boolean value: true or false.
             },
           },
         ],
diff --git a/docs/dyn/partners_v2.analytics.html b/docs/dyn/partners_v2.analytics.html
new file mode 100644
index 0000000..7dd3814
--- /dev/null
+++ b/docs/dyn/partners_v2.analytics.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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.analytics.html">analytics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Lists analytics data for a user's associated company.</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(pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Lists analytics data for a user's associated company.
+Should only be called within the context of an authorized logged in user.
+
+Args:
+  pageSize: integer, Requested page size. Server may return fewer analytics than requested.
+If unspecified or set to 0, default value is 30.
+Specifies the number of days in the date range when querying analytics.
+The `page_token` represents the end date of the date range
+and the start date is calculated using the `page_size` as the number
+of days BEFORE the end date.
+Must be a non-negative integer.
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  pageToken: string, A token identifying a page of results that the server returns.
+Typically, this is the value of `ListAnalyticsResponse.next_page_token`
+returned from the previous call to
+ListAnalytics.
+Will be a date string in `YYYY-MM-DD` format representing the end date
+of the date range of results to return.
+If unspecified or set to "", default value is the current date.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # Response message for
+      # ListAnalytics.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the `ListAnalyticsRequest.page_token` field in the
+        # subsequent call to
+        # ListAnalytics to retrieve the
+        # next page of results.
+    "analyticsSummary": { # Analytics aggregated data for a `Company` for a given date range. # Aggregated information across the response's
+        # analytics.
+      "contactsCount": 42, # Aggregated number of times users contacted the `Company`
+          # for given date range.
+      "searchViewsCount": 42, # Aggregated number of times users saw the `Company`
+          # in Google Partners Search results for given date range.
+      "profileViewsCount": 42, # Aggregated number of profile views for the `Company` for given date range.
+    },
+    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
+      "debugInfo": { # Debug information about this request. # Debug information about this request.
+        "serverTraceInfo": "A String", # Server-side debug stack trace.
+        "serviceUrl": "A String", # URL of the service that handled this request.
+        "serverInfo": "A String", # Info about the server that serviced this request.
+      },
+    },
+    "analytics": [ # The list of analytics.
+        # Sorted in ascending order of
+        # Analytics.event_date.
+      { # Analytics data for a `Company` within a single day.
+        "searchViews": { # Details of the analytics events for a `Company` within a single day. # Instances of users seeing the `Company` in Google Partners Search results
+            # on the specified date.
+          "eventLocations": [ # Location information of where these events occurred.
+            { # An object representing a latitude/longitude pair. This is expressed as a pair
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+          ],
+          "eventCount": 42, # Number of times the type of event occurred.
+              # Meaning depends on context (e.g. profile views, contacts, etc.).
+        },
+        "profileViews": { # Details of the analytics events for a `Company` within a single day. # Instances of users viewing the `Company` profile
+            # on the specified date.
+          "eventLocations": [ # Location information of where these events occurred.
+            { # An object representing a latitude/longitude pair. This is expressed as a pair
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+          ],
+          "eventCount": 42, # Number of times the type of event occurred.
+              # Meaning depends on context (e.g. profile views, contacts, etc.).
+        },
+        "eventDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Date on which these events occurred.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
+        },
+        "contacts": { # Details of the analytics events for a `Company` within a single day. # Instances of users contacting the `Company`
+            # on the specified date.
+          "eventLocations": [ # Location information of where these events occurred.
+            { # An object representing a latitude/longitude pair. This is expressed as a pair
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+          ],
+          "eventCount": 42, # Number of times the type of event occurred.
+              # Meaning depends on context (e.g. profile views, contacts, etc.).
+        },
+      },
+    ],
+  }</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/partners_v2.clientMessages.html b/docs/dyn/partners_v2.clientMessages.html
index 983a759..f849bcd 100644
--- a/docs/dyn/partners_v2.clientMessages.html
+++ b/docs/dyn/partners_v2.clientMessages.html
@@ -76,28 +76,34 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#log">log(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Logs a generic message from the client, such as `Failed to render component`, `Profile page is running slow`, `More than 500 users have accessed this result.`, etc.</p>
+<p class="firstline">Logs a generic message from the client, such as</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="log">log(body, x__xgafv=None)</code>
-  <pre>Logs a generic message from the client, such as `Failed to render component`, `Profile page is running slow`, `More than 500 users have accessed this result.`, etc.
+  <pre>Logs a generic message from the client, such as
+`Failed to render component`, `Profile page is running slow`,
+`More than 500 users have accessed this result.`, etc.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request message for LogClientMessage.
-    "clientInfo": { # Map of client info, such as URL, browser navigator, browser platform, etc.
-      "a_key": "A String",
-    },
+{ # Request message for
+      # LogClientMessage.
     "requestMetadata": { # Common data that is in each API request. # Current request metadata.
       "locale": "A String", # Locale to use for the current request.
       "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
-        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
-        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
+        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
       },
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only honored by whitelisted products. # Values to use instead of the user's respective defaults for the current request. These are only honored by whitelisted products.
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
         "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
         "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
       },
@@ -105,16 +111,23 @@
         "A String",
       ],
     },
+    "clientInfo": { # Map of client info, such as URL, browser navigator, browser platform, etc.
+      "a_key": "A String",
+    },
     "details": "A String", # Details about the client message.
     "level": "A String", # Message level of client message.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response message for LogClientMessage.
+    { # Response message for
+      # LogClientMessage.
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
         "serverTraceInfo": "A String", # Server-side debug stack trace.
diff --git a/docs/dyn/partners_v2.companies.html b/docs/dyn/partners_v2.companies.html
index 38f4bc4..f6649e7 100644
--- a/docs/dyn/partners_v2.companies.html
+++ b/docs/dyn/partners_v2.companies.html
@@ -83,7 +83,7 @@
   <code><a href="#get">get(companyId, orderBy=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, currencyCode=None, address=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None, view=None)</a></code></p>
 <p class="firstline">Gets a company.</p>
 <p class="toc_element">
-  <code><a href="#list">list(orderBy=None, maxMonthlyBudget_units=None, requestMetadata_userOverrides_userId=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, maxMonthlyBudget_currencyCode=None, minMonthlyBudget_nanos=None, languageCodes=None, x__xgafv=None, industries=None, requestMetadata_locale=None, pageToken=None, minMonthlyBudget_currencyCode=None, companyName=None, maxMonthlyBudget_nanos=None, requestMetadata_trafficSource_trafficSubId=None, address=None, services=None, gpsMotivations=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, websiteUrl=None, requestMetadata_partnersSessionId=None, minMonthlyBudget_units=None, view=None)</a></code></p>
+  <code><a href="#list">list(orderBy=None, maxMonthlyBudget_units=None, requestMetadata_userOverrides_userId=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, maxMonthlyBudget_currencyCode=None, minMonthlyBudget_nanos=None, languageCodes=None, x__xgafv=None, industries=None, requestMetadata_locale=None, pageToken=None, minMonthlyBudget_currencyCode=None, companyName=None, maxMonthlyBudget_nanos=None, requestMetadata_trafficSource_trafficSubId=None, address=None, services=None, gpsMotivations=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, specializations=None, websiteUrl=None, requestMetadata_partnersSessionId=None, minMonthlyBudget_units=None, view=None)</a></code></p>
 <p class="firstline">Lists companies.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -95,71 +95,221 @@
 
 Args:
   companyId: string, The ID of the company to retrieve. (required)
-  orderBy: string, How to order addresses within the returned company. Currently, only `address` and `address desc` is supported which will sorted by closest to farthest in distance from given address and farthest to closest distance from given address respectively.
+  orderBy: string, How to order addresses within the returned company. Currently, only
+`address` and `address desc` is supported which will sorted by closest to
+farthest in distance from given address and farthest to closest distance
+from given address respectively.
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
-  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
   requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
   x__xgafv: string, V1 error format.
-  currencyCode: string, If the company's budget is in a different currency code than this one, then the converted budget is converted to this currency code.
-  address: string, The address to use for sorting the company's addresses by proximity. If not given, the geo-located address of the request is used. Used when order_by is set.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  currencyCode: string, If the company's budget is in a different currency code than this one, then
+the converted budget is converted to this currency code.
+  address: string, The address to use for sorting the company's addresses by proximity.
+If not given, the geo-located address of the request is used.
+Used when order_by is set.
   requestMetadata_locale: string, Locale to use for the current request.
   requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
-  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
   requestMetadata_partnersSessionId: string, Google Partners session ID.
-  view: string, The view of `Company` resource to be returned. This must not be `COMPANY_VIEW_UNSPECIFIED`.
+  view: string, The view of `Company` resource to be returned. This must not be
+`COMPANY_VIEW_UNSPECIFIED`.
 
 Returns:
   An object of the form:
 
     { # Response message for GetCompany.
-    "company": { # A company resource in the Google Partners API. Once certified, it qualifies for being searched by advertisers. # The company.
+    "company": { # A company resource in the Google Partners API. Once certified, it qualifies # The company.
+        # for being searched by advertisers.
       "industries": [ # Industries the company can help with.
         "A String",
       ],
-      "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner business.
-        "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-        "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+      "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
+          # business.
+        "units": "A String", # The whole units of the amount.
+            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+        "nanos": 42, # Number of nano (10^-9) units of the amount.
+            # The value must be between -999,999,999 and +999,999,999 inclusive.
+            # If `units` is positive, `nanos` must be positive or zero.
+            # If `units` is zero, `nanos` can be positive, zero, or negative.
+            # If `units` is negative, `nanos` must be negative or zero.
+            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
-      "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-        "url": "A String", # The URL of the public profile.
-        "displayImageUrl": "A String", # The URL to the main display image of the public profile.
-        "displayName": "A String", # The display name of the public profile.
-        "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-      },
+      "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
+          # auto-approved for associating with this company.
+        "A String",
+      ],
       "name": "A String", # The name of the company.
+      "badgeTier": "A String", # Partner badge tier
       "localizedInfos": [ # The list of localized info for the company.
         { # The localized company information.
           "countryCodes": [ # List of country codes for the localized company info.
             "A String",
           ],
-          "languageCode": "A String", # Language code of the localized company info, as defined by BCP 47 (IETF BCP 47, "Tags for Identifying Languages").
-          "displayName": "A String", # Localized display name.
           "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+          "displayName": "A String", # Localized display name.
+          "languageCode": "A String", # Language code of the localized company info, as defined by
+              # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+              # (IETF BCP 47, "Tags for Identifying Languages").
         },
       ],
-      "locations": [ # The list of company locations.
-        { # A location with address and geographic coordinates.
-          "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wrapsdecimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-180.0, 180.0] and [-90.0, 90.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The latitude and longitude of the location, in degrees.
+      "locations": [ # The list of all company locations.
+          # If set, must include the
+          # primary_location
+          # in the list.
+        { # A location with address and geographic coordinates. May optionally contain a
+            # detailed (multi-field) version of the address.
+          "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+          "addressLine": [ # The following address lines represent the most specific part of any
+              # address.
+            "A String",
+          ],
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
+          "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+              # classification code for sorting mail.
+          "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+              # of doubles representing degrees latitude and degrees longitude. Unless
+              # specified otherwise, this must conform to the
+              # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+              # standard</a>. Values must be within normalized ranges.
+              #
+              # Example of normalization code in Python:
+              #
+              #     def NormalizeLongitude(longitude):
+              #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+              #       q, r = divmod(longitude, 360.0)
+              #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+              #         return r - 360.0
+              #       return r
+              #
+              #     def NormalizeLatLng(latitude, longitude):
+              #       """Wraps decimal degrees latitude and longitude to
+              #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+              #       r = latitude % 360.0
+              #       if r <= 90.0:
+              #         return r, NormalizeLongitude(longitude)
+              #       elif r >= 270.0:
+              #         return r - 360, NormalizeLongitude(longitude)
+              #       else:
+              #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+              #
+              #     assert 180.0 == NormalizeLongitude(180.0)
+              #     assert -180.0 == NormalizeLongitude(-180.0)
+              #     assert -179.0 == NormalizeLongitude(181.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+              #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+              #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+              #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+              #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              #
+              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+              # as if it were annotated as ST_LOCATION.
             "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
             "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
           },
-          "address": "A String", # The complete address of the location.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+          "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+          "address": "A String", # The single string version of the address.
+          "postalCode": "A String", # Values are frequently alphanumeric.
         },
       ],
       "websiteUrl": "A String", # URL of the company's website.
-      "ranks": [ # Information related to the ranking of the company within the list of companies.
+      "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+          # detailed (multi-field) version of the address.
+        "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+        "addressLine": [ # The following address lines represent the most specific part of any
+            # address.
+          "A String",
+        ],
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
+        "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+            # classification code for sorting mail.
+        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+            # of doubles representing degrees latitude and degrees longitude. Unless
+            # specified otherwise, this must conform to the
+            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+            # standard</a>. Values must be within normalized ranges.
+            #
+            # Example of normalization code in Python:
+            #
+            #     def NormalizeLongitude(longitude):
+            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+            #       q, r = divmod(longitude, 360.0)
+            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+            #         return r - 360.0
+            #       return r
+            #
+            #     def NormalizeLatLng(latitude, longitude):
+            #       """Wraps decimal degrees latitude and longitude to
+            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+            #       r = latitude % 360.0
+            #       if r <= 90.0:
+            #         return r, NormalizeLongitude(longitude)
+            #       elif r >= 270.0:
+            #         return r - 360, NormalizeLongitude(longitude)
+            #       else:
+            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+            #
+            #     assert 180.0 == NormalizeLongitude(180.0)
+            #     assert -180.0 == NormalizeLongitude(-180.0)
+            #     assert -179.0 == NormalizeLongitude(181.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+            #
+            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+            # as if it were annotated as ST_LOCATION.
+          "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+          "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+        },
+        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+        "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+        "address": "A String", # The single string version of the address.
+        "postalCode": "A String", # Values are frequently alphanumeric.
+      },
+      "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+          # These are stored as full URLs as entered by the user, but only the TLD will
+          # be used for the actual verification.
+        "A String",
+      ],
+      "profileStatus": "A String", # The public viewability status of the company's profile.
+      "ranks": [ # Information related to the ranking of the company within the list of
+          # companies.
         { # Information related to ranking of results.
           "type": "A String", # The type of rank.
           "value": 3.14, # The numerical value of the rank.
         },
       ],
+      "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
       "services": [ # Services the company can help with.
         "A String",
       ],
       "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
         { # Google Partners certification status.
-          "isCertified": True or False, # Whether certification is passing.
           "type": "A String", # The type of the certification.
           "examStatuses": [ # List of certification exam statuses.
             { # Status for a Google Partners certification exam.
@@ -167,14 +317,42 @@
               "type": "A String", # The type of certification exam.
             },
           ],
+          "isCertified": True or False, # Whether certification is passing.
+          "userCount": 42, # Number of people who are certified,
         },
       ],
-      "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business, converted to the requested currency code.
-        "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-        "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+      "companyTypes": [ # Company type labels listed on the company's profile.
+        "A String",
+      ],
+      "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+        "url": "A String", # The URL of the public profile.
+        "profileImage": "A String", # The URL to the main profile image of the public profile.
+        "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+        "displayName": "A String", # The display name of the public profile.
+        "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+      },
+      "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
+          # converted to the requested currency code.
+        "units": "A String", # The whole units of the amount.
+            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+        "nanos": 42, # Number of nano (10^-9) units of the amount.
+            # The value must be between -999,999,999 and +999,999,999 inclusive.
+            # If `units` is positive, `nanos` must be positive or zero.
+            # If `units` is zero, `nanos` can be positive, zero, or negative.
+            # If `units` is negative, `nanos` must be negative or zero.
+            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "id": "A String", # The ID of the company.
+      "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+      "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+        { # Agency specialization status
+          "badgeSpecialization": "A String", # The specialization this status is for.
+          "badgeSpecializationState": "A String", # State of agency specialization.
+        },
+      ],
     },
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
@@ -187,90 +365,268 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(orderBy=None, maxMonthlyBudget_units=None, requestMetadata_userOverrides_userId=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, maxMonthlyBudget_currencyCode=None, minMonthlyBudget_nanos=None, languageCodes=None, x__xgafv=None, industries=None, requestMetadata_locale=None, pageToken=None, minMonthlyBudget_currencyCode=None, companyName=None, maxMonthlyBudget_nanos=None, requestMetadata_trafficSource_trafficSubId=None, address=None, services=None, gpsMotivations=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, websiteUrl=None, requestMetadata_partnersSessionId=None, minMonthlyBudget_units=None, view=None)</code>
+    <code class="details" id="list">list(orderBy=None, maxMonthlyBudget_units=None, requestMetadata_userOverrides_userId=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, maxMonthlyBudget_currencyCode=None, minMonthlyBudget_nanos=None, languageCodes=None, x__xgafv=None, industries=None, requestMetadata_locale=None, pageToken=None, minMonthlyBudget_currencyCode=None, companyName=None, maxMonthlyBudget_nanos=None, requestMetadata_trafficSource_trafficSubId=None, address=None, services=None, gpsMotivations=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, specializations=None, websiteUrl=None, requestMetadata_partnersSessionId=None, minMonthlyBudget_units=None, view=None)</code>
   <pre>Lists companies.
 
 Args:
-  orderBy: string, How to order addresses within the returned companies. Currently, only `address` and `address desc` is supported which will sorted by closest to farthest in distance from given address and farthest to closest distance from given address respectively.
-  maxMonthlyBudget_units: string, The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+  orderBy: string, How to order addresses within the returned companies. Currently, only
+`address` and `address desc` is supported which will sorted by closest to
+farthest in distance from given address and farthest to closest distance
+from given address respectively.
+  maxMonthlyBudget_units: string, The whole units of the amount.
+For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
   requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
-  pageSize: integer, Requested page size. Server may return fewer companies than requested. If unspecified, server picks an appropriate default.
+  pageSize: integer, Requested page size. Server may return fewer companies than requested.
+If unspecified, server picks an appropriate default.
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
   maxMonthlyBudget_currencyCode: string, The 3-letter currency code defined in ISO 4217.
-  minMonthlyBudget_nanos: integer, Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
-  languageCodes: string, List of language codes that company can support. Only primary language subtags are accepted as defined by BCP 47 (IETF BCP 47, "Tags for Identifying Languages"). (repeated)
+  minMonthlyBudget_nanos: integer, Number of nano (10^-9) units of the amount.
+The value must be between -999,999,999 and +999,999,999 inclusive.
+If `units` is positive, `nanos` must be positive or zero.
+If `units` is zero, `nanos` can be positive, zero, or negative.
+If `units` is negative, `nanos` must be negative or zero.
+For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+  languageCodes: string, List of language codes that company can support. Only primary language
+subtags are accepted as defined by
+<a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+(IETF BCP 47, "Tags for Identifying Languages"). (repeated)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   industries: string, List of industries the company can help with. (repeated)
   requestMetadata_locale: string, Locale to use for the current request.
-  pageToken: string, A token identifying a page of results that the server returns. Typically, this is the value of `ListCompaniesResponse.next_page_token` returned from the previous call to ListCompanies.
+  pageToken: string, A token identifying a page of results that the server returns.
+Typically, this is the value of `ListCompaniesResponse.next_page_token`
+returned from the previous call to
+ListCompanies.
   minMonthlyBudget_currencyCode: string, The 3-letter currency code defined in ISO 4217.
   companyName: string, Company name to search for.
-  maxMonthlyBudget_nanos: integer, Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
-  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
-  address: string, The address to use when searching for companies. If not given, the geo-located address of the request is used.
-  services: string, List of services the company can help with. (repeated)
+  maxMonthlyBudget_nanos: integer, Number of nano (10^-9) units of the amount.
+The value must be between -999,999,999 and +999,999,999 inclusive.
+If `units` is positive, `nanos` must be positive or zero.
+If `units` is zero, `nanos` can be positive, zero, or negative.
+If `units` is negative, `nanos` must be negative or zero.
+For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  address: string, The address to use when searching for companies.
+If not given, the geo-located address of the request is used.
+  services: string, List of services that the returned agencies should provide. If this is
+not empty, any returned agency must have at least one of these services,
+or one of the specializations in the "specializations" field. (repeated)
   gpsMotivations: string, List of reasons for using Google Partner Search to get companies. (repeated)
   requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
-  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
-  websiteUrl: string, Website URL that will help to find a better matched company. .
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  specializations: string, List of specializations that the returned agencies should provide. If this
+is not empty, any returned agency must have at least one of these
+specializations, or one of the services in the "services" field. (repeated)
+  websiteUrl: string, Website URL that will help to find a better matched company.
+.
   requestMetadata_partnersSessionId: string, Google Partners session ID.
-  minMonthlyBudget_units: string, The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-  view: string, The view of the `Company` resource to be returned. This must not be `COMPANY_VIEW_UNSPECIFIED`.
+  minMonthlyBudget_units: string, The whole units of the amount.
+For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+  view: string, The view of the `Company` resource to be returned. This must not be
+`COMPANY_VIEW_UNSPECIFIED`.
 
 Returns:
   An object of the form:
 
-    { # Response message for ListCompanies.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in the `ListCompaniesRequest.page_token` field in the subsequent call to ListCompanies to retrieve the next page of results.
+    { # Response message for
+      # ListCompanies.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the `ListCompaniesRequest.page_token` field in the
+        # subsequent call to
+        # ListCompanies to retrieve the
+        # next page of results.
     "companies": [ # The list of companies.
-      { # A company resource in the Google Partners API. Once certified, it qualifies for being searched by advertisers.
+      { # A company resource in the Google Partners API. Once certified, it qualifies
+          # for being searched by advertisers.
         "industries": [ # Industries the company can help with.
           "A String",
         ],
-        "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner business.
-          "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-          "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
+            # business.
+          "units": "A String", # The whole units of the amount.
+              # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+          "nanos": 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
           "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
         },
-        "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-          "url": "A String", # The URL of the public profile.
-          "displayImageUrl": "A String", # The URL to the main display image of the public profile.
-          "displayName": "A String", # The display name of the public profile.
-          "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-        },
+        "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
+            # auto-approved for associating with this company.
+          "A String",
+        ],
         "name": "A String", # The name of the company.
+        "badgeTier": "A String", # Partner badge tier
         "localizedInfos": [ # The list of localized info for the company.
           { # The localized company information.
             "countryCodes": [ # List of country codes for the localized company info.
               "A String",
             ],
-            "languageCode": "A String", # Language code of the localized company info, as defined by BCP 47 (IETF BCP 47, "Tags for Identifying Languages").
-            "displayName": "A String", # Localized display name.
             "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+            "displayName": "A String", # Localized display name.
+            "languageCode": "A String", # Language code of the localized company info, as defined by
+                # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+                # (IETF BCP 47, "Tags for Identifying Languages").
           },
         ],
-        "locations": [ # The list of company locations.
-          { # A location with address and geographic coordinates.
-            "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wrapsdecimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-180.0, 180.0] and [-90.0, 90.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The latitude and longitude of the location, in degrees.
+        "locations": [ # The list of all company locations.
+            # If set, must include the
+            # primary_location
+            # in the list.
+          { # A location with address and geographic coordinates. May optionally contain a
+              # detailed (multi-field) version of the address.
+            "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+            "addressLine": [ # The following address lines represent the most specific part of any
+                # address.
+              "A String",
+            ],
+            "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+                # neighborhoods or boroughs in other locations.
+            "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+                # classification code for sorting mail.
+            "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
-            "address": "A String", # The complete address of the location.
+            "locality": "A String", # Generally refers to the city/town portion of an address.
+            "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+            "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+            "address": "A String", # The single string version of the address.
+            "postalCode": "A String", # Values are frequently alphanumeric.
           },
         ],
         "websiteUrl": "A String", # URL of the company's website.
-        "ranks": [ # Information related to the ranking of the company within the list of companies.
+        "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+            # detailed (multi-field) version of the address.
+          "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+          "addressLine": [ # The following address lines represent the most specific part of any
+              # address.
+            "A String",
+          ],
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
+          "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+              # classification code for sorting mail.
+          "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+              # of doubles representing degrees latitude and degrees longitude. Unless
+              # specified otherwise, this must conform to the
+              # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+              # standard</a>. Values must be within normalized ranges.
+              #
+              # Example of normalization code in Python:
+              #
+              #     def NormalizeLongitude(longitude):
+              #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+              #       q, r = divmod(longitude, 360.0)
+              #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+              #         return r - 360.0
+              #       return r
+              #
+              #     def NormalizeLatLng(latitude, longitude):
+              #       """Wraps decimal degrees latitude and longitude to
+              #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+              #       r = latitude % 360.0
+              #       if r <= 90.0:
+              #         return r, NormalizeLongitude(longitude)
+              #       elif r >= 270.0:
+              #         return r - 360, NormalizeLongitude(longitude)
+              #       else:
+              #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+              #
+              #     assert 180.0 == NormalizeLongitude(180.0)
+              #     assert -180.0 == NormalizeLongitude(-180.0)
+              #     assert -179.0 == NormalizeLongitude(181.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+              #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+              #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+              #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+              #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              #
+              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+              # as if it were annotated as ST_LOCATION.
+            "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+            "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+          },
+          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+          "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+          "address": "A String", # The single string version of the address.
+          "postalCode": "A String", # Values are frequently alphanumeric.
+        },
+        "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+            # These are stored as full URLs as entered by the user, but only the TLD will
+            # be used for the actual verification.
+          "A String",
+        ],
+        "profileStatus": "A String", # The public viewability status of the company's profile.
+        "ranks": [ # Information related to the ranking of the company within the list of
+            # companies.
           { # Information related to ranking of results.
             "type": "A String", # The type of rank.
             "value": 3.14, # The numerical value of the rank.
           },
         ],
+        "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
         "services": [ # Services the company can help with.
           "A String",
         ],
         "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
           { # Google Partners certification status.
-            "isCertified": True or False, # Whether certification is passing.
             "type": "A String", # The type of the certification.
             "examStatuses": [ # List of certification exam statuses.
               { # Status for a Google Partners certification exam.
@@ -278,14 +634,42 @@
                 "type": "A String", # The type of certification exam.
               },
             ],
+            "isCertified": True or False, # Whether certification is passing.
+            "userCount": 42, # Number of people who are certified,
           },
         ],
-        "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business, converted to the requested currency code.
-          "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-          "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        "companyTypes": [ # Company type labels listed on the company's profile.
+          "A String",
+        ],
+        "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+          "url": "A String", # The URL of the public profile.
+          "profileImage": "A String", # The URL to the main profile image of the public profile.
+          "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+          "displayName": "A String", # The display name of the public profile.
+          "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+        },
+        "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
+            # converted to the requested currency code.
+          "units": "A String", # The whole units of the amount.
+              # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+          "nanos": 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
           "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
         },
         "id": "A String", # The ID of the company.
+        "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
+            # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+            # (IETF BCP 47, "Tags for Identifying Languages").
+        "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+          { # Agency specialization status
+            "badgeSpecialization": "A String", # The specialization this status is for.
+            "badgeSpecializationState": "A String", # State of agency specialization.
+          },
+        ],
       },
     ],
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
diff --git a/docs/dyn/partners_v2.companies.leads.html b/docs/dyn/partners_v2.companies.leads.html
index 021e490..d2d0816 100644
--- a/docs/dyn/partners_v2.companies.leads.html
+++ b/docs/dyn/partners_v2.companies.leads.html
@@ -92,10 +92,16 @@
       "locale": "A String", # Locale to use for the current request.
       "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
-        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
-        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
+        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
       },
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only honored by whitelisted products. # Values to use instead of the user's respective defaults for the current request. These are only honored by whitelisted products.
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
         "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
         "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
       },
@@ -103,54 +109,88 @@
         "A String",
       ],
     },
-    "recaptchaChallenge": { # reCaptcha challenge info. # reCaptcha challenge info.
+    "recaptchaChallenge": { # <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info. # <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info.
       "id": "A String", # The ID of the reCaptcha challenge.
       "response": "A String", # The response to the reCaptcha challenge.
     },
-    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These are usually generated via Google Partner Search (the advertiser portal). # The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED` and either `email` or `phone_number` must be provided.
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These # The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`
+        # and either `email` or `phone_number` must be provided.
+        # are usually generated via Google Partner Search (the advertiser portal).
+      "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+      "languageCode": "A String", # Language code of the lead's language preference, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+      "type": "A String", # Type of lead.
       "familyName": "A String", # Last name of lead source.
       "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
-        "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-        "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        "units": "A String", # The whole units of the amount.
+            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+        "nanos": 42, # Number of nano (10^-9) units of the amount.
+            # The value must be between -999,999,999 and +999,999,999 inclusive.
+            # If `units` is positive, `nanos` must be positive or zero.
+            # If `units` is zero, `nanos` can be positive, zero, or negative.
+            # If `units` is negative, `nanos` must be negative or zero.
+            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
       "email": "A String", # Email address of lead source.
       "websiteUrl": "A String", # Website URL of lead source.
+      "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
-      "givenName": "A String", # First name of lead source.
-      "type": "A String", # Type of lead.
+      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+        "A String",
+      ],
       "id": "A String", # ID of the lead.
+      "givenName": "A String", # First name of lead source.
+      "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+      "createTime": "A String", # Timestamp of when this lead was created.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response message for CreateLead. Debug information about this request.
-    "recaptchaStatus": "A String", # The outcome of reCaptcha validation.
-    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These are usually generated via Google Partner Search (the advertiser portal). # Lead that was created depending on the outcome of reCaptcha validation.
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+    { # Response message for CreateLead.
+    "recaptchaStatus": "A String", # The outcome of <a href="https://www.google.com/recaptcha/">reCaptcha</a>
+        # validation.
+    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These # Lead that was created depending on the outcome of
+        # <a href="https://www.google.com/recaptcha/">reCaptcha</a> validation.
+        # are usually generated via Google Partner Search (the advertiser portal).
+      "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+      "languageCode": "A String", # Language code of the lead's language preference, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+      "type": "A String", # Type of lead.
       "familyName": "A String", # Last name of lead source.
       "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
-        "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-        "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        "units": "A String", # The whole units of the amount.
+            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+        "nanos": 42, # Number of nano (10^-9) units of the amount.
+            # The value must be between -999,999,999 and +999,999,999 inclusive.
+            # If `units` is positive, `nanos` must be positive or zero.
+            # If `units` is zero, `nanos` can be positive, zero, or negative.
+            # If `units` is negative, `nanos` must be negative or zero.
+            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
       "email": "A String", # Email address of lead source.
       "websiteUrl": "A String", # Website URL of lead source.
+      "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
-      "givenName": "A String", # First name of lead source.
-      "type": "A String", # Type of lead.
+      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+        "A String",
+      ],
       "id": "A String", # ID of the lead.
+      "givenName": "A String", # First name of lead source.
+      "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+      "createTime": "A String", # Timestamp of when this lead was created.
     },
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
diff --git a/docs/dyn/partners_v2.exams.html b/docs/dyn/partners_v2.exams.html
new file mode 100644
index 0000000..efc3b8f
--- /dev/null
+++ b/docs/dyn/partners_v2.exams.html
@@ -0,0 +1,113 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="partners_v2.html">Google Partners API</a> . <a href="partners_v2.exams.html">exams</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getToken">getToken(examType, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Gets an Exam Token for a Partner's user to take an exam in the Exams System</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getToken">getToken(examType, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Gets an Exam Token for a Partner's user to take an exam in the Exams System
+
+Args:
+  examType: string, The exam type we are requesting a token for. (required)
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A token that allows a user to take an exam.
+    "examType": "A String", # The type of the exam the token belongs to.
+    "token": "A String", # The token, only present if the user has access to the exam.
+    "examId": "A String", # The id of the exam the token is for.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/partners_v2.html b/docs/dyn/partners_v2.html
index 7bd0855..984ed96 100644
--- a/docs/dyn/partners_v2.html
+++ b/docs/dyn/partners_v2.html
@@ -75,6 +75,11 @@
 <h1><a href="partners_v2.html">Google Partners API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="partners_v2.analytics.html">analytics()</a></code>
+</p>
+<p class="firstline">Returns the analytics Resource.</p>
+
+<p class="toc_element">
   <code><a href="partners_v2.clientMessages.html">clientMessages()</a></code>
 </p>
 <p class="firstline">Returns the clientMessages Resource.</p>
@@ -85,6 +90,21 @@
 <p class="firstline">Returns the companies Resource.</p>
 
 <p class="toc_element">
+  <code><a href="partners_v2.exams.html">exams()</a></code>
+</p>
+<p class="firstline">Returns the exams Resource.</p>
+
+<p class="toc_element">
+  <code><a href="partners_v2.leads.html">leads()</a></code>
+</p>
+<p class="firstline">Returns the leads Resource.</p>
+
+<p class="toc_element">
+  <code><a href="partners_v2.offers.html">offers()</a></code>
+</p>
+<p class="firstline">Returns the offers Resource.</p>
+
+<p class="toc_element">
   <code><a href="partners_v2.userEvents.html">userEvents()</a></code>
 </p>
 <p class="firstline">Returns the userEvents Resource.</p>
@@ -95,6 +115,16 @@
 <p class="firstline">Returns the userStates Resource.</p>
 
 <p class="toc_element">
+  <code><a href="partners_v2.users.html">users()</a></code>
+</p>
+<p class="firstline">Returns the users Resource.</p>
+
+<p class="toc_element">
+  <code><a href="partners_v2.v2.html">v2()</a></code>
+</p>
+<p class="firstline">Returns the v2 Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/partners_v2.leads.html b/docs/dyn/partners_v2.leads.html
new file mode 100644
index 0000000..40b0311
--- /dev/null
+++ b/docs/dyn/partners_v2.leads.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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.leads.html">leads</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(orderBy=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Lists advertiser leads for a user's associated company.</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(orderBy=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Lists advertiser leads for a user's associated company.
+Should only be called within the context of an authorized logged in user.
+
+Args:
+  orderBy: string, How to order Leads. Currently, only `create_time`
+and `create_time desc` are supported
+  pageSize: integer, Requested page size. Server may return fewer leads than requested.
+If unspecified, server picks an appropriate default.
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  pageToken: string, A token identifying a page of results that the server returns.
+Typically, this is the value of `ListLeadsResponse.next_page_token`
+returned from the previous call to
+ListLeads.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListLeads.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the `ListLeadsRequest.page_token` field in the
+        # subsequent call to
+        # ListLeads to retrieve the
+        # next page of results.
+    "totalSize": 42, # The total count of leads for the given company.
+    "leads": [ # The list of leads.
+      { # A lead resource that represents an advertiser contact for a `Company`. These
+          # are usually generated via Google Partner Search (the advertiser portal).
+        "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+        "languageCode": "A String", # Language code of the lead's language preference, as defined by
+            # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+            # (IETF BCP 47, "Tags for Identifying Languages").
+        "type": "A String", # Type of lead.
+        "familyName": "A String", # Last name of lead source.
+        "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
+          "units": "A String", # The whole units of the amount.
+              # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+          "nanos": 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+          "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+        },
+        "comments": "A String", # Comments lead source gave.
+        "email": "A String", # Email address of lead source.
+        "websiteUrl": "A String", # Website URL of lead source.
+        "state": "A String", # The lead's state in relation to the company.
+        "phoneNumber": "A String", # Phone number of lead source.
+        "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+          "A String",
+        ],
+        "id": "A String", # ID of the lead.
+        "givenName": "A String", # First name of lead source.
+        "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+        "createTime": "A String", # Timestamp of when this lead was created.
+      },
+    ],
+    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
+      "debugInfo": { # Debug information about this request. # Debug information about this request.
+        "serverTraceInfo": "A String", # Server-side debug stack trace.
+        "serviceUrl": "A String", # URL of the service that handled this request.
+        "serverInfo": "A String", # Info about the server that serviced this request.
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/partners_v2.offers.history.html b/docs/dyn/partners_v2.offers.history.html
new file mode 100644
index 0000000..1d18f6e
--- /dev/null
+++ b/docs/dyn/partners_v2.offers.history.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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.offers.html">offers</a> . <a href="partners_v2.offers.history.html">history</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(orderBy=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None, entireCompany=None)</a></code></p>
+<p class="firstline">Lists the Historical Offers for the current user (or user's entire company)</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(orderBy=None, pageSize=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, pageToken=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None, entireCompany=None)</code>
+  <pre>Lists the Historical Offers for the current user (or user's entire company)
+
+Args:
+  orderBy: string, Comma-separated list of fields to order by, e.g.: "foo,bar,baz".
+Use "foo desc" to sort descending.
+List of valid field names is: name, offer_code, expiration_time, status,
+    last_modified_time, sender_name, creation_time, country_code,
+    offer_type.
+  pageSize: integer, Maximum number of rows to return per page.
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  pageToken: string, Token to retrieve a specific page.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+  entireCompany: boolean, if true, show history for the entire company.  Requires user to be admin.
+
+Returns:
+  An object of the form:
+
+    { # Response for ListOfferHistory.
+    "nextPageToken": "A String", # Supply this token in a ListOffersHistoryRequest to retrieve the next page.
+    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
+      "debugInfo": { # Debug information about this request. # Debug information about this request.
+        "serverTraceInfo": "A String", # Server-side debug stack trace.
+        "serviceUrl": "A String", # URL of the service that handled this request.
+        "serverInfo": "A String", # Info about the server that serviced this request.
+      },
+    },
+    "canShowEntireCompany": True or False, # True if the user has the option to show entire company history.
+    "showingEntireCompany": True or False, # True if this response is showing entire company history.
+    "offers": [ # Historical offers meeting request.
+      { # Historical information about a Google Partners Offer.
+        "offerCode": "A String", # Offer code.
+        "status": "A String", # Status of the offer.
+        "adwordsUrl": "A String", # Client's AdWords page URL.
+        "offerCountryCode": "A String", # Country Code for the offer country.
+        "creationTime": "A String", # Time offer was first created.
+        "clientId": "A String", # ID of client.
+        "clientEmail": "A String", # Email address for client.
+        "expirationTime": "A String", # Time this offer expires.
+        "offerType": "A String", # Type of offer.
+        "senderName": "A String", # Name (First + Last) of the partners user to whom the incentive is allocated.
+        "lastModifiedTime": "A String", # Time last action was taken.
+        "clientName": "A String", # Name of the client.
+      },
+    ],
+    "totalResults": 42, # Number of results across all pages.
+  }</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/partners_v2.offers.html b/docs/dyn/partners_v2.offers.html
new file mode 100644
index 0000000..56cab11
--- /dev/null
+++ b/docs/dyn/partners_v2.offers.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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.offers.html">offers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="partners_v2.offers.history.html">history()</a></code>
+</p>
+<p class="firstline">Returns the history Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#list">list(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Lists the Offers available for the current user</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Lists the Offers available for the current user
+
+Args:
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # Response for ListOffer.
+    "noOfferReason": "A String", # Reason why no Offers are available.
+    "availableOffers": [ # Available Offers to be distributed.
+      { # Available Offers to be distributed.
+        "available": 42, # The number of codes for this offer that are available for distribution.
+        "countryOfferInfos": [ # Offer info by country.
+          { # Offer info by country.
+            "spendXAmount": "A String", # (localized) Spend X amount for that country's offer.
+            "offerType": "A String", # Type of offer country is eligible for.
+            "offerCountryCode": "A String", # Country code for which offer codes may be requested.
+            "getYAmount": "A String", # (localized) Get Y amount for that country's offer.
+          },
+        ],
+        "qualifiedCustomer": [ # Customers who qualify for this offer.
+          { # Customers qualified for an offer.
+            "name": "A String", # Name of the customer.
+            "countryCode": "A String", # Country code of the customer.
+            "spendXAmount": "A String", # Formatted Spend X amount with currency code.
+            "adwordsUrl": "A String", # URL to the customer's AdWords page.
+            "creationTime": "A String", # Time the customer was created.
+            "externalCid": "A String", # External CID for the customer.
+            "eligibilityDaysLeft": 42, # Days the customer is still eligible.
+            "getYAmount": "A String", # Formatted Get Y amount with currency code.
+            "offerType": "A String", # Type of the offer
+          },
+        ],
+        "terms": "A String", # Terms of the offer.
+        "description": "A String", # Description of the offer.
+        "maxAccountAge": 42, # The maximum age of an account [in days] to be eligible.
+        "offerLevel": "A String", # Level of this offer.
+        "showSpecialOfferCopy": True or False, # Should special text be shown on the offers page.
+        "offerType": "A String", # Type of offer.
+        "id": "A String", # ID of this offer.
+        "qualifiedCustomersComplete": True or False, # Whether or not the list of qualified customers is definitely complete.
+        "name": "A String", # Name of the offer.
+      },
+    ],
+    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
+      "debugInfo": { # Debug information about this request. # Debug information about this request.
+        "serverTraceInfo": "A String", # Server-side debug stack trace.
+        "serviceUrl": "A String", # URL of the service that handled this request.
+        "serverInfo": "A String", # Info about the server that serviced this request.
+      },
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/partners_v2.userEvents.html b/docs/dyn/partners_v2.userEvents.html
index 1ac934a..f8670b5 100644
--- a/docs/dyn/partners_v2.userEvents.html
+++ b/docs/dyn/partners_v2.userEvents.html
@@ -86,24 +86,39 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request message for LogUserEvent.
-    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These are usually generated via Google Partner Search (the advertiser portal). # Advertiser lead information.
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+{ # Request message for
+      # LogUserEvent.
+    "lead": { # A lead resource that represents an advertiser contact for a `Company`. These # Advertiser lead information.
+        # are usually generated via Google Partner Search (the advertiser portal).
+      "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+      "languageCode": "A String", # Language code of the lead's language preference, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+      "type": "A String", # Type of lead.
       "familyName": "A String", # Last name of lead source.
       "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
-        "units": "A String", # The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
-        "nanos": 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        "units": "A String", # The whole units of the amount.
+            # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+        "nanos": 42, # Number of nano (10^-9) units of the amount.
+            # The value must be between -999,999,999 and +999,999,999 inclusive.
+            # If `units` is positive, `nanos` must be positive or zero.
+            # If `units` is zero, `nanos` can be positive, zero, or negative.
+            # If `units` is negative, `nanos` must be negative or zero.
+            # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
       "email": "A String", # Email address of lead source.
       "websiteUrl": "A String", # Website URL of lead source.
+      "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
-      "givenName": "A String", # First name of lead source.
-      "type": "A String", # Type of lead.
+      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+        "A String",
+      ],
       "id": "A String", # ID of the lead.
+      "givenName": "A String", # First name of lead source.
+      "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+      "createTime": "A String", # Timestamp of when this lead was created.
     },
     "url": "A String", # The URL where the event occurred.
     "eventDatas": [ # List of event data for the event.
@@ -114,16 +129,22 @@
         "key": "A String", # Data type.
       },
     ],
-    "eventAction": "A String", # The action that occurred.
     "eventCategory": "A String", # The category the action belongs to.
+    "eventAction": "A String", # The action that occurred.
     "requestMetadata": { # Common data that is in each API request. # Current request metadata.
       "locale": "A String", # Locale to use for the current request.
       "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
-        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
-        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+        "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
+        "trafficSourceId": "A String", # Identifier to indicate where the traffic comes from.
+            # An identifier has multiple letters created by a team which redirected the
+            # traffic to us.
       },
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only honored by whitelisted products. # Values to use instead of the user's respective defaults for the current request. These are only honored by whitelisted products.
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
         "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
         "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
       },
@@ -135,11 +156,15 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response message for LogUserEvent.
+    { # Response message for
+      # LogUserEvent.
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
         "serverTraceInfo": "A String", # Server-side debug stack trace.
diff --git a/docs/dyn/partners_v2.userStates.html b/docs/dyn/partners_v2.userStates.html
index dff44e6..3163914 100644
--- a/docs/dyn/partners_v2.userStates.html
+++ b/docs/dyn/partners_v2.userStates.html
@@ -84,18 +84,26 @@
 
 Args:
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
-  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
   requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   requestMetadata_locale: string, Locale to use for the current request.
   requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
-  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from. An identifier has multiple letters created by a team which redirected the traffic to us.
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
   requestMetadata_partnersSessionId: string, Google Partners session ID.
 
 Returns:
   An object of the form:
 
-    { # Response message for ListUserStates.
+    { # Response message for
+      # ListUserStates.
     "userStates": [ # User's states.
       "A String",
     ],
diff --git a/docs/dyn/partners_v2.users.html b/docs/dyn/partners_v2.users.html
new file mode 100644
index 0000000..fca659d
--- /dev/null
+++ b/docs/dyn/partners_v2.users.html
@@ -0,0 +1,648 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="partners_v2.html">Google Partners API</a> . <a href="partners_v2.users.html">users</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#createCompanyRelation">createCompanyRelation(userId=None, body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Creates a user's company relation. Affiliates the user to a company.</p>
+<p class="toc_element">
+  <code><a href="#deleteCompanyRelation">deleteCompanyRelation(userId=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Deletes a user's company relation. Unaffiliaites the user from a company.</p>
+<p class="toc_element">
+  <code><a href="#get">get(userId=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, userView=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Gets a user.</p>
+<p class="toc_element">
+  <code><a href="#updateProfile">updateProfile(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Updates a user's profile. A user can only update their own profile and</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="createCompanyRelation">createCompanyRelation(userId=None, body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Creates a user's company relation. Affiliates the user to a company.
+
+Args:
+  userId: string, The ID of the user. Can be set to <code>me</code> to mean
+the currently authenticated user. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A CompanyRelation resource representing information about a user's
+      # affiliation and standing with a company in Partners.
+    "managerAccount": "A String", # The AdWords manager account # associated this company.
+    "website": "A String", # The website URL for this company.
+    "name": "A String", # The name (in the company's primary language) for the company.
+    "companyId": "A String", # The ID of the company. There may be no id if this is a
+        # pending company.5
+    "isPending": True or False, # The flag that indicates if the company is pending verification.
+    "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+    "creationTime": "A String", # The timestamp of when affiliation was requested.
+        # @OutputOnly
+    "companyAdmin": True or False, # Indicates if the user is an admin for this company.
+    "badgeTier": "A String", # Whether the company is a Partner.
+    "state": "A String", # The state of relationship, in terms of approvals.
+    "phoneNumber": "A String", # The phone number for the company's primary address.
+    "address": "A String", # The primary address for this company.
+    "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+        # @OutputOnly
+    "segment": [ # The segment the company is classified as.
+      "A String",
+    ],
+    "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+      { # Agency specialization status
+        "badgeSpecialization": "A String", # The specialization this status is for.
+        "badgeSpecializationState": "A String", # State of agency specialization.
+      },
+    ],
+  }
+
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A CompanyRelation resource representing information about a user's
+        # affiliation and standing with a company in Partners.
+      "managerAccount": "A String", # The AdWords manager account # associated this company.
+      "website": "A String", # The website URL for this company.
+      "name": "A String", # The name (in the company's primary language) for the company.
+      "companyId": "A String", # The ID of the company. There may be no id if this is a
+          # pending company.5
+      "isPending": True or False, # The flag that indicates if the company is pending verification.
+      "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+      "creationTime": "A String", # The timestamp of when affiliation was requested.
+          # @OutputOnly
+      "companyAdmin": True or False, # Indicates if the user is an admin for this company.
+      "badgeTier": "A String", # Whether the company is a Partner.
+      "state": "A String", # The state of relationship, in terms of approvals.
+      "phoneNumber": "A String", # The phone number for the company's primary address.
+      "address": "A String", # The primary address for this company.
+      "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+          # @OutputOnly
+      "segment": [ # The segment the company is classified as.
+        "A String",
+      ],
+      "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+        { # Agency specialization status
+          "badgeSpecialization": "A String", # The specialization this status is for.
+          "badgeSpecializationState": "A String", # State of agency specialization.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deleteCompanyRelation">deleteCompanyRelation(userId=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Deletes a user's company relation. Unaffiliaites the user from a company.
+
+Args:
+  userId: string, The ID of the user. Can be set to <code>me</code> to mean
+the currently authenticated user. (required)
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(userId=None, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, userView=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Gets a user.
+
+Args:
+  userId: string, Identifier of the user. Can be set to <code>me</code> to mean the currently
+authenticated user. (required)
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  userView: string, Specifies what parts of the user information to return.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A resource representing a user of the Partners platform.
+    "companyVerificationEmail": "A String", # The email address used by the user used for company verification.
+        # @OutputOnly
+    "profile": { # The profile information of a Partners user. # The profile information of a Partners user, contains all the directly
+        # editable user information.
+        "industries": [ # A list of ids representing which industries the user selected.
+          "A String",
+        ],
+        "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
+        "adwordsManagerAccount": "A String", # If the user has edit access to multiple accounts, the user can choose the
+            # preferred account and it is used when a personal account is needed. Can
+            # be empty.
+        "languages": [ # The list of languages this user understands.
+          "A String",
+        ],
+        "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+          "A String",
+        ],
+        "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
+          "specialOffers": True or False, # An opt-in about receiving email regarding new features and products.
+          "marketComm": True or False, # An opt-in about receiving email from Partners marketing teams. Includes
+              # member-only events and special promotional offers for Google products.
+          "phoneContact": True or False, # An opt-in to allow recieivng phone calls about their Partners account.
+          "physicalMail": True or False, # An opt-in to receive special promotional gifts and material in the mail.
+          "performanceSuggestions": True or False, # An opt-in about receiving email with customized AdWords campaign management
+              # tips.
+        },
+        "familyName": "A String", # The user's family name.
+        "channels": [ # A list of ids representing which channels the user selected they were in.
+          "A String",
+        ],
+        "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+        "address": { # A location with address and geographic coordinates. May optionally contain a # The user's mailing address, contains multiple fields.
+            # detailed (multi-field) version of the address.
+          "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+          "addressLine": [ # The following address lines represent the most specific part of any
+              # address.
+            "A String",
+          ],
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
+          "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+              # classification code for sorting mail.
+          "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+              # of doubles representing degrees latitude and degrees longitude. Unless
+              # specified otherwise, this must conform to the
+              # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+              # standard</a>. Values must be within normalized ranges.
+              #
+              # Example of normalization code in Python:
+              #
+              #     def NormalizeLongitude(longitude):
+              #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+              #       q, r = divmod(longitude, 360.0)
+              #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+              #         return r - 360.0
+              #       return r
+              #
+              #     def NormalizeLatLng(latitude, longitude):
+              #       """Wraps decimal degrees latitude and longitude to
+              #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+              #       r = latitude % 360.0
+              #       if r <= 90.0:
+              #         return r, NormalizeLongitude(longitude)
+              #       elif r >= 270.0:
+              #         return r - 360, NormalizeLongitude(longitude)
+              #       else:
+              #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+              #
+              #     assert 180.0 == NormalizeLongitude(180.0)
+              #     assert -180.0 == NormalizeLongitude(-180.0)
+              #     assert -179.0 == NormalizeLongitude(181.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+              #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+              #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+              #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+              #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              #
+              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+              # as if it were annotated as ST_LOCATION.
+            "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+            "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+          },
+          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+          "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+          "address": "A String", # The single string version of the address.
+          "postalCode": "A String", # Values are frequently alphanumeric.
+        },
+        "phoneNumber": "A String", # The user's phone number.
+        "givenName": "A String", # The user's given name.
+        "markets": [ # A list of ids representing which markets the user was interested in.
+          "A String",
+        ],
+        "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
+      },
+    "certificationStatus": [ # The list of achieved certifications. These are calculated based on exam
+        # results and other requirements.
+        # @OutputOnly
+      { # A user's information on a specific certification.
+        "warning": True or False, # Whether this certification is in the state of warning.
+        "certificationType": "A String", # The type of certification, the area of expertise.
+        "lastAchieved": "A String", # The date the user last achieved certification.
+        "expiration": "A String", # Date this certification is due to expire.
+        "achieved": True or False, # Whether this certification has been achieved.
+      },
+    ],
+    "availableAdwordsManagerAccounts": [ # This is the list of AdWords Manager Accounts the user has edit access to.
+        # If the user has edit access to multiple accounts, the user can choose the
+        # preferred account and we use this when a personal account is needed. Can
+        # be empty meaning the user has access to no accounts.
+        # @OutputOnly
+      { # Information about a particular AdWords Manager Account.
+          # Read more at https://support.google.com/adwords/answer/6139186
+        "customerName": "A String", # Name of the customer this account represents.
+        "id": "A String", # The AdWords Manager Account id.
+      },
+    ],
+    "company": { # A CompanyRelation resource representing information about a user's # The company that the user is associated with.
+        # If not present, the user is not associated with any company.
+          # affiliation and standing with a company in Partners.
+        "managerAccount": "A String", # The AdWords manager account # associated this company.
+        "website": "A String", # The website URL for this company.
+        "name": "A String", # The name (in the company's primary language) for the company.
+        "companyId": "A String", # The ID of the company. There may be no id if this is a
+            # pending company.5
+        "isPending": True or False, # The flag that indicates if the company is pending verification.
+        "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+        "creationTime": "A String", # The timestamp of when affiliation was requested.
+            # @OutputOnly
+        "companyAdmin": True or False, # Indicates if the user is an admin for this company.
+        "badgeTier": "A String", # Whether the company is a Partner.
+        "state": "A String", # The state of relationship, in terms of approvals.
+        "phoneNumber": "A String", # The phone number for the company's primary address.
+        "address": "A String", # The primary address for this company.
+        "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+            # @OutputOnly
+        "segment": [ # The segment the company is classified as.
+          "A String",
+        ],
+        "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+          { # Agency specialization status
+            "badgeSpecialization": "A String", # The specialization this status is for.
+            "badgeSpecializationState": "A String", # State of agency specialization.
+          },
+        ],
+      },
+    "lastAccessTime": "A String", # The most recent time the user interacted with the Partners site.
+        # @OutputOnly
+    "primaryEmails": [ # The list of emails the user has access to/can select as primary.
+        # @OutputOnly
+      "A String",
+    ],
+    "id": "A String", # The ID of the user.
+    "publicProfile": { # Basic information from a public profile. # Information about a user's external public profile outside Google Partners.
+      "url": "A String", # The URL of the public profile.
+      "profileImage": "A String", # The URL to the main profile image of the public profile.
+      "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+      "displayName": "A String", # The display name of the public profile.
+      "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+    },
+    "examStatus": [ # The list of exams the user ever taken. For each type of exam, only one
+        # entry is listed.
+      { # A user's information on a specific exam.
+        "examType": "A String", # The type of the exam.
+        "warning": True or False, # Whether this exam is in the state of warning.
+        "expiration": "A String", # Date this exam is due to expire.
+        "passed": True or False, # Whether this exam has been passed and not expired.
+        "taken": "A String", # The date the user last taken this exam.
+        "lastPassed": "A String", # The date the user last passed this exam.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateProfile">updateProfile(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Updates a user's profile. A user can only update their own profile and
+should only be called within the context of a logged in user.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The profile information of a Partners user.
+    "industries": [ # A list of ids representing which industries the user selected.
+      "A String",
+    ],
+    "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
+    "adwordsManagerAccount": "A String", # If the user has edit access to multiple accounts, the user can choose the
+        # preferred account and it is used when a personal account is needed. Can
+        # be empty.
+    "languages": [ # The list of languages this user understands.
+      "A String",
+    ],
+    "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+      "A String",
+    ],
+    "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
+      "specialOffers": True or False, # An opt-in about receiving email regarding new features and products.
+      "marketComm": True or False, # An opt-in about receiving email from Partners marketing teams. Includes
+          # member-only events and special promotional offers for Google products.
+      "phoneContact": True or False, # An opt-in to allow recieivng phone calls about their Partners account.
+      "physicalMail": True or False, # An opt-in to receive special promotional gifts and material in the mail.
+      "performanceSuggestions": True or False, # An opt-in about receiving email with customized AdWords campaign management
+          # tips.
+    },
+    "familyName": "A String", # The user's family name.
+    "channels": [ # A list of ids representing which channels the user selected they were in.
+      "A String",
+    ],
+    "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+    "address": { # A location with address and geographic coordinates. May optionally contain a # The user's mailing address, contains multiple fields.
+        # detailed (multi-field) version of the address.
+      "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+      "addressLine": [ # The following address lines represent the most specific part of any
+          # address.
+        "A String",
+      ],
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
+      "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+          # classification code for sorting mail.
+      "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+          # of doubles representing degrees latitude and degrees longitude. Unless
+          # specified otherwise, this must conform to the
+          # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+          # standard</a>. Values must be within normalized ranges.
+          #
+          # Example of normalization code in Python:
+          #
+          #     def NormalizeLongitude(longitude):
+          #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+          #       q, r = divmod(longitude, 360.0)
+          #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+          #         return r - 360.0
+          #       return r
+          #
+          #     def NormalizeLatLng(latitude, longitude):
+          #       """Wraps decimal degrees latitude and longitude to
+          #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+          #       r = latitude % 360.0
+          #       if r <= 90.0:
+          #         return r, NormalizeLongitude(longitude)
+          #       elif r >= 270.0:
+          #         return r - 360, NormalizeLongitude(longitude)
+          #       else:
+          #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+          #
+          #     assert 180.0 == NormalizeLongitude(180.0)
+          #     assert -180.0 == NormalizeLongitude(-180.0)
+          #     assert -179.0 == NormalizeLongitude(181.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+          #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+          #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+          #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+          #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+          #
+          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+          # as if it were annotated as ST_LOCATION.
+        "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+        "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+      },
+      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+      "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+      "address": "A String", # The single string version of the address.
+      "postalCode": "A String", # Values are frequently alphanumeric.
+    },
+    "phoneNumber": "A String", # The user's phone number.
+    "givenName": "A String", # The user's given name.
+    "markets": [ # A list of ids representing which markets the user was interested in.
+      "A String",
+    ],
+    "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
+  }
+
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # The profile information of a Partners user.
+      "industries": [ # A list of ids representing which industries the user selected.
+        "A String",
+      ],
+      "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
+      "adwordsManagerAccount": "A String", # If the user has edit access to multiple accounts, the user can choose the
+          # preferred account and it is used when a personal account is needed. Can
+          # be empty.
+      "languages": [ # The list of languages this user understands.
+        "A String",
+      ],
+      "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+        "A String",
+      ],
+      "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
+        "specialOffers": True or False, # An opt-in about receiving email regarding new features and products.
+        "marketComm": True or False, # An opt-in about receiving email from Partners marketing teams. Includes
+            # member-only events and special promotional offers for Google products.
+        "phoneContact": True or False, # An opt-in to allow recieivng phone calls about their Partners account.
+        "physicalMail": True or False, # An opt-in to receive special promotional gifts and material in the mail.
+        "performanceSuggestions": True or False, # An opt-in about receiving email with customized AdWords campaign management
+            # tips.
+      },
+      "familyName": "A String", # The user's family name.
+      "channels": [ # A list of ids representing which channels the user selected they were in.
+        "A String",
+      ],
+      "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+      "address": { # A location with address and geographic coordinates. May optionally contain a # The user's mailing address, contains multiple fields.
+          # detailed (multi-field) version of the address.
+        "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+        "addressLine": [ # The following address lines represent the most specific part of any
+            # address.
+          "A String",
+        ],
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
+        "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+            # classification code for sorting mail.
+        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+            # of doubles representing degrees latitude and degrees longitude. Unless
+            # specified otherwise, this must conform to the
+            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+            # standard</a>. Values must be within normalized ranges.
+            #
+            # Example of normalization code in Python:
+            #
+            #     def NormalizeLongitude(longitude):
+            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+            #       q, r = divmod(longitude, 360.0)
+            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+            #         return r - 360.0
+            #       return r
+            #
+            #     def NormalizeLatLng(latitude, longitude):
+            #       """Wraps decimal degrees latitude and longitude to
+            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+            #       r = latitude % 360.0
+            #       if r <= 90.0:
+            #         return r, NormalizeLongitude(longitude)
+            #       elif r >= 270.0:
+            #         return r - 360, NormalizeLongitude(longitude)
+            #       else:
+            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+            #
+            #     assert 180.0 == NormalizeLongitude(180.0)
+            #     assert -180.0 == NormalizeLongitude(-180.0)
+            #     assert -179.0 == NormalizeLongitude(181.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+            #
+            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+            # as if it were annotated as ST_LOCATION.
+          "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+          "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+        },
+        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+        "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+        "address": "A String", # The single string version of the address.
+        "postalCode": "A String", # Values are frequently alphanumeric.
+      },
+      "phoneNumber": "A String", # The user's phone number.
+      "givenName": "A String", # The user's given name.
+      "markets": [ # A list of ids representing which markets the user was interested in.
+        "A String",
+      ],
+      "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/partners_v2.v2.html b/docs/dyn/partners_v2.v2.html
new file mode 100644
index 0000000..36130c6
--- /dev/null
+++ b/docs/dyn/partners_v2.v2.html
@@ -0,0 +1,710 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="partners_v2.html">Google Partners API</a> . <a href="partners_v2.v2.html">v2</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getPartnersstatus">getPartnersstatus(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Gets Partners Status of the logged in user's agency.</p>
+<p class="toc_element">
+  <code><a href="#updateCompanies">updateCompanies(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, updateMask=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Update company.</p>
+<p class="toc_element">
+  <code><a href="#updateLeads">updateLeads(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, updateMask=None, requestMetadata_partnersSessionId=None)</a></code></p>
+<p class="firstline">Updates the specified lead.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getPartnersstatus">getPartnersstatus(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Gets Partners Status of the logged in user's agency.
+Should only be called if the logged in user is the admin of the agency.
+
+Args:
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # Response message for
+      # GetPartnersStatus.
+    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
+      "debugInfo": { # Debug information about this request. # Debug information about this request.
+        "serverTraceInfo": "A String", # Server-side debug stack trace.
+        "serviceUrl": "A String", # URL of the service that handled this request.
+        "serverInfo": "A String", # Info about the server that serviced this request.
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateCompanies">updateCompanies(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, updateMask=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Update company.
+Should only be called within the context of an authorized logged in user.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A company resource in the Google Partners API. Once certified, it qualifies
+    # for being searched by advertisers.
+  "industries": [ # Industries the company can help with.
+    "A String",
+  ],
+  "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
+      # business.
+    "units": "A String", # The whole units of the amount.
+        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+    "nanos": 42, # Number of nano (10^-9) units of the amount.
+        # The value must be between -999,999,999 and +999,999,999 inclusive.
+        # If `units` is positive, `nanos` must be positive or zero.
+        # If `units` is zero, `nanos` can be positive, zero, or negative.
+        # If `units` is negative, `nanos` must be negative or zero.
+        # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+  },
+  "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
+      # auto-approved for associating with this company.
+    "A String",
+  ],
+  "name": "A String", # The name of the company.
+  "badgeTier": "A String", # Partner badge tier
+  "localizedInfos": [ # The list of localized info for the company.
+    { # The localized company information.
+      "countryCodes": [ # List of country codes for the localized company info.
+        "A String",
+      ],
+      "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+      "displayName": "A String", # Localized display name.
+      "languageCode": "A String", # Language code of the localized company info, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+    },
+  ],
+  "locations": [ # The list of all company locations.
+      # If set, must include the
+      # primary_location
+      # in the list.
+    { # A location with address and geographic coordinates. May optionally contain a
+        # detailed (multi-field) version of the address.
+      "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+      "addressLine": [ # The following address lines represent the most specific part of any
+          # address.
+        "A String",
+      ],
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
+      "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+          # classification code for sorting mail.
+      "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+          # of doubles representing degrees latitude and degrees longitude. Unless
+          # specified otherwise, this must conform to the
+          # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+          # standard</a>. Values must be within normalized ranges.
+          #
+          # Example of normalization code in Python:
+          #
+          #     def NormalizeLongitude(longitude):
+          #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+          #       q, r = divmod(longitude, 360.0)
+          #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+          #         return r - 360.0
+          #       return r
+          #
+          #     def NormalizeLatLng(latitude, longitude):
+          #       """Wraps decimal degrees latitude and longitude to
+          #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+          #       r = latitude % 360.0
+          #       if r <= 90.0:
+          #         return r, NormalizeLongitude(longitude)
+          #       elif r >= 270.0:
+          #         return r - 360, NormalizeLongitude(longitude)
+          #       else:
+          #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+          #
+          #     assert 180.0 == NormalizeLongitude(180.0)
+          #     assert -180.0 == NormalizeLongitude(-180.0)
+          #     assert -179.0 == NormalizeLongitude(181.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+          #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+          #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+          #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+          #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+          #
+          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+          # as if it were annotated as ST_LOCATION.
+        "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+        "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+      },
+      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+      "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+      "address": "A String", # The single string version of the address.
+      "postalCode": "A String", # Values are frequently alphanumeric.
+    },
+  ],
+  "websiteUrl": "A String", # URL of the company's website.
+  "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+      # detailed (multi-field) version of the address.
+    "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+    "addressLine": [ # The following address lines represent the most specific part of any
+        # address.
+      "A String",
+    ],
+    "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+        # neighborhoods or boroughs in other locations.
+    "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+        # classification code for sorting mail.
+    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+        # of doubles representing degrees latitude and degrees longitude. Unless
+        # specified otherwise, this must conform to the
+        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+        # standard</a>. Values must be within normalized ranges.
+        #
+        # Example of normalization code in Python:
+        #
+        #     def NormalizeLongitude(longitude):
+        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+        #       q, r = divmod(longitude, 360.0)
+        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+        #         return r - 360.0
+        #       return r
+        #
+        #     def NormalizeLatLng(latitude, longitude):
+        #       """Wraps decimal degrees latitude and longitude to
+        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+        #       r = latitude % 360.0
+        #       if r <= 90.0:
+        #         return r, NormalizeLongitude(longitude)
+        #       elif r >= 270.0:
+        #         return r - 360, NormalizeLongitude(longitude)
+        #       else:
+        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+        #
+        #     assert 180.0 == NormalizeLongitude(180.0)
+        #     assert -180.0 == NormalizeLongitude(-180.0)
+        #     assert -179.0 == NormalizeLongitude(181.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+        #
+        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+        # as if it were annotated as ST_LOCATION.
+      "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+      "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+    },
+    "locality": "A String", # Generally refers to the city/town portion of an address.
+    "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+    "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+    "address": "A String", # The single string version of the address.
+    "postalCode": "A String", # Values are frequently alphanumeric.
+  },
+  "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+      # These are stored as full URLs as entered by the user, but only the TLD will
+      # be used for the actual verification.
+    "A String",
+  ],
+  "profileStatus": "A String", # The public viewability status of the company's profile.
+  "ranks": [ # Information related to the ranking of the company within the list of
+      # companies.
+    { # Information related to ranking of results.
+      "type": "A String", # The type of rank.
+      "value": 3.14, # The numerical value of the rank.
+    },
+  ],
+  "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
+  "services": [ # Services the company can help with.
+    "A String",
+  ],
+  "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
+    { # Google Partners certification status.
+      "type": "A String", # The type of the certification.
+      "examStatuses": [ # List of certification exam statuses.
+        { # Status for a Google Partners certification exam.
+          "numberUsersPass": 42, # The number of people who have passed the certification exam.
+          "type": "A String", # The type of certification exam.
+        },
+      ],
+      "isCertified": True or False, # Whether certification is passing.
+      "userCount": 42, # Number of people who are certified,
+    },
+  ],
+  "companyTypes": [ # Company type labels listed on the company's profile.
+    "A String",
+  ],
+  "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+    "url": "A String", # The URL of the public profile.
+    "profileImage": "A String", # The URL to the main profile image of the public profile.
+    "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+    "displayName": "A String", # The display name of the public profile.
+    "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+  },
+  "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
+      # converted to the requested currency code.
+    "units": "A String", # The whole units of the amount.
+        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+    "nanos": 42, # Number of nano (10^-9) units of the amount.
+        # The value must be between -999,999,999 and +999,999,999 inclusive.
+        # If `units` is positive, `nanos` must be positive or zero.
+        # If `units` is zero, `nanos` can be positive, zero, or negative.
+        # If `units` is negative, `nanos` must be negative or zero.
+        # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+  },
+  "id": "A String", # The ID of the company.
+  "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
+      # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+      # (IETF BCP 47, "Tags for Identifying Languages").
+  "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+    { # Agency specialization status
+      "badgeSpecialization": "A String", # The specialization this status is for.
+      "badgeSpecializationState": "A String", # State of agency specialization.
+    },
+  ],
+}
+
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  updateMask: string, Standard field mask for the set of fields to be updated.
+Required with at least 1 value in FieldMask's paths.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A company resource in the Google Partners API. Once certified, it qualifies
+      # for being searched by advertisers.
+    "industries": [ # Industries the company can help with.
+      "A String",
+    ],
+    "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
+        # business.
+      "units": "A String", # The whole units of the amount.
+          # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+      "nanos": 42, # Number of nano (10^-9) units of the amount.
+          # The value must be between -999,999,999 and +999,999,999 inclusive.
+          # If `units` is positive, `nanos` must be positive or zero.
+          # If `units` is zero, `nanos` can be positive, zero, or negative.
+          # If `units` is negative, `nanos` must be negative or zero.
+          # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+      "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+    },
+    "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
+        # auto-approved for associating with this company.
+      "A String",
+    ],
+    "name": "A String", # The name of the company.
+    "badgeTier": "A String", # Partner badge tier
+    "localizedInfos": [ # The list of localized info for the company.
+      { # The localized company information.
+        "countryCodes": [ # List of country codes for the localized company info.
+          "A String",
+        ],
+        "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+        "displayName": "A String", # Localized display name.
+        "languageCode": "A String", # Language code of the localized company info, as defined by
+            # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+            # (IETF BCP 47, "Tags for Identifying Languages").
+      },
+    ],
+    "locations": [ # The list of all company locations.
+        # If set, must include the
+        # primary_location
+        # in the list.
+      { # A location with address and geographic coordinates. May optionally contain a
+          # detailed (multi-field) version of the address.
+        "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+        "addressLine": [ # The following address lines represent the most specific part of any
+            # address.
+          "A String",
+        ],
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
+        "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+            # classification code for sorting mail.
+        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+            # of doubles representing degrees latitude and degrees longitude. Unless
+            # specified otherwise, this must conform to the
+            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+            # standard</a>. Values must be within normalized ranges.
+            #
+            # Example of normalization code in Python:
+            #
+            #     def NormalizeLongitude(longitude):
+            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+            #       q, r = divmod(longitude, 360.0)
+            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+            #         return r - 360.0
+            #       return r
+            #
+            #     def NormalizeLatLng(latitude, longitude):
+            #       """Wraps decimal degrees latitude and longitude to
+            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+            #       r = latitude % 360.0
+            #       if r <= 90.0:
+            #         return r, NormalizeLongitude(longitude)
+            #       elif r >= 270.0:
+            #         return r - 360, NormalizeLongitude(longitude)
+            #       else:
+            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+            #
+            #     assert 180.0 == NormalizeLongitude(180.0)
+            #     assert -180.0 == NormalizeLongitude(-180.0)
+            #     assert -179.0 == NormalizeLongitude(181.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+            #
+            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+            # as if it were annotated as ST_LOCATION.
+          "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+          "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+        },
+        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+        "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+        "address": "A String", # The single string version of the address.
+        "postalCode": "A String", # Values are frequently alphanumeric.
+      },
+    ],
+    "websiteUrl": "A String", # URL of the company's website.
+    "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+        # detailed (multi-field) version of the address.
+      "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+      "addressLine": [ # The following address lines represent the most specific part of any
+          # address.
+        "A String",
+      ],
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
+      "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+          # classification code for sorting mail.
+      "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+          # of doubles representing degrees latitude and degrees longitude. Unless
+          # specified otherwise, this must conform to the
+          # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+          # standard</a>. Values must be within normalized ranges.
+          #
+          # Example of normalization code in Python:
+          #
+          #     def NormalizeLongitude(longitude):
+          #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+          #       q, r = divmod(longitude, 360.0)
+          #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+          #         return r - 360.0
+          #       return r
+          #
+          #     def NormalizeLatLng(latitude, longitude):
+          #       """Wraps decimal degrees latitude and longitude to
+          #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+          #       r = latitude % 360.0
+          #       if r <= 90.0:
+          #         return r, NormalizeLongitude(longitude)
+          #       elif r >= 270.0:
+          #         return r - 360, NormalizeLongitude(longitude)
+          #       else:
+          #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+          #
+          #     assert 180.0 == NormalizeLongitude(180.0)
+          #     assert -180.0 == NormalizeLongitude(-180.0)
+          #     assert -179.0 == NormalizeLongitude(181.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+          #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+          #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+          #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+          #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+          #
+          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+          # as if it were annotated as ST_LOCATION.
+        "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+        "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+      },
+      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+      "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+      "address": "A String", # The single string version of the address.
+      "postalCode": "A String", # Values are frequently alphanumeric.
+    },
+    "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+        # These are stored as full URLs as entered by the user, but only the TLD will
+        # be used for the actual verification.
+      "A String",
+    ],
+    "profileStatus": "A String", # The public viewability status of the company's profile.
+    "ranks": [ # Information related to the ranking of the company within the list of
+        # companies.
+      { # Information related to ranking of results.
+        "type": "A String", # The type of rank.
+        "value": 3.14, # The numerical value of the rank.
+      },
+    ],
+    "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
+    "services": [ # Services the company can help with.
+      "A String",
+    ],
+    "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
+      { # Google Partners certification status.
+        "type": "A String", # The type of the certification.
+        "examStatuses": [ # List of certification exam statuses.
+          { # Status for a Google Partners certification exam.
+            "numberUsersPass": 42, # The number of people who have passed the certification exam.
+            "type": "A String", # The type of certification exam.
+          },
+        ],
+        "isCertified": True or False, # Whether certification is passing.
+        "userCount": 42, # Number of people who are certified,
+      },
+    ],
+    "companyTypes": [ # Company type labels listed on the company's profile.
+      "A String",
+    ],
+    "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+      "url": "A String", # The URL of the public profile.
+      "profileImage": "A String", # The URL to the main profile image of the public profile.
+      "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+      "displayName": "A String", # The display name of the public profile.
+      "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+    },
+    "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
+        # converted to the requested currency code.
+      "units": "A String", # The whole units of the amount.
+          # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+      "nanos": 42, # Number of nano (10^-9) units of the amount.
+          # The value must be between -999,999,999 and +999,999,999 inclusive.
+          # If `units` is positive, `nanos` must be positive or zero.
+          # If `units` is zero, `nanos` can be positive, zero, or negative.
+          # If `units` is negative, `nanos` must be negative or zero.
+          # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+      "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+    },
+    "id": "A String", # The ID of the company.
+    "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
+        # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+        # (IETF BCP 47, "Tags for Identifying Languages").
+    "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+      { # Agency specialization status
+        "badgeSpecialization": "A String", # The specialization this status is for.
+        "badgeSpecializationState": "A String", # State of agency specialization.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateLeads">updateLeads(body, requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, updateMask=None, requestMetadata_partnersSessionId=None)</code>
+  <pre>Updates the specified lead.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A lead resource that represents an advertiser contact for a `Company`. These
+    # are usually generated via Google Partner Search (the advertiser portal).
+  "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+  "languageCode": "A String", # Language code of the lead's language preference, as defined by
+      # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+      # (IETF BCP 47, "Tags for Identifying Languages").
+  "type": "A String", # Type of lead.
+  "familyName": "A String", # Last name of lead source.
+  "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
+    "units": "A String", # The whole units of the amount.
+        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+    "nanos": 42, # Number of nano (10^-9) units of the amount.
+        # The value must be between -999,999,999 and +999,999,999 inclusive.
+        # If `units` is positive, `nanos` must be positive or zero.
+        # If `units` is zero, `nanos` can be positive, zero, or negative.
+        # If `units` is negative, `nanos` must be negative or zero.
+        # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+  },
+  "comments": "A String", # Comments lead source gave.
+  "email": "A String", # Email address of lead source.
+  "websiteUrl": "A String", # Website URL of lead source.
+  "state": "A String", # The lead's state in relation to the company.
+  "phoneNumber": "A String", # Phone number of lead source.
+  "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+    "A String",
+  ],
+  "id": "A String", # ID of the lead.
+  "givenName": "A String", # First name of lead source.
+  "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+  "createTime": "A String", # Timestamp of when this lead was created.
+}
+
+  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
+  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMetadata_locale: string, Locale to use for the current request.
+  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
+  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
+An identifier has multiple letters created by a team which redirected the
+traffic to us.
+  updateMask: string, Standard field mask for the set of fields to be updated.
+Required with at least 1 value in FieldMask's paths.
+Only `state` and `adwords_customer_id` are currently supported.
+  requestMetadata_partnersSessionId: string, Google Partners session ID.
+
+Returns:
+  An object of the form:
+
+    { # A lead resource that represents an advertiser contact for a `Company`. These
+      # are usually generated via Google Partner Search (the advertiser portal).
+    "marketingOptIn": True or False, # Whether or not the lead signed up for marketing emails
+    "languageCode": "A String", # Language code of the lead's language preference, as defined by
+        # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+        # (IETF BCP 47, "Tags for Identifying Languages").
+    "type": "A String", # Type of lead.
+    "familyName": "A String", # Last name of lead source.
+    "minMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget lead source is willing to spend.
+      "units": "A String", # The whole units of the amount.
+          # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+      "nanos": 42, # Number of nano (10^-9) units of the amount.
+          # The value must be between -999,999,999 and +999,999,999 inclusive.
+          # If `units` is positive, `nanos` must be positive or zero.
+          # If `units` is zero, `nanos` can be positive, zero, or negative.
+          # If `units` is negative, `nanos` must be negative or zero.
+          # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+      "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+    },
+    "comments": "A String", # Comments lead source gave.
+    "email": "A String", # Email address of lead source.
+    "websiteUrl": "A String", # Website URL of lead source.
+    "state": "A String", # The lead's state in relation to the company.
+    "phoneNumber": "A String", # Phone number of lead source.
+    "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
+      "A String",
+    ],
+    "id": "A String", # ID of the lead.
+    "givenName": "A String", # First name of lead source.
+    "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
+    "createTime": "A String", # Timestamp of when this lead was created.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/people_v1.people.connections.html b/docs/dyn/people_v1.people.connections.html
index 80d8d81..8801b0b 100644
--- a/docs/dyn/people_v1.people.connections.html
+++ b/docs/dyn/people_v1.people.connections.html
@@ -75,67 +75,113 @@
 <h1><a href="people_v1.html">Google People API</a> . <a href="people_v1.people.html">people</a> . <a href="people_v1.people.connections.html">connections</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(resourceName, pageSize=None, x__xgafv=None, pageToken=None, sortOrder=None, syncToken=None, requestMask_includeField=None)</a></code></p>
-<p class="firstline">Provides a list of the authenticated user's contacts merged with any linked profiles.</p>
+  <code><a href="#list">list(resourceName, pageSize=None, x__xgafv=None, pageToken=None, sortOrder=None, requestSyncToken=None, syncToken=None, requestMask_includeField=None)</a></code></p>
+<p class="firstline">Provides a list of the authenticated user's contacts merged with any</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(resourceName, pageSize=None, x__xgafv=None, pageToken=None, sortOrder=None, syncToken=None, requestMask_includeField=None)</code>
-  <pre>Provides a list of the authenticated user's contacts merged with any linked profiles.
+    <code class="details" id="list">list(resourceName, pageSize=None, x__xgafv=None, pageToken=None, sortOrder=None, requestSyncToken=None, syncToken=None, requestMask_includeField=None)</code>
+  <pre>Provides a list of the authenticated user's contacts merged with any
+linked profiles.
 
 Args:
   resourceName: string, The resource name to return connections for. Only `people/me` is valid. (required)
-  pageSize: integer, The number of connections to include in the response. Valid values are between 1 and 500, inclusive. Defaults to 100.
+  pageSize: integer, The number of connections to include in the response. Valid values are
+between 1 and 500, inclusive. Defaults to 100.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   pageToken: string, The token of the page to be returned.
-  sortOrder: string, The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`.
-  syncToken: string, A sync token, returned by a previous call to `people.connections.list`. Only resources changed since the sync token was created are returned.
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting this field will include all fields. Each path should start with `person.`: for example, `person.names` or `person.photos`.
+  sortOrder: string, The order in which the connections should be sorted. Defaults to
+`LAST_MODIFIED_ASCENDING`.
+  requestSyncToken: boolean, Whether the response should include a sync token, which can be used to get
+all changes since the last request.
+  syncToken: string, A sync token, returned by a previous call to `people.connections.list`.
+Only resources changed since the sync token was created will be returned.
+  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
+this field will include all fields except for connections.list requests,
+which have a default mask that includes common fields like metadata, name,
+photo, and profile url.
+Each path should start with `person.`: for example, `person.names` or
+`person.photos`.
 
 Returns:
   An object of the form:
 
     {
+    "nextPageToken": "A String", # The token that can be used to retrieve the next page of results.
     "connections": [ # The list of people that the requestor is connected to.
-      { # Information about a person merged from various data sources such as the authenticated user's contacts and profile data. Fields other than IDs, metadata, and group memberships are user-edited. Most fields can have multiple items. The items in a field have no guaranteed order, but each non-empty field is guaranteed to have exactly one field with `metadata.primary` set to true.
-        "phoneNumbers": [ # The person's phone numbers.
-          { # A person's phone number.
-            "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number.
-            "formattedType": "A String", # The read-only type of the phone number translated and formatted in the viewer's account locale or the the `Accept-Language` HTTP header locale.
-            "type": "A String", # The type of the phone number. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other`
-            "value": "A String", # The phone number.
-            "metadata": { # Metadata about a field. # Metadata about the phone number.
+      { # Information about a person merged from various data sources such as the
+          # authenticated user's contacts and profile data. Fields other than IDs,
+          # metadata, and group memberships are user-edited.
+          #
+          # Most fields can have multiple items. The items in a field have no guaranteed
+          # order, but each non-empty field is guaranteed to have exactly one field with
+          # `metadata.primary` set to true.
+          # NEXT_ID: 31
+        "braggingRights": [ # The person's bragging rights.
+          { # A person's bragging rights.
+            "value": "A String", # The bragging rights; for example, `climbed mount everest`.
+            "metadata": { # Metadata about a field. # Metadata about the bragging rights.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "addresses": [ # The person's street addresses.
-          { # A person's physical address. May be a P.O. box or street address. All fields are optional.
-            "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country code of the address.
+          { # A person's physical address. May be a P.O. box or street address. All fields
+              # are optional.
+            "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's
+                # account locale or the `Accept-Language` HTTP header locale.
+            "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country
+                # code of the address.
             "city": "A String", # The city of the address.
-            "formattedValue": "A String", # The read-only value of the address formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+            "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it
+                # will be automatically constructed from structured values.
             "region": "A String", # The region of the address; for example, the state or province.
             "poBox": "A String", # The P.O. box of the address.
             "streetAddress": "A String", # The street address.
             "country": "A String", # The country of the address.
             "postalCode": "A String", # The postal code of the address.
             "extendedAddress": "A String", # The extended address of the address; for example, the apartment number.
-            "type": "A String", # The type of the address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+            "type": "A String", # The type of the address. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `other`
             "metadata": { # Metadata about a field. # Metadata about the address.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
@@ -145,11 +191,20 @@
             "value": "A String", # The nickname.
             "metadata": { # Metadata about a field. # Metadata about the nickname.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
@@ -158,25 +213,62 @@
             "value": "A String", # The occupation; for example, `carpenter`.
             "metadata": { # Metadata about a field. # Metadata about the occupation.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
-        "braggingRights": [ # The person's bragging rights.
-          { # A person's bragging rights.
-            "value": "A String", # The bragging rights; for example, `climbed mount everest`.
-            "metadata": { # Metadata about a field. # Metadata about the bragging rights.
+        "phoneNumbers": [ # The person's phone numbers.
+          { # A person's phone number.
+            "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
+                # viewer's account locale or the the `Accept-Language` HTTP header locale.
+            "metadata": { # Metadata about a field. # Metadata about the phone number.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
+            "type": "A String", # The type of the phone number. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `mobile`
+                # * `homeFax`
+                # * `workFax`
+                # * `otherFax`
+                # * `pager`
+                # * `workMobile`
+                # * `workPager`
+                # * `main`
+                # * `googleVoice`
+                # * `other`
+            "value": "A String", # The phone number.
+            "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+                # form of the phone number.
           },
         ],
         "names": [ # The person's names.
@@ -184,70 +276,174 @@
             "phoneticMiddleName": "A String", # The middle name(s) spelled as they sound.
             "honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.`
             "phoneticFamilyName": "A String", # The family name spelled as it sounds.
-            "displayName": "A String", # The display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
+            "displayName": "A String", # The read-only display name formatted according to the locale specified by
+                # the viewer's account or the <code>Accept-Language</code> HTTP header.
+            "displayNameLastFirst": "A String", # The read-only display name with the last name first formatted according to
+                # the locale specified by the viewer's account or the
+                # <code>Accept-Language</code> HTTP header.
             "middleName": "A String", # The middle name(s).
             "phoneticHonorificPrefix": "A String", # The honorific prefixes spelled as they sound.
             "familyName": "A String", # The family name.
+            "phoneticFullName": "A String", # The full name spelled as it sounds.
             "phoneticGivenName": "A String", # The given name spelled as it sounds.
             "phoneticHonorificSuffix": "A String", # The honorific suffixes spelled as they sound.
             "givenName": "A String", # The given name.
             "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.`
             "metadata": { # Metadata about a field. # Metadata about the name.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
-        "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters. Always starts with `people/`.
+        "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
+            # with a max length of 27 characters. Always starts with `people/`.
+        "ageRanges": [ # The person's age ranges.
+          { # A person's age range.
+            "ageRange": "A String", # The age range.
+            "metadata": { # Metadata about a field. # Metadata about the age range.
+              "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
+                "type": "A String", # The source type.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
+              },
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
+            },
+          },
+        ],
         "birthdays": [ # The person's birthdays.
-          { # A person's birthday. At least one of the `date` and `text` fields are specified. The `date` and `text` fields typically represent the same date, but are not guaranteed to.
-            "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the birthday.
+          { # A person's birthday. At least one of the `date` and `text` fields are
+              # specified. The `date` and `text` fields typically represent the same
+              # date, but are not guaranteed to.
+            "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the birthday.
+                # of day and time zone are either specified elsewhere or are not
+                # significant. The date is relative to the
+                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                # The day may be 0 to represent a year and month where the day is not
+                # significant. The year may be 0 to represent a month and day independent
+                # of year; for example, anniversary date.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
               "month": 42, # Month of year. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
             },
             "text": "A String", # A free-form string representing the user's birthday.
             "metadata": { # Metadata about a field. # Metadata about the birthday.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "relations": [ # The person's relations.
           { # A person's relation to another person.
             "person": "A String", # The name of the other person this relation refers to.
-            "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-            "type": "A String", # The person's relation to the other person. The type can be custom or predefined. Possible values include, but are not limited to, the following values: * `spouse` * `child` * `mother` * `father` * `parent` * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`
             "metadata": { # Metadata about a field. # Metadata about the relation.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
+            "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following values:
+                #
+                # * `spouse`
+                # * `child`
+                # * `mother`
+                # * `father`
+                # * `parent`
+                # * `brother`
+                # * `sister`
+                # * `friend`
+                # * `relative`
+                # * `domesticPartner`
+                # * `manager`
+                # * `assistant`
+                # * `referredBy`
+                # * `partner`
+            "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
+                # locale or the locale specified in the Accept-Language HTTP header.
           },
         ],
-        "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation.
+        "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+            # resource. Used for web cache validation.
         "relationshipStatuses": [ # The person's relationship statuses.
-          { # A person's relationship status.
-            "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "value": "A String", # The relationship status. The value can be custom or predefined. Possible values include, but are not limited to, the following: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion`
+          { # A person's read-only relationship status.
+            "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in
+                # the viewer's account locale or the `Accept-Language` HTTP header locale.
+            "value": "A String", # The relationship status. The value can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `single`
+                # * `inARelationship`
+                # * `engaged`
+                # * `married`
+                # * `itsComplicated`
+                # * `openRelationship`
+                # * `widowed`
+                # * `inDomesticPartnership`
+                # * `inCivilUnion`
             "metadata": { # Metadata about a field. # Metadata about the relationship status.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
@@ -256,269 +452,533 @@
             "value": "A String", # The skill; for example, `underwater basket weaving`.
             "metadata": { # Metadata about a field. # Metadata about the skill.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "imClients": [ # The person's instant messaging clients.
           { # A person's instant messaging client.
             "username": "A String", # The user name used in the IM client.
-            "formattedType": "A String", # The read-only type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined. Possible values include, but are not limited to, the following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting`
-            "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "type": "A String", # The type of the IM client. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+            "formattedType": "A String", # The read-only type of the IM client translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
+            "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `aim`
+                # * `msn`
+                # * `yahoo`
+                # * `skype`
+                # * `qq`
+                # * `googleTalk`
+                # * `icq`
+                # * `jabber`
+                # * `netMeeting`
+            "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account
+                # locale or the `Accept-Language` HTTP header locale.
+            "type": "A String", # The type of the IM client. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `other`
             "metadata": { # Metadata about a field. # Metadata about the IM client.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "events": [ # The person's events.
           { # An event related to the person.
-            "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the event.
+            "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the event.
+                # of day and time zone are either specified elsewhere or are not
+                # significant. The date is relative to the
+                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                # The day may be 0 to represent a year and month where the day is not
+                # significant. The year may be 0 to represent a month and day independent
+                # of year; for example, anniversary date.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
               "month": 42, # Month of year. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
             },
-            "formattedType": "A String", # The read-only type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "type": "A String", # The type of the event. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `anniversary` * `other`
+            "formattedType": "A String", # The read-only type of the event translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
+            "type": "A String", # The type of the event. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `anniversary`
+                # * `other`
             "metadata": { # Metadata about a field. # Metadata about the event.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
-        "metadata": { # Metadata about a person. # Metadata about the person.
-          "previousResourceNames": [ # Any former resource names this person has had. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token. The resource name may change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or profile URL.
+        "metadata": { # The read-only metadata about a person. # Metadata about the person.
+          "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+              # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+              # that include a sync token.
+              #
+              # The resource name may change when adding or removing fields that link a
+              # contact and profile such as a verified email, verified phone number, or
+              # profile URL.
             "A String",
           ],
           "sources": [ # The sources of data for the person.
             { # The source of a field.
+              "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                  # source. Used for web cache validation. Only populated in
+                  # person.metadata.sources.
               "type": "A String", # The source type.
-              "id": "A String", # A unique identifier within the source type generated by the server.
+              "id": "A String", # The unique identifier within the source type generated by the server.
+              "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                "objectType": "A String", # The profile object type.
+              },
             },
           ],
-          "deleted": True or False, # True if the person resource has been deleted. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token.
-          "objectType": "A String", # The type of the person object.
+          "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
+            "A String",
+          ],
+          "deleted": True or False, # True if the person resource has been deleted. Populated only for
+              # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+              # that include a sync token.
+          "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
+              # The type of the person object.
         },
         "interests": [ # The person's interests.
           { # One of the person's interests.
             "value": "A String", # The interest; for example, `stargazing`.
             "metadata": { # Metadata about a field. # Metadata about the interest.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "photos": [ # The person's photos.
-          { # A person's photo. A picture shown next to the person's name to help others recognize the person.
+          { # A person's read-only photo. A picture shown next to the person's name to
+              # help others recognize the person.
             "url": "A String", # The URL of the photo.
             "metadata": { # Metadata about a field. # Metadata about the photo.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "residences": [ # The person's residences.
           { # A person's past or current residence.
-            "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence.
+            "current": True or False, # True if the residence is the person's current residence;
+                # false if the residence is a past residence.
             "value": "A String", # The address of the residence.
             "metadata": { # Metadata about a field. # Metadata about the residence.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "relationshipInterests": [ # The kind of relationship the person is looking for.
-          { # The kind of relationship the person is looking for.
-            "formattedValue": "A String", # The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-            "value": "A String", # The kind of relationship the person is looking for. The value can be custom or predefined. Possible values include, but are not limited to, the following values: * `friend` * `date` * `relationship` * `networking`
+          { # A person's read-only relationship interest .
+            "formattedValue": "A String", # The value of the relationship interest translated and formatted in the
+                # viewer's account locale or the locale specified in the Accept-Language
+                # HTTP header.
+            "value": "A String", # The kind of relationship the person is looking for. The value can be custom
+                # or predefined. Possible values include, but are not limited to, the
+                # following values:
+                #
+                # * `friend`
+                # * `date`
+                # * `relationship`
+                # * `networking`
             "metadata": { # Metadata about a field. # Metadata about the relationship interest.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "coverPhotos": [ # The person's cover photos.
-          { # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about.
+          { # A person's read-only cover photo. A large image shown on the person's
+              # profile page that represents who they are or what they care about.
+            "default": True or False, # True if the cover photo is the default cover photo;
+                # false if the cover photo is a user-provided cover photo.
             "url": "A String", # The URL of the cover photo.
-            "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo.
             "metadata": { # Metadata about a field. # Metadata about the cover photo.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "locales": [ # The person's locale preferences.
           { # A person's locale preference.
-            "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale.
+            "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)
+                # language tag representing the locale.
             "metadata": { # Metadata about a field. # Metadata about the locale.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "organizations": [ # The person's past or current organizations.
-          { # A person's past or current organization. Overlapping date ranges are permitted.
-            "formattedType": "A String", # The read-only type of the organization translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+          { # A person's past or current organization. Overlapping date ranges are
+              # permitted.
+            "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
             "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
-            "endDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The end date when the person left the organization.
+            "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
+                # of day and time zone are either specified elsewhere or are not
+                # significant. The date is relative to the
+                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                # The day may be 0 to represent a year and month where the day is not
+                # significant. The year may be 0 to represent a month and day independent
+                # of year; for example, anniversary date.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
               "month": 42, # Month of year. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
             },
             "name": "A String", # The name of the organization.
-            "startDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The start date when the person joined the organization.
-              "month": 42, # Month of year. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
-            },
-            "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker symbol, abbreviation, or acronym.
             "title": "A String", # The person's job title at the organization.
-            "current": True or False, # True if the organization is the person's current organization; false if the organization is a past organization.
+            "type": "A String", # The type of the organization. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `work`
+                # * `school`
+            "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
+                # symbol, abbreviation, or acronym.
+            "current": True or False, # True if the organization is the person's current organization;
+                # false if the organization is a past organization.
             "jobDescription": "A String", # The person's job description at the organization.
             "location": "A String", # The location of the organization office the person works at.
             "department": "A String", # The person's department at the organization.
-            "type": "A String", # The type of the organization. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `work` * `school`
+            "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+                # of day and time zone are either specified elsewhere or are not
+                # significant. The date is relative to the
+                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                # The day may be 0 to represent a year and month where the day is not
+                # significant. The year may be 0 to represent a month and day independent
+                # of year; for example, anniversary date.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
+              "month": 42, # Month of year. Must be from 1 to 12.
+            },
             "phoneticName": "A String", # The phonetic name of the organization.
             "metadata": { # Metadata about a field. # Metadata about the organization.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "biographies": [ # The person's biographies.
           { # A person's short biography.
+            "contentType": "A String", # The content type of the biography.
             "value": "A String", # The short biography.
             "metadata": { # Metadata about a field. # Metadata about the biography.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "memberships": [ # The person's group memberships.
-          { # A person's membership in a group.
+          { # A person's read-only membership in a group.
             "contactGroupMembership": { # A Google contact group membership. # The contact group membership.
-              "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group ID can be custom or predefined. Possible values include, but are not limited to, the following: * `myContacts` * `starred` * A numerical ID for user-created groups.
+              "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group
+                  # ID can be custom or predefined. Possible values include, but are not
+                  # limited to, the following:
+                  #
+                  # *  `myContacts`
+                  # *  `starred`
+                  # *  A numerical ID for user-created groups.
             },
             "domainMembership": { # A Google Apps Domain membership. # The domain membership.
               "inViewerDomain": True or False, # True if the person is in the viewer's Google Apps domain.
             },
             "metadata": { # Metadata about a field. # Metadata about the membership.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "taglines": [ # The person's taglines.
-          { # A brief one-line description of the person.
+          { # A read-only brief one-line description of the person.
             "value": "A String", # The tagline.
             "metadata": { # Metadata about a field. # Metadata about the tagline.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "urls": [ # The person's associated URLs.
           { # A person's associated URLs.
-            "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "type": "A String", # The type of the URL. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Google+ application. * `other`
+            "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's
+                # account locale or the `Accept-Language` HTTP header locale.
+            "type": "A String", # The type of the URL. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `blog`
+                # * `profile`
+                # * `homePage`
+                # * `ftp`
+                # * `reservations`
+                # * `appInstallPage`: website for a Google+ application.
+                # * `other`
             "value": "A String", # The URL.
             "metadata": { # Metadata about a field. # Metadata about the URL.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
-        "ageRange": "A String", # The person's age range.
+        "ageRange": "A String", # DEPRECATED(Please read person.age_ranges instead). The person's age range.
         "genders": [ # The person's genders.
           { # A person's gender.
-            "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "value": "A String", # The gender for the person. The gender can be custom or predefined. Possible values include, but are not limited to, the following: * `male` * `female` * `other` * `unknown`
+            "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's
+                # account locale or the `Accept-Language` HTTP header locale.
+            "value": "A String", # The gender for the person. The gender can be custom or predefined.
+                # Possible values include, but are not limited to, the
+                # following:
+                #
+                # * `male`
+                # * `female`
+                # * `other`
+                # * `unknown`
             "metadata": { # Metadata about a field. # Metadata about the gender.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
         "emailAddresses": [ # The person's email addresses.
           { # A person's email address.
-            "formattedType": "A String", # The read-only type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-            "type": "A String", # The type of the email address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+            "type": "A String", # The type of the email address. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `other`
+            "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
+            "displayName": "A String", # The display name of the email.
             "value": "A String", # The email address.
             "metadata": { # Metadata about a field. # Metadata about the email address.
               "source": { # The source of a field. # The source of the field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
-              "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-              "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+              "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                  # verified field is typically a name, email address, phone number, or
+                  # website that has been confirmed to be owned by the person.
+              "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                  # field.
             },
           },
         ],
       },
     ],
-    "nextPageToken": "A String", # The token that can be used to retrieve the next page of results.
     "nextSyncToken": "A String", # The token that can be used to retrieve changes since the last request.
   }</pre>
 </div>
diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html
index 4ed3fa2..4eaa5e0 100644
--- a/docs/dyn/people_v1.people.html
+++ b/docs/dyn/people_v1.people.html
@@ -80,61 +80,106 @@
 <p class="firstline">Returns the connections Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(resourceName, x__xgafv=None, requestMask_includeField=None)</a></code></p>
-<p class="firstline">Provides information about a person resource for a resource name. Use `people/me` to indicate the authenticated user.</p>
+  <code><a href="#get">get(resourceName=None, x__xgafv=None, requestMask_includeField=None)</a></code></p>
+<p class="firstline">Provides information about a person resource for a resource name. Use</p>
 <p class="toc_element">
   <code><a href="#getBatchGet">getBatchGet(resourceNames=None, x__xgafv=None, requestMask_includeField=None)</a></code></p>
-<p class="firstline">Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user.</p>
+<p class="firstline">Provides information about a list of specific people by specifying a list</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(resourceName, x__xgafv=None, requestMask_includeField=None)</code>
-  <pre>Provides information about a person resource for a resource name. Use `people/me` to indicate the authenticated user.
+    <code class="details" id="get">get(resourceName=None, x__xgafv=None, requestMask_includeField=None)</code>
+  <pre>Provides information about a person resource for a resource name. Use
+`people/me` to indicate the authenticated user.
 
 Args:
-  resourceName: string, The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get information about any user, specify the resource name that identifies the user, such as the resource names returned by [`people.connections.list`](/people/api/rest/v1/people.connections/list). (required)
+  resourceName: string, The resource name of the person to provide information about.
+
+- To get information about the authenticated user, specify `people/me`.
+- To get information about any user, specify the resource name that
+  identifies the user, such as the resource names returned by
+  [`people.connections.list`](/people/api/rest/v1/people.connections/list). (required)
   x__xgafv: string, V1 error format.
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting this field will include all fields. Each path should start with `person.`: for example, `person.names` or `person.photos`.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
+this field will include all fields except for connections.list requests,
+which have a default mask that includes common fields like metadata, name,
+photo, and profile url.
+Each path should start with `person.`: for example, `person.names` or
+`person.photos`.
 
 Returns:
   An object of the form:
 
-    { # Information about a person merged from various data sources such as the authenticated user's contacts and profile data. Fields other than IDs, metadata, and group memberships are user-edited. Most fields can have multiple items. The items in a field have no guaranteed order, but each non-empty field is guaranteed to have exactly one field with `metadata.primary` set to true.
-    "phoneNumbers": [ # The person's phone numbers.
-      { # A person's phone number.
-        "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number.
-        "formattedType": "A String", # The read-only type of the phone number translated and formatted in the viewer's account locale or the the `Accept-Language` HTTP header locale.
-        "type": "A String", # The type of the phone number. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other`
-        "value": "A String", # The phone number.
-        "metadata": { # Metadata about a field. # Metadata about the phone number.
+    { # Information about a person merged from various data sources such as the
+      # authenticated user's contacts and profile data. Fields other than IDs,
+      # metadata, and group memberships are user-edited.
+      #
+      # Most fields can have multiple items. The items in a field have no guaranteed
+      # order, but each non-empty field is guaranteed to have exactly one field with
+      # `metadata.primary` set to true.
+      # NEXT_ID: 31
+    "braggingRights": [ # The person's bragging rights.
+      { # A person's bragging rights.
+        "value": "A String", # The bragging rights; for example, `climbed mount everest`.
+        "metadata": { # Metadata about a field. # Metadata about the bragging rights.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "addresses": [ # The person's street addresses.
-      { # A person's physical address. May be a P.O. box or street address. All fields are optional.
-        "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country code of the address.
+      { # A person's physical address. May be a P.O. box or street address. All fields
+          # are optional.
+        "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's
+            # account locale or the `Accept-Language` HTTP header locale.
+        "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country
+            # code of the address.
         "city": "A String", # The city of the address.
-        "formattedValue": "A String", # The read-only value of the address formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+        "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it
+            # will be automatically constructed from structured values.
         "region": "A String", # The region of the address; for example, the state or province.
         "poBox": "A String", # The P.O. box of the address.
         "streetAddress": "A String", # The street address.
         "country": "A String", # The country of the address.
         "postalCode": "A String", # The postal code of the address.
         "extendedAddress": "A String", # The extended address of the address; for example, the apartment number.
-        "type": "A String", # The type of the address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+        "type": "A String", # The type of the address. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `other`
         "metadata": { # Metadata about a field. # Metadata about the address.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
@@ -144,11 +189,20 @@
         "value": "A String", # The nickname.
         "metadata": { # Metadata about a field. # Metadata about the nickname.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
@@ -157,25 +211,62 @@
         "value": "A String", # The occupation; for example, `carpenter`.
         "metadata": { # Metadata about a field. # Metadata about the occupation.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
-    "braggingRights": [ # The person's bragging rights.
-      { # A person's bragging rights.
-        "value": "A String", # The bragging rights; for example, `climbed mount everest`.
-        "metadata": { # Metadata about a field. # Metadata about the bragging rights.
+    "phoneNumbers": [ # The person's phone numbers.
+      { # A person's phone number.
+        "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
+            # viewer's account locale or the the `Accept-Language` HTTP header locale.
+        "metadata": { # Metadata about a field. # Metadata about the phone number.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
+        "type": "A String", # The type of the phone number. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `mobile`
+            # * `homeFax`
+            # * `workFax`
+            # * `otherFax`
+            # * `pager`
+            # * `workMobile`
+            # * `workPager`
+            # * `main`
+            # * `googleVoice`
+            # * `other`
+        "value": "A String", # The phone number.
+        "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+            # form of the phone number.
       },
     ],
     "names": [ # The person's names.
@@ -183,70 +274,174 @@
         "phoneticMiddleName": "A String", # The middle name(s) spelled as they sound.
         "honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.`
         "phoneticFamilyName": "A String", # The family name spelled as it sounds.
-        "displayName": "A String", # The display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
+        "displayName": "A String", # The read-only display name formatted according to the locale specified by
+            # the viewer's account or the <code>Accept-Language</code> HTTP header.
+        "displayNameLastFirst": "A String", # The read-only display name with the last name first formatted according to
+            # the locale specified by the viewer's account or the
+            # <code>Accept-Language</code> HTTP header.
         "middleName": "A String", # The middle name(s).
         "phoneticHonorificPrefix": "A String", # The honorific prefixes spelled as they sound.
         "familyName": "A String", # The family name.
+        "phoneticFullName": "A String", # The full name spelled as it sounds.
         "phoneticGivenName": "A String", # The given name spelled as it sounds.
         "phoneticHonorificSuffix": "A String", # The honorific suffixes spelled as they sound.
         "givenName": "A String", # The given name.
         "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.`
         "metadata": { # Metadata about a field. # Metadata about the name.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
-    "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters. Always starts with `people/`.
+    "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
+        # with a max length of 27 characters. Always starts with `people/`.
+    "ageRanges": [ # The person's age ranges.
+      { # A person's age range.
+        "ageRange": "A String", # The age range.
+        "metadata": { # Metadata about a field. # Metadata about the age range.
+          "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
+            "type": "A String", # The source type.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
+          },
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
+        },
+      },
+    ],
     "birthdays": [ # The person's birthdays.
-      { # A person's birthday. At least one of the `date` and `text` fields are specified. The `date` and `text` fields typically represent the same date, but are not guaranteed to.
-        "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the birthday.
+      { # A person's birthday. At least one of the `date` and `text` fields are
+          # specified. The `date` and `text` fields typically represent the same
+          # date, but are not guaranteed to.
+        "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the birthday.
+            # of day and time zone are either specified elsewhere or are not
+            # significant. The date is relative to the
+            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+            # The day may be 0 to represent a year and month where the day is not
+            # significant. The year may be 0 to represent a month and day independent
+            # of year; for example, anniversary date.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
           "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
         },
         "text": "A String", # A free-form string representing the user's birthday.
         "metadata": { # Metadata about a field. # Metadata about the birthday.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "relations": [ # The person's relations.
       { # A person's relation to another person.
         "person": "A String", # The name of the other person this relation refers to.
-        "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-        "type": "A String", # The person's relation to the other person. The type can be custom or predefined. Possible values include, but are not limited to, the following values: * `spouse` * `child` * `mother` * `father` * `parent` * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`
         "metadata": { # Metadata about a field. # Metadata about the relation.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
+        "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following values:
+            #
+            # * `spouse`
+            # * `child`
+            # * `mother`
+            # * `father`
+            # * `parent`
+            # * `brother`
+            # * `sister`
+            # * `friend`
+            # * `relative`
+            # * `domesticPartner`
+            # * `manager`
+            # * `assistant`
+            # * `referredBy`
+            # * `partner`
+        "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
+            # locale or the locale specified in the Accept-Language HTTP header.
       },
     ],
-    "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation.
+    "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+        # resource. Used for web cache validation.
     "relationshipStatuses": [ # The person's relationship statuses.
-      { # A person's relationship status.
-        "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "value": "A String", # The relationship status. The value can be custom or predefined. Possible values include, but are not limited to, the following: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion`
+      { # A person's read-only relationship status.
+        "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in
+            # the viewer's account locale or the `Accept-Language` HTTP header locale.
+        "value": "A String", # The relationship status. The value can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `single`
+            # * `inARelationship`
+            # * `engaged`
+            # * `married`
+            # * `itsComplicated`
+            # * `openRelationship`
+            # * `widowed`
+            # * `inDomesticPartnership`
+            # * `inCivilUnion`
         "metadata": { # Metadata about a field. # Metadata about the relationship status.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
@@ -255,263 +450,528 @@
         "value": "A String", # The skill; for example, `underwater basket weaving`.
         "metadata": { # Metadata about a field. # Metadata about the skill.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "imClients": [ # The person's instant messaging clients.
       { # A person's instant messaging client.
         "username": "A String", # The user name used in the IM client.
-        "formattedType": "A String", # The read-only type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined. Possible values include, but are not limited to, the following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting`
-        "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "type": "A String", # The type of the IM client. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+        "formattedType": "A String", # The read-only type of the IM client translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
+        "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `aim`
+            # * `msn`
+            # * `yahoo`
+            # * `skype`
+            # * `qq`
+            # * `googleTalk`
+            # * `icq`
+            # * `jabber`
+            # * `netMeeting`
+        "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account
+            # locale or the `Accept-Language` HTTP header locale.
+        "type": "A String", # The type of the IM client. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `other`
         "metadata": { # Metadata about a field. # Metadata about the IM client.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "events": [ # The person's events.
       { # An event related to the person.
-        "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the event.
+        "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the event.
+            # of day and time zone are either specified elsewhere or are not
+            # significant. The date is relative to the
+            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+            # The day may be 0 to represent a year and month where the day is not
+            # significant. The year may be 0 to represent a month and day independent
+            # of year; for example, anniversary date.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
           "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
         },
-        "formattedType": "A String", # The read-only type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "type": "A String", # The type of the event. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `anniversary` * `other`
+        "formattedType": "A String", # The read-only type of the event translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
+        "type": "A String", # The type of the event. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `anniversary`
+            # * `other`
         "metadata": { # Metadata about a field. # Metadata about the event.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
-    "metadata": { # Metadata about a person. # Metadata about the person.
-      "previousResourceNames": [ # Any former resource names this person has had. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token. The resource name may change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or profile URL.
+    "metadata": { # The read-only metadata about a person. # Metadata about the person.
+      "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+          # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+          # that include a sync token.
+          #
+          # The resource name may change when adding or removing fields that link a
+          # contact and profile such as a verified email, verified phone number, or
+          # profile URL.
         "A String",
       ],
       "sources": [ # The sources of data for the person.
         { # The source of a field.
+          "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+              # source. Used for web cache validation. Only populated in
+              # person.metadata.sources.
           "type": "A String", # The source type.
-          "id": "A String", # A unique identifier within the source type generated by the server.
+          "id": "A String", # The unique identifier within the source type generated by the server.
+          "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+            "objectType": "A String", # The profile object type.
+          },
         },
       ],
-      "deleted": True or False, # True if the person resource has been deleted. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token.
-      "objectType": "A String", # The type of the person object.
+      "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
+        "A String",
+      ],
+      "deleted": True or False, # True if the person resource has been deleted. Populated only for
+          # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+          # that include a sync token.
+      "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
+          # The type of the person object.
     },
     "interests": [ # The person's interests.
       { # One of the person's interests.
         "value": "A String", # The interest; for example, `stargazing`.
         "metadata": { # Metadata about a field. # Metadata about the interest.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "photos": [ # The person's photos.
-      { # A person's photo. A picture shown next to the person's name to help others recognize the person.
+      { # A person's read-only photo. A picture shown next to the person's name to
+          # help others recognize the person.
         "url": "A String", # The URL of the photo.
         "metadata": { # Metadata about a field. # Metadata about the photo.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "residences": [ # The person's residences.
       { # A person's past or current residence.
-        "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence.
+        "current": True or False, # True if the residence is the person's current residence;
+            # false if the residence is a past residence.
         "value": "A String", # The address of the residence.
         "metadata": { # Metadata about a field. # Metadata about the residence.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "relationshipInterests": [ # The kind of relationship the person is looking for.
-      { # The kind of relationship the person is looking for.
-        "formattedValue": "A String", # The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-        "value": "A String", # The kind of relationship the person is looking for. The value can be custom or predefined. Possible values include, but are not limited to, the following values: * `friend` * `date` * `relationship` * `networking`
+      { # A person's read-only relationship interest .
+        "formattedValue": "A String", # The value of the relationship interest translated and formatted in the
+            # viewer's account locale or the locale specified in the Accept-Language
+            # HTTP header.
+        "value": "A String", # The kind of relationship the person is looking for. The value can be custom
+            # or predefined. Possible values include, but are not limited to, the
+            # following values:
+            #
+            # * `friend`
+            # * `date`
+            # * `relationship`
+            # * `networking`
         "metadata": { # Metadata about a field. # Metadata about the relationship interest.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "coverPhotos": [ # The person's cover photos.
-      { # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about.
+      { # A person's read-only cover photo. A large image shown on the person's
+          # profile page that represents who they are or what they care about.
+        "default": True or False, # True if the cover photo is the default cover photo;
+            # false if the cover photo is a user-provided cover photo.
         "url": "A String", # The URL of the cover photo.
-        "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo.
         "metadata": { # Metadata about a field. # Metadata about the cover photo.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "locales": [ # The person's locale preferences.
       { # A person's locale preference.
-        "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale.
+        "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)
+            # language tag representing the locale.
         "metadata": { # Metadata about a field. # Metadata about the locale.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "organizations": [ # The person's past or current organizations.
-      { # A person's past or current organization. Overlapping date ranges are permitted.
-        "formattedType": "A String", # The read-only type of the organization translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+      { # A person's past or current organization. Overlapping date ranges are
+          # permitted.
+        "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
         "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
-        "endDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The end date when the person left the organization.
+        "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
+            # of day and time zone are either specified elsewhere or are not
+            # significant. The date is relative to the
+            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+            # The day may be 0 to represent a year and month where the day is not
+            # significant. The year may be 0 to represent a month and day independent
+            # of year; for example, anniversary date.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
           "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
         },
         "name": "A String", # The name of the organization.
-        "startDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The start date when the person joined the organization.
-          "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
-        },
-        "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker symbol, abbreviation, or acronym.
         "title": "A String", # The person's job title at the organization.
-        "current": True or False, # True if the organization is the person's current organization; false if the organization is a past organization.
+        "type": "A String", # The type of the organization. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `work`
+            # * `school`
+        "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
+            # symbol, abbreviation, or acronym.
+        "current": True or False, # True if the organization is the person's current organization;
+            # false if the organization is a past organization.
         "jobDescription": "A String", # The person's job description at the organization.
         "location": "A String", # The location of the organization office the person works at.
         "department": "A String", # The person's department at the organization.
-        "type": "A String", # The type of the organization. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `work` * `school`
+        "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+            # of day and time zone are either specified elsewhere or are not
+            # significant. The date is relative to the
+            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+            # The day may be 0 to represent a year and month where the day is not
+            # significant. The year may be 0 to represent a month and day independent
+            # of year; for example, anniversary date.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
+        },
         "phoneticName": "A String", # The phonetic name of the organization.
         "metadata": { # Metadata about a field. # Metadata about the organization.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "biographies": [ # The person's biographies.
       { # A person's short biography.
+        "contentType": "A String", # The content type of the biography.
         "value": "A String", # The short biography.
         "metadata": { # Metadata about a field. # Metadata about the biography.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "memberships": [ # The person's group memberships.
-      { # A person's membership in a group.
+      { # A person's read-only membership in a group.
         "contactGroupMembership": { # A Google contact group membership. # The contact group membership.
-          "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group ID can be custom or predefined. Possible values include, but are not limited to, the following: * `myContacts` * `starred` * A numerical ID for user-created groups.
+          "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group
+              # ID can be custom or predefined. Possible values include, but are not
+              # limited to, the following:
+              #
+              # *  `myContacts`
+              # *  `starred`
+              # *  A numerical ID for user-created groups.
         },
         "domainMembership": { # A Google Apps Domain membership. # The domain membership.
           "inViewerDomain": True or False, # True if the person is in the viewer's Google Apps domain.
         },
         "metadata": { # Metadata about a field. # Metadata about the membership.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "taglines": [ # The person's taglines.
-      { # A brief one-line description of the person.
+      { # A read-only brief one-line description of the person.
         "value": "A String", # The tagline.
         "metadata": { # Metadata about a field. # Metadata about the tagline.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "urls": [ # The person's associated URLs.
       { # A person's associated URLs.
-        "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "type": "A String", # The type of the URL. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Google+ application. * `other`
+        "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's
+            # account locale or the `Accept-Language` HTTP header locale.
+        "type": "A String", # The type of the URL. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `blog`
+            # * `profile`
+            # * `homePage`
+            # * `ftp`
+            # * `reservations`
+            # * `appInstallPage`: website for a Google+ application.
+            # * `other`
         "value": "A String", # The URL.
         "metadata": { # Metadata about a field. # Metadata about the URL.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
-    "ageRange": "A String", # The person's age range.
+    "ageRange": "A String", # DEPRECATED(Please read person.age_ranges instead). The person's age range.
     "genders": [ # The person's genders.
       { # A person's gender.
-        "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "value": "A String", # The gender for the person. The gender can be custom or predefined. Possible values include, but are not limited to, the following: * `male` * `female` * `other` * `unknown`
+        "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's
+            # account locale or the `Accept-Language` HTTP header locale.
+        "value": "A String", # The gender for the person. The gender can be custom or predefined.
+            # Possible values include, but are not limited to, the
+            # following:
+            #
+            # * `male`
+            # * `female`
+            # * `other`
+            # * `unknown`
         "metadata": { # Metadata about a field. # Metadata about the gender.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
     "emailAddresses": [ # The person's email addresses.
       { # A person's email address.
-        "formattedType": "A String", # The read-only type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-        "type": "A String", # The type of the email address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+        "type": "A String", # The type of the email address. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `other`
+        "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
+        "displayName": "A String", # The display name of the email.
         "value": "A String", # The email address.
         "metadata": { # Metadata about a field. # Metadata about the email address.
           "source": { # The source of a field. # The source of the field.
+            "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                # source. Used for web cache validation. Only populated in
+                # person.metadata.sources.
             "type": "A String", # The source type.
-            "id": "A String", # A unique identifier within the source type generated by the server.
+            "id": "A String", # The unique identifier within the source type generated by the server.
+            "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+              "objectType": "A String", # The profile object type.
+            },
           },
-          "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-          "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+          "verified": True or False, # True if the field is verified; false if the field is unverified. A
+              # verified field is typically a name, email address, phone number, or
+              # website that has been confirmed to be owned by the person.
+          "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+              # field.
         },
       },
     ],
@@ -520,12 +980,25 @@
 
 <div class="method">
     <code class="details" id="getBatchGet">getBatchGet(resourceNames=None, x__xgafv=None, requestMask_includeField=None)</code>
-  <pre>Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user.
+  <pre>Provides information about a list of specific people by specifying a list
+of requested resource names. Use `people/me` to indicate the authenticated
+user.
 
 Args:
-  resourceNames: string, The resource name, such as one returned by [`people.connections.list`](/people/api/rest/v1/people.connections/list), of one of the people to provide information about. You can include this parameter up to 50 times in one request. (repeated)
+  resourceNames: string, The resource name, such as one returned by
+[`people.connections.list`](/people/api/rest/v1/people.connections/list),
+of one of the people to provide information about. You can include this
+parameter up to 50 times in one request. (repeated)
   x__xgafv: string, V1 error format.
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting this field will include all fields. Each path should start with `person.`: for example, `person.names` or `person.photos`.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
+this field will include all fields except for connections.list requests,
+which have a default mask that includes common fields like metadata, name,
+photo, and profile url.
+Each path should start with `person.`: for example, `person.names` or
+`person.photos`.
 
 Returns:
   An object of the form:
@@ -533,44 +1006,80 @@
     {
     "responses": [ # The response for each requested resource name.
       { # The response for a single person
-        "requestedResourceName": "A String", # The original requested resource name. May be different than the resource name on the returned person. The resource name can change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or a profile URL.
-        "person": { # Information about a person merged from various data sources such as the authenticated user's contacts and profile data. Fields other than IDs, metadata, and group memberships are user-edited. Most fields can have multiple items. The items in a field have no guaranteed order, but each non-empty field is guaranteed to have exactly one field with `metadata.primary` set to true. # The person.
-          "phoneNumbers": [ # The person's phone numbers.
-            { # A person's phone number.
-              "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number.
-              "formattedType": "A String", # The read-only type of the phone number translated and formatted in the viewer's account locale or the the `Accept-Language` HTTP header locale.
-              "type": "A String", # The type of the phone number. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other`
-              "value": "A String", # The phone number.
-              "metadata": { # Metadata about a field. # Metadata about the phone number.
+        "requestedResourceName": "A String", # The original requested resource name. May be different than the resource
+            # name on the returned person.
+            #
+            # The resource name can change when adding or removing fields that link a
+            # contact and profile such as a verified email, verified phone number, or a
+            # profile URL.
+        "person": { # Information about a person merged from various data sources such as the # The person.
+            # authenticated user's contacts and profile data. Fields other than IDs,
+            # metadata, and group memberships are user-edited.
+            #
+            # Most fields can have multiple items. The items in a field have no guaranteed
+            # order, but each non-empty field is guaranteed to have exactly one field with
+            # `metadata.primary` set to true.
+            # NEXT_ID: 31
+          "braggingRights": [ # The person's bragging rights.
+            { # A person's bragging rights.
+              "value": "A String", # The bragging rights; for example, `climbed mount everest`.
+              "metadata": { # Metadata about a field. # Metadata about the bragging rights.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "addresses": [ # The person's street addresses.
-            { # A person's physical address. May be a P.O. box or street address. All fields are optional.
-              "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country code of the address.
+            { # A person's physical address. May be a P.O. box or street address. All fields
+                # are optional.
+              "formattedType": "A String", # The read-only type of the address translated and formatted in the viewer's
+                  # account locale or the `Accept-Language` HTTP header locale.
+              "countryCode": "A String", # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country
+                  # code of the address.
               "city": "A String", # The city of the address.
-              "formattedValue": "A String", # The read-only value of the address formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+              "formattedValue": "A String", # The unstructured value of the address. If this is not set by the user it
+                  # will be automatically constructed from structured values.
               "region": "A String", # The region of the address; for example, the state or province.
               "poBox": "A String", # The P.O. box of the address.
               "streetAddress": "A String", # The street address.
               "country": "A String", # The country of the address.
               "postalCode": "A String", # The postal code of the address.
               "extendedAddress": "A String", # The extended address of the address; for example, the apartment number.
-              "type": "A String", # The type of the address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+              "type": "A String", # The type of the address. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `other`
               "metadata": { # Metadata about a field. # Metadata about the address.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
@@ -580,11 +1089,20 @@
               "value": "A String", # The nickname.
               "metadata": { # Metadata about a field. # Metadata about the nickname.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
@@ -593,25 +1111,62 @@
               "value": "A String", # The occupation; for example, `carpenter`.
               "metadata": { # Metadata about a field. # Metadata about the occupation.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
-          "braggingRights": [ # The person's bragging rights.
-            { # A person's bragging rights.
-              "value": "A String", # The bragging rights; for example, `climbed mount everest`.
-              "metadata": { # Metadata about a field. # Metadata about the bragging rights.
+          "phoneNumbers": [ # The person's phone numbers.
+            { # A person's phone number.
+              "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
+                  # viewer's account locale or the the `Accept-Language` HTTP header locale.
+              "metadata": { # Metadata about a field. # Metadata about the phone number.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
+              "type": "A String", # The type of the phone number. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `mobile`
+                  # * `homeFax`
+                  # * `workFax`
+                  # * `otherFax`
+                  # * `pager`
+                  # * `workMobile`
+                  # * `workPager`
+                  # * `main`
+                  # * `googleVoice`
+                  # * `other`
+              "value": "A String", # The phone number.
+              "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+                  # form of the phone number.
             },
           ],
           "names": [ # The person's names.
@@ -619,70 +1174,174 @@
               "phoneticMiddleName": "A String", # The middle name(s) spelled as they sound.
               "honorificPrefix": "A String", # The honorific prefixes, such as `Mrs.` or `Dr.`
               "phoneticFamilyName": "A String", # The family name spelled as it sounds.
-              "displayName": "A String", # The display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
+              "displayName": "A String", # The read-only display name formatted according to the locale specified by
+                  # the viewer's account or the <code>Accept-Language</code> HTTP header.
+              "displayNameLastFirst": "A String", # The read-only display name with the last name first formatted according to
+                  # the locale specified by the viewer's account or the
+                  # <code>Accept-Language</code> HTTP header.
               "middleName": "A String", # The middle name(s).
               "phoneticHonorificPrefix": "A String", # The honorific prefixes spelled as they sound.
               "familyName": "A String", # The family name.
+              "phoneticFullName": "A String", # The full name spelled as it sounds.
               "phoneticGivenName": "A String", # The given name spelled as it sounds.
               "phoneticHonorificSuffix": "A String", # The honorific suffixes spelled as they sound.
               "givenName": "A String", # The given name.
               "honorificSuffix": "A String", # The honorific suffixes, such as `Jr.`
               "metadata": { # Metadata about a field. # Metadata about the name.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
-          "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters. Always starts with `people/`.
+          "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
+              # with a max length of 27 characters. Always starts with `people/`.
+          "ageRanges": [ # The person's age ranges.
+            { # A person's age range.
+              "ageRange": "A String", # The age range.
+              "metadata": { # Metadata about a field. # Metadata about the age range.
+                "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
+                  "type": "A String", # The source type.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
+                },
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
+              },
+            },
+          ],
           "birthdays": [ # The person's birthdays.
-            { # A person's birthday. At least one of the `date` and `text` fields are specified. The `date` and `text` fields typically represent the same date, but are not guaranteed to.
-              "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the birthday.
+            { # A person's birthday. At least one of the `date` and `text` fields are
+                # specified. The `date` and `text` fields typically represent the same
+                # date, but are not guaranteed to.
+              "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the birthday.
+                  # of day and time zone are either specified elsewhere or are not
+                  # significant. The date is relative to the
+                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                  # The day may be 0 to represent a year and month where the day is not
+                  # significant. The year may be 0 to represent a month and day independent
+                  # of year; for example, anniversary date.
+                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                    # a year.
+                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                    # if specifying a year/month where the day is not significant.
                 "month": 42, # Month of year. Must be from 1 to 12.
-                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
               },
               "text": "A String", # A free-form string representing the user's birthday.
               "metadata": { # Metadata about a field. # Metadata about the birthday.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "relations": [ # The person's relations.
             { # A person's relation to another person.
               "person": "A String", # The name of the other person this relation refers to.
-              "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-              "type": "A String", # The person's relation to the other person. The type can be custom or predefined. Possible values include, but are not limited to, the following values: * `spouse` * `child` * `mother` * `father` * `parent` * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`
               "metadata": { # Metadata about a field. # Metadata about the relation.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
+              "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following values:
+                  #
+                  # * `spouse`
+                  # * `child`
+                  # * `mother`
+                  # * `father`
+                  # * `parent`
+                  # * `brother`
+                  # * `sister`
+                  # * `friend`
+                  # * `relative`
+                  # * `domesticPartner`
+                  # * `manager`
+                  # * `assistant`
+                  # * `referredBy`
+                  # * `partner`
+              "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
+                  # locale or the locale specified in the Accept-Language HTTP header.
             },
           ],
-          "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation.
+          "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+              # resource. Used for web cache validation.
           "relationshipStatuses": [ # The person's relationship statuses.
-            { # A person's relationship status.
-              "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "value": "A String", # The relationship status. The value can be custom or predefined. Possible values include, but are not limited to, the following: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion`
+            { # A person's read-only relationship status.
+              "formattedValue": "A String", # The read-only value of the relationship status translated and formatted in
+                  # the viewer's account locale or the `Accept-Language` HTTP header locale.
+              "value": "A String", # The relationship status. The value can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `single`
+                  # * `inARelationship`
+                  # * `engaged`
+                  # * `married`
+                  # * `itsComplicated`
+                  # * `openRelationship`
+                  # * `widowed`
+                  # * `inDomesticPartnership`
+                  # * `inCivilUnion`
               "metadata": { # Metadata about a field. # Metadata about the relationship status.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
@@ -691,263 +1350,528 @@
               "value": "A String", # The skill; for example, `underwater basket weaving`.
               "metadata": { # Metadata about a field. # Metadata about the skill.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "imClients": [ # The person's instant messaging clients.
             { # A person's instant messaging client.
               "username": "A String", # The user name used in the IM client.
-              "formattedType": "A String", # The read-only type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined. Possible values include, but are not limited to, the following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting`
-              "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "type": "A String", # The type of the IM client. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+              "formattedType": "A String", # The read-only type of the IM client translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
+              "protocol": "A String", # The protocol of the IM client. The protocol can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `aim`
+                  # * `msn`
+                  # * `yahoo`
+                  # * `skype`
+                  # * `qq`
+                  # * `googleTalk`
+                  # * `icq`
+                  # * `jabber`
+                  # * `netMeeting`
+              "formattedProtocol": "A String", # The read-only protocol of the IM client formatted in the viewer's account
+                  # locale or the `Accept-Language` HTTP header locale.
+              "type": "A String", # The type of the IM client. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `other`
               "metadata": { # Metadata about a field. # Metadata about the IM client.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "events": [ # The person's events.
             { # An event related to the person.
-              "date": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The date of the event.
+              "date": { # Represents a whole calendar date, for example a date of birth. The time # The date of the event.
+                  # of day and time zone are either specified elsewhere or are not
+                  # significant. The date is relative to the
+                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                  # The day may be 0 to represent a year and month where the day is not
+                  # significant. The year may be 0 to represent a month and day independent
+                  # of year; for example, anniversary date.
+                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                    # a year.
+                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                    # if specifying a year/month where the day is not significant.
                 "month": 42, # Month of year. Must be from 1 to 12.
-                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
               },
-              "formattedType": "A String", # The read-only type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "type": "A String", # The type of the event. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `anniversary` * `other`
+              "formattedType": "A String", # The read-only type of the event translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
+              "type": "A String", # The type of the event. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `anniversary`
+                  # * `other`
               "metadata": { # Metadata about a field. # Metadata about the event.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
-          "metadata": { # Metadata about a person. # Metadata about the person.
-            "previousResourceNames": [ # Any former resource names this person has had. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token. The resource name may change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or profile URL.
+          "metadata": { # The read-only metadata about a person. # Metadata about the person.
+            "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+                # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+                # that include a sync token.
+                #
+                # The resource name may change when adding or removing fields that link a
+                # contact and profile such as a verified email, verified phone number, or
+                # profile URL.
               "A String",
             ],
             "sources": [ # The sources of data for the person.
               { # The source of a field.
+                "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                    # source. Used for web cache validation. Only populated in
+                    # person.metadata.sources.
                 "type": "A String", # The source type.
-                "id": "A String", # A unique identifier within the source type generated by the server.
+                "id": "A String", # The unique identifier within the source type generated by the server.
+                "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                  "objectType": "A String", # The profile object type.
+                },
               },
             ],
-            "deleted": True or False, # True if the person resource has been deleted. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token.
-            "objectType": "A String", # The type of the person object.
+            "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
+              "A String",
+            ],
+            "deleted": True or False, # True if the person resource has been deleted. Populated only for
+                # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
+                # that include a sync token.
+            "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
+                # The type of the person object.
           },
           "interests": [ # The person's interests.
             { # One of the person's interests.
               "value": "A String", # The interest; for example, `stargazing`.
               "metadata": { # Metadata about a field. # Metadata about the interest.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "photos": [ # The person's photos.
-            { # A person's photo. A picture shown next to the person's name to help others recognize the person.
+            { # A person's read-only photo. A picture shown next to the person's name to
+                # help others recognize the person.
               "url": "A String", # The URL of the photo.
               "metadata": { # Metadata about a field. # Metadata about the photo.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "residences": [ # The person's residences.
             { # A person's past or current residence.
-              "current": True or False, # True if the residence is the person's current residence; false if the residence is a past residence.
+              "current": True or False, # True if the residence is the person's current residence;
+                  # false if the residence is a past residence.
               "value": "A String", # The address of the residence.
               "metadata": { # Metadata about a field. # Metadata about the residence.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "relationshipInterests": [ # The kind of relationship the person is looking for.
-            { # The kind of relationship the person is looking for.
-              "formattedValue": "A String", # The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.
-              "value": "A String", # The kind of relationship the person is looking for. The value can be custom or predefined. Possible values include, but are not limited to, the following values: * `friend` * `date` * `relationship` * `networking`
+            { # A person's read-only relationship interest .
+              "formattedValue": "A String", # The value of the relationship interest translated and formatted in the
+                  # viewer's account locale or the locale specified in the Accept-Language
+                  # HTTP header.
+              "value": "A String", # The kind of relationship the person is looking for. The value can be custom
+                  # or predefined. Possible values include, but are not limited to, the
+                  # following values:
+                  #
+                  # * `friend`
+                  # * `date`
+                  # * `relationship`
+                  # * `networking`
               "metadata": { # Metadata about a field. # Metadata about the relationship interest.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "coverPhotos": [ # The person's cover photos.
-            { # A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about.
+            { # A person's read-only cover photo. A large image shown on the person's
+                # profile page that represents who they are or what they care about.
+              "default": True or False, # True if the cover photo is the default cover photo;
+                  # false if the cover photo is a user-provided cover photo.
               "url": "A String", # The URL of the cover photo.
-              "default": True or False, # True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo.
               "metadata": { # Metadata about a field. # Metadata about the cover photo.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "locales": [ # The person's locale preferences.
             { # A person's locale preference.
-              "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale.
+              "value": "A String", # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)
+                  # language tag representing the locale.
               "metadata": { # Metadata about a field. # Metadata about the locale.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "organizations": [ # The person's past or current organizations.
-            { # A person's past or current organization. Overlapping date ranges are permitted.
-              "formattedType": "A String", # The read-only type of the organization translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
+            { # A person's past or current organization. Overlapping date ranges are
+                # permitted.
+              "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
               "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
-              "endDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The end date when the person left the organization.
+              "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
+                  # of day and time zone are either specified elsewhere or are not
+                  # significant. The date is relative to the
+                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                  # The day may be 0 to represent a year and month where the day is not
+                  # significant. The year may be 0 to represent a month and day independent
+                  # of year; for example, anniversary date.
+                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                    # a year.
+                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                    # if specifying a year/month where the day is not significant.
                 "month": 42, # Month of year. Must be from 1 to 12.
-                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
               },
               "name": "A String", # The name of the organization.
-              "startDate": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The day may be 0 to represent a year and month where the day is not significant. The year may be 0 to represent a month and day independent of year; for example, anniversary date. # The start date when the person joined the organization.
-                "month": 42, # Month of year. Must be from 1 to 12.
-                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
-              },
-              "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker symbol, abbreviation, or acronym.
               "title": "A String", # The person's job title at the organization.
-              "current": True or False, # True if the organization is the person's current organization; false if the organization is a past organization.
+              "type": "A String", # The type of the organization. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `work`
+                  # * `school`
+              "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
+                  # symbol, abbreviation, or acronym.
+              "current": True or False, # True if the organization is the person's current organization;
+                  # false if the organization is a past organization.
               "jobDescription": "A String", # The person's job description at the organization.
               "location": "A String", # The location of the organization office the person works at.
               "department": "A String", # The person's department at the organization.
-              "type": "A String", # The type of the organization. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `work` * `school`
+              "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+                  # of day and time zone are either specified elsewhere or are not
+                  # significant. The date is relative to the
+                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                  # The day may be 0 to represent a year and month where the day is not
+                  # significant. The year may be 0 to represent a month and day independent
+                  # of year; for example, anniversary date.
+                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                    # a year.
+                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                    # if specifying a year/month where the day is not significant.
+                "month": 42, # Month of year. Must be from 1 to 12.
+              },
               "phoneticName": "A String", # The phonetic name of the organization.
               "metadata": { # Metadata about a field. # Metadata about the organization.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "biographies": [ # The person's biographies.
             { # A person's short biography.
+              "contentType": "A String", # The content type of the biography.
               "value": "A String", # The short biography.
               "metadata": { # Metadata about a field. # Metadata about the biography.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "memberships": [ # The person's group memberships.
-            { # A person's membership in a group.
+            { # A person's read-only membership in a group.
               "contactGroupMembership": { # A Google contact group membership. # The contact group membership.
-                "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group ID can be custom or predefined. Possible values include, but are not limited to, the following: * `myContacts` * `starred` * A numerical ID for user-created groups.
+                "contactGroupId": "A String", # The contact group ID for the contact group membership. The contact group
+                    # ID can be custom or predefined. Possible values include, but are not
+                    # limited to, the following:
+                    #
+                    # *  `myContacts`
+                    # *  `starred`
+                    # *  A numerical ID for user-created groups.
               },
               "domainMembership": { # A Google Apps Domain membership. # The domain membership.
                 "inViewerDomain": True or False, # True if the person is in the viewer's Google Apps domain.
               },
               "metadata": { # Metadata about a field. # Metadata about the membership.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "taglines": [ # The person's taglines.
-            { # A brief one-line description of the person.
+            { # A read-only brief one-line description of the person.
               "value": "A String", # The tagline.
               "metadata": { # Metadata about a field. # Metadata about the tagline.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "urls": [ # The person's associated URLs.
             { # A person's associated URLs.
-              "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "type": "A String", # The type of the URL. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Google+ application. * `other`
+              "formattedType": "A String", # The read-only type of the URL translated and formatted in the viewer's
+                  # account locale or the `Accept-Language` HTTP header locale.
+              "type": "A String", # The type of the URL. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `blog`
+                  # * `profile`
+                  # * `homePage`
+                  # * `ftp`
+                  # * `reservations`
+                  # * `appInstallPage`: website for a Google+ application.
+                  # * `other`
               "value": "A String", # The URL.
               "metadata": { # Metadata about a field. # Metadata about the URL.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
-          "ageRange": "A String", # The person's age range.
+          "ageRange": "A String", # DEPRECATED(Please read person.age_ranges instead). The person's age range.
           "genders": [ # The person's genders.
             { # A person's gender.
-              "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "value": "A String", # The gender for the person. The gender can be custom or predefined. Possible values include, but are not limited to, the following: * `male` * `female` * `other` * `unknown`
+              "formattedValue": "A String", # The read-only value of the gender translated and formatted in the viewer's
+                  # account locale or the `Accept-Language` HTTP header locale.
+              "value": "A String", # The gender for the person. The gender can be custom or predefined.
+                  # Possible values include, but are not limited to, the
+                  # following:
+                  #
+                  # * `male`
+                  # * `female`
+                  # * `other`
+                  # * `unknown`
               "metadata": { # Metadata about a field. # Metadata about the gender.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
           "emailAddresses": [ # The person's email addresses.
             { # A person's email address.
-              "formattedType": "A String", # The read-only type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.
-              "type": "A String", # The type of the email address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other`
+              "type": "A String", # The type of the email address. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `other`
+              "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
+              "displayName": "A String", # The display name of the email.
               "value": "A String", # The email address.
               "metadata": { # Metadata about a field. # Metadata about the email address.
                 "source": { # The source of a field. # The source of the field.
+                  "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
+                      # source. Used for web cache validation. Only populated in
+                      # person.metadata.sources.
                   "type": "A String", # The source type.
-                  "id": "A String", # A unique identifier within the source type generated by the server.
+                  "id": "A String", # The unique identifier within the source type generated by the server.
+                  "profileMetadata": { # The read-only metadata about a profile. # Metadata about a source of type PROFILE.
+                    "objectType": "A String", # The profile object type.
+                  },
                 },
-                "verified": True or False, # True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.
-                "primary": True or False, # True if the field is the primary field; false if the field is a secondary field.
+                "verified": True or False, # True if the field is verified; false if the field is unverified. A
+                    # verified field is typically a name, email address, phone number, or
+                    # website that has been confirmed to be owned by the person.
+                "primary": True or False, # True if the field is the primary field; false if the field is a secondary
+                    # field.
               },
             },
           ],
diff --git a/docs/dyn/playmoviespartner_v1.accounts.avails.html b/docs/dyn/playmoviespartner_v1.accounts.avails.html
index 92a8f8c..3d8d6f6 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.avails.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.avails.html
@@ -79,7 +79,7 @@
 <p class="firstline">Get an Avail given its avail group id and avail id.</p>
 <p class="toc_element">
   <code><a href="#list">list(accountId, pphNames=None, pageSize=None, territories=None, altIds=None, x__xgafv=None, title=None, studioNames=None, pageToken=None, videoIds=None, altId=None)</a></code></p>
-<p class="firstline">List Avails owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.</p>
+<p class="firstline">List Avails owned or managed by the partner.</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>
@@ -92,65 +92,152 @@
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   availId: string, REQUIRED. Avail ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An Avail describes the Availability Window of a specific Edit in a given country, which means the period Google is allowed to sell or rent the Edit. Avails are exposed in EMA format Version 1.6b (available at http://www.movielabs.com/md/avails/) Studios can see the Avails for the Titles they own. Post-production houses cannot see any Avails.
-    "pphNames": [ # Name of the post-production houses that manage the Avail. Not part of EMA Specs.
+    { # An Avail describes the Availability Window of a specific Edit in a given
+      # country, which means the period Google is allowed to sell or rent the Edit.
+      #
+      # Avails are exposed in EMA format Version 1.6b (available at
+      # http://www.movielabs.com/md/avails/)
+      #
+      # Studios can see the Avails for the Titles they own.
+      # Post-production houses cannot see any Avails.
+    "pphNames": [ # Name of the post-production houses that manage the Avail.
+        # Not part of EMA Specs.
       "A String",
     ],
     "licenseType": "A String", # Type of transaction.
+    "encodeId": "A String", # Manifestation Identifier. This should be the Manifestation
+        # Level EIDR.
+        # Example: "10.2340/1489-49A2-3956-4B2D-FE16-7"
     "captionIncluded": True or False, # Communicating if caption file will be delivered.
-    "releaseDate": "A String", # Release date of the Title in earliest released territory. Typically it is just the year, but it is free-form as per EMA spec. Examples: "1979", "Oct 2014"
-    "episodeAltId": "A String", # Other identifier referring to the episode, as defined by partner. Only available on TV avails. Example: "rs_googlers_s1_3".
-    "episodeTitleInternalAlias": "A String", # OPTIONAL.TV Only. Title used by involved parties to refer to this episode. Only available on TV Avails. Example: "Coding at Google".
-    "availId": "A String", # ID internally generated by Google to uniquely identify an Avail. Not part of EMA Specs.
-    "end": "A String", # End of term in YYYY-MM-DD format in the timezone of the country of the Avail. "Open" if no end date is available. Example: "2019-02-17"
-    "altId": "A String", # Other identifier referring to the Edit, as defined by partner. Example: "GOOGLER_2006"
-    "seriesAltId": "A String", # Other identifier referring to the series, as defined by partner. Only available on TV avails. Example: "rs_googlers".
-    "start": "A String", # Start of term in YYYY-MM-DD format in the timezone of the country of the Avail. Example: "2013-05-14".
-    "titleInternalAlias": "A String", # Title used by involved parties to refer to this content. Example: "Googlers, The". Only available on Movie Avails.
-    "seasonTitleInternalAlias": "A String", # Title used by involved parties to refer to this season. Only available on TV Avails. Example: "Googlers, The".
-    "territory": "A String", # ISO 3166-1 alpha-2 country code for the country or territory of this Avail. For Avails, we use Territory in lieu of Country to comply with EMA specifications. But please note that Territory and Country identify the same thing. Example: "US".
-    "productId": "A String", # Edit Identifier. This should be the Edit Level EIDR. Example: "10.2340/1489-49A2-3956-4B2D-FE16-6"
-    "storeLanguage": "A String", # Spoken language of the intended audience. Language shall be encoded in accordance with RFC 5646. Example: "fr".
-    "seasonNumber": "A String", # The number assigned to the season within a series. Only available on TV Avails. Example: "1".
-    "episodeNumber": "A String", # The number assigned to the episode within a season. Only available on TV Avails. Example: "3".
+    "releaseDate": "A String", # Release date of the Title in earliest released territory.
+        # Typically it is just the year, but it is free-form as per EMA spec.
+        # Examples: "1979", "Oct 2014"
+    "episodeAltId": "A String", # Other identifier referring to the episode, as defined by partner.
+        # Only available on TV avails.
+        # Example: "rs_googlers_s1_3".
+    "episodeTitleInternalAlias": "A String", # OPTIONAL.TV Only. Title used by involved parties to refer to this episode.
+        # Only available on TV Avails.
+        # Example: "Coding at Google".
+    "episodeNumber": "A String", # The number assigned to the episode within a season.
+        # Only available on TV Avails.
+        # Example: "3".
+    "end": "A String", # End of term in YYYY-MM-DD format in the timezone of the country
+        # of the Avail.
+        # "Open" if no end date is available.
+        # Example: "2019-02-17"
+    "altId": "A String", # Other identifier referring to the Edit, as defined by partner.
+        # Example: "GOOGLER_2006"
+    "ratingSystem": "A String", # Rating system applied to the version of title within territory
+        # of Avail.
+        # Rating systems should be formatted as per
+        # [EMA ratings spec](http://www.movielabs.com/md/ratings/)
+        # Example: "MPAA"
+    "start": "A String", # Start of term in YYYY-MM-DD format in the timezone of the
+        # country of the Avail.
+        # Example: "2013-05-14".
+    "titleInternalAlias": "A String", # Title used by involved parties to refer to this content.
+        # Example: "Googlers, The".
+        # Only available on Movie Avails.
+    "seasonTitleInternalAlias": "A String", # Title used by involved parties to refer to this season.
+        # Only available on TV Avails.
+        # Example: "Googlers, The".
+    "territory": "A String", # ISO 3166-1 alpha-2 country code for the country or territory
+        # of this Avail.
+        # For Avails, we use Territory in lieu of Country to comply with
+        # EMA specifications.
+        # But please note that Territory and Country identify the same thing.
+        # Example: "US".
+    "productId": "A String", # Edit Identifier. This should be the Edit Level EIDR.
+        # Example: "10.2340/1489-49A2-3956-4B2D-FE16-6"
+    "storeLanguage": "A String", # Spoken language of the intended audience.
+        # Language shall be encoded in accordance with RFC 5646.
+        # Example: "fr".
+    "seasonNumber": "A String", # The number assigned to the season within a series.
+        # Only available on TV Avails.
+        # Example: "1".
+    "availId": "A String", # ID internally generated by Google to uniquely identify an Avail.
+        # Not part of EMA Specs.
     "formatProfile": "A String", # Indicates the format profile covered by the transaction.
-    "priceValue": "A String", # Value to be applied to the pricing type. Example: "4" or "2.99"
-    "videoId": "A String", # Google-generated ID identifying the video linked to this Avail, once delivered. Not part of EMA Specs. Example: 'gtry456_xc'
-    "ratingReason": "A String", # Value representing the rating reason. Rating reasons should be formatted as per [EMA ratings spec](http://www.movielabs.com/md/ratings/) and comma-separated for inclusion of multiple reasons. Example: "L, S, V"
-    "captionExemption": "A String", # Communicating an exempt category as defined by FCC regulations. It is not required for non-US Avails. Example: "1"
+    "priceValue": "A String", # Value to be applied to the pricing type.
+        # Example: "4" or "2.99"
+    "videoId": "A String", # Google-generated ID identifying the video linked to this Avail, once
+        # delivered.
+        # Not part of EMA Specs.
+        # Example: 'gtry456_xc'
+    "captionExemption": "A String", # Communicating an exempt category as defined by FCC regulations.
+        # It is not required for non-US Avails.
+        # Example: "1"
+    "ratingReason": "A String", # Value representing the rating reason.
+        # Rating reasons should be formatted as per
+        # [EMA ratings spec](http://www.movielabs.com/md/ratings/)
+        # and comma-separated for inclusion of multiple reasons.
+        # Example: "L, S, V"
     "workType": "A String", # Work type as enumerated in EMA.
-    "ratingValue": "A String", # Value representing the rating. Ratings should be formatted as per http://www.movielabs.com/md/ratings/ Example: "PG"
-    "displayName": "A String", # The name of the studio that owns the Edit referred in the Avail. This is the equivalent of `studio_name` in other resources, but it follows the EMA nomenclature. Example: "Google Films".
-    "seasonAltId": "A String", # Other identifier referring to the season, as defined by partner. Only available on TV avails. Example: "rs_googlers_s1".
-    "contentId": "A String", # Title Identifier. This should be the Title Level EIDR. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-    "ratingSystem": "A String", # Rating system applied to the version of title within territory of Avail. Rating systems should be formatted as per [EMA ratings spec](http://www.movielabs.com/md/ratings/) Example: "MPAA"
-    "encodeId": "A String", # Manifestation Identifier. This should be the Manifestation Level EIDR. Example: "10.2340/1489-49A2-3956-4B2D-FE16-7"
-    "seriesTitleInternalAlias": "A String", # Title used by involved parties to refer to this series. Only available on TV Avails. Example: "Googlers, The".
-    "suppressionLiftDate": "A String", # First date an Edit could be publically announced as becoming available at a specific future date in territory of Avail. *Not* the Avail start date or pre-order start date. Format is YYYY-MM-DD. Only available for pre-orders. Example: "2012-12-10"
-    "priceType": "A String", # Type of pricing that should be applied to this Avail based on how the partner classify them. Example: "Tier", "WSP", "SRP", or "Category".
+    "displayName": "A String", # The name of the studio that owns the Edit referred in the Avail.
+        # This is the equivalent of `studio_name` in other resources, but it follows
+        # the EMA nomenclature.
+        # Example: "Google Films".
+    "seasonAltId": "A String", # Other identifier referring to the season, as defined by partner.
+        # Only available on TV avails.
+        # Example: "rs_googlers_s1".
+    "contentId": "A String", # Title Identifier. This should be the Title Level EIDR.
+        # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
+    "seriesAltId": "A String", # Other identifier referring to the series, as defined by partner.
+        # Only available on TV avails.
+        # Example: "rs_googlers".
+    "ratingValue": "A String", # Value representing the rating.
+        # Ratings should be formatted as per http://www.movielabs.com/md/ratings/
+        # Example: "PG"
+    "seriesTitleInternalAlias": "A String", # Title used by involved parties to refer to this series.
+        # Only available on TV Avails.
+        # Example: "Googlers, The".
+    "suppressionLiftDate": "A String", # First date an Edit could be publically announced as becoming
+        # available at a specific future date in territory of Avail.
+        # *Not* the Avail start date or pre-order start date.
+        # Format is YYYY-MM-DD.
+        # Only available for pre-orders.
+        # Example: "2012-12-10"
+    "priceType": "A String", # Type of pricing that should be applied to this Avail
+        # based on how the partner classify them.
+        # Example: "Tier", "WSP", "SRP", or "Category".
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(accountId, pphNames=None, pageSize=None, territories=None, altIds=None, x__xgafv=None, title=None, studioNames=None, pageToken=None, videoIds=None, altId=None)</code>
-  <pre>List Avails owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.
+  <pre>List Avails owned or managed by the partner.
+
+See _Authentication and Authorization rules_ and
+_List methods rules_ for more information about this method.
 
 Args:
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   pphNames: string, See _List methods rules_ for info about this field. (repeated)
   pageSize: integer, See _List methods rules_ for info about this field.
-  territories: string, Filter Avails that match (case-insensitive) any of the given country codes, using the "ISO 3166-1 alpha-2" format (examples: "US", "us", "Us"). (repeated)
+  territories: string, Filter Avails that match (case-insensitive) any of the given country codes,
+using the "ISO 3166-1 alpha-2" format (examples: "US", "us", "Us"). (repeated)
   altIds: string, Filter Avails that match (case-insensitive) any of the given partner-specific custom ids. (repeated)
   x__xgafv: string, V1 error format.
-  title: string, Filter that matches Avails with a `title_internal_alias`, `series_title_internal_alias`, `season_title_internal_alias`, or `episode_title_internal_alias` that contains the given case-insensitive title.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  title: string, Filter that matches Avails with a `title_internal_alias`,
+`series_title_internal_alias`, `season_title_internal_alias`,
+or `episode_title_internal_alias` that contains the given
+case-insensitive title.
   studioNames: string, See _List methods rules_ for info about this field. (repeated)
   pageToken: string, See _List methods rules_ for info about this field.
   videoIds: string, Filter Avails that match any of the given `video_id`s. (repeated)
-  altId: string, Filter Avails that match a case-insensitive, partner-specific custom id. NOTE: this field is deprecated and will be removed on V2; `alt_ids` should be used instead.
+  altId: string, Filter Avails that match a case-insensitive, partner-specific custom id.
+NOTE: this field is deprecated and will be removed on V2; `alt_ids`
+should be used instead.
 
 Returns:
   An object of the form:
@@ -159,42 +246,114 @@
     "nextPageToken": "A String", # See _List methods rules_ for info about this field.
     "totalSize": 42, # See _List methods rules_ for more information about this field.
     "avails": [ # List of Avails that match the request criteria.
-      { # An Avail describes the Availability Window of a specific Edit in a given country, which means the period Google is allowed to sell or rent the Edit. Avails are exposed in EMA format Version 1.6b (available at http://www.movielabs.com/md/avails/) Studios can see the Avails for the Titles they own. Post-production houses cannot see any Avails.
-        "pphNames": [ # Name of the post-production houses that manage the Avail. Not part of EMA Specs.
+      { # An Avail describes the Availability Window of a specific Edit in a given
+          # country, which means the period Google is allowed to sell or rent the Edit.
+          #
+          # Avails are exposed in EMA format Version 1.6b (available at
+          # http://www.movielabs.com/md/avails/)
+          #
+          # Studios can see the Avails for the Titles they own.
+          # Post-production houses cannot see any Avails.
+        "pphNames": [ # Name of the post-production houses that manage the Avail.
+            # Not part of EMA Specs.
           "A String",
         ],
         "licenseType": "A String", # Type of transaction.
+        "encodeId": "A String", # Manifestation Identifier. This should be the Manifestation
+            # Level EIDR.
+            # Example: "10.2340/1489-49A2-3956-4B2D-FE16-7"
         "captionIncluded": True or False, # Communicating if caption file will be delivered.
-        "releaseDate": "A String", # Release date of the Title in earliest released territory. Typically it is just the year, but it is free-form as per EMA spec. Examples: "1979", "Oct 2014"
-        "episodeAltId": "A String", # Other identifier referring to the episode, as defined by partner. Only available on TV avails. Example: "rs_googlers_s1_3".
-        "episodeTitleInternalAlias": "A String", # OPTIONAL.TV Only. Title used by involved parties to refer to this episode. Only available on TV Avails. Example: "Coding at Google".
-        "availId": "A String", # ID internally generated by Google to uniquely identify an Avail. Not part of EMA Specs.
-        "end": "A String", # End of term in YYYY-MM-DD format in the timezone of the country of the Avail. "Open" if no end date is available. Example: "2019-02-17"
-        "altId": "A String", # Other identifier referring to the Edit, as defined by partner. Example: "GOOGLER_2006"
-        "seriesAltId": "A String", # Other identifier referring to the series, as defined by partner. Only available on TV avails. Example: "rs_googlers".
-        "start": "A String", # Start of term in YYYY-MM-DD format in the timezone of the country of the Avail. Example: "2013-05-14".
-        "titleInternalAlias": "A String", # Title used by involved parties to refer to this content. Example: "Googlers, The". Only available on Movie Avails.
-        "seasonTitleInternalAlias": "A String", # Title used by involved parties to refer to this season. Only available on TV Avails. Example: "Googlers, The".
-        "territory": "A String", # ISO 3166-1 alpha-2 country code for the country or territory of this Avail. For Avails, we use Territory in lieu of Country to comply with EMA specifications. But please note that Territory and Country identify the same thing. Example: "US".
-        "productId": "A String", # Edit Identifier. This should be the Edit Level EIDR. Example: "10.2340/1489-49A2-3956-4B2D-FE16-6"
-        "storeLanguage": "A String", # Spoken language of the intended audience. Language shall be encoded in accordance with RFC 5646. Example: "fr".
-        "seasonNumber": "A String", # The number assigned to the season within a series. Only available on TV Avails. Example: "1".
-        "episodeNumber": "A String", # The number assigned to the episode within a season. Only available on TV Avails. Example: "3".
+        "releaseDate": "A String", # Release date of the Title in earliest released territory.
+            # Typically it is just the year, but it is free-form as per EMA spec.
+            # Examples: "1979", "Oct 2014"
+        "episodeAltId": "A String", # Other identifier referring to the episode, as defined by partner.
+            # Only available on TV avails.
+            # Example: "rs_googlers_s1_3".
+        "episodeTitleInternalAlias": "A String", # OPTIONAL.TV Only. Title used by involved parties to refer to this episode.
+            # Only available on TV Avails.
+            # Example: "Coding at Google".
+        "episodeNumber": "A String", # The number assigned to the episode within a season.
+            # Only available on TV Avails.
+            # Example: "3".
+        "end": "A String", # End of term in YYYY-MM-DD format in the timezone of the country
+            # of the Avail.
+            # "Open" if no end date is available.
+            # Example: "2019-02-17"
+        "altId": "A String", # Other identifier referring to the Edit, as defined by partner.
+            # Example: "GOOGLER_2006"
+        "ratingSystem": "A String", # Rating system applied to the version of title within territory
+            # of Avail.
+            # Rating systems should be formatted as per
+            # [EMA ratings spec](http://www.movielabs.com/md/ratings/)
+            # Example: "MPAA"
+        "start": "A String", # Start of term in YYYY-MM-DD format in the timezone of the
+            # country of the Avail.
+            # Example: "2013-05-14".
+        "titleInternalAlias": "A String", # Title used by involved parties to refer to this content.
+            # Example: "Googlers, The".
+            # Only available on Movie Avails.
+        "seasonTitleInternalAlias": "A String", # Title used by involved parties to refer to this season.
+            # Only available on TV Avails.
+            # Example: "Googlers, The".
+        "territory": "A String", # ISO 3166-1 alpha-2 country code for the country or territory
+            # of this Avail.
+            # For Avails, we use Territory in lieu of Country to comply with
+            # EMA specifications.
+            # But please note that Territory and Country identify the same thing.
+            # Example: "US".
+        "productId": "A String", # Edit Identifier. This should be the Edit Level EIDR.
+            # Example: "10.2340/1489-49A2-3956-4B2D-FE16-6"
+        "storeLanguage": "A String", # Spoken language of the intended audience.
+            # Language shall be encoded in accordance with RFC 5646.
+            # Example: "fr".
+        "seasonNumber": "A String", # The number assigned to the season within a series.
+            # Only available on TV Avails.
+            # Example: "1".
+        "availId": "A String", # ID internally generated by Google to uniquely identify an Avail.
+            # Not part of EMA Specs.
         "formatProfile": "A String", # Indicates the format profile covered by the transaction.
-        "priceValue": "A String", # Value to be applied to the pricing type. Example: "4" or "2.99"
-        "videoId": "A String", # Google-generated ID identifying the video linked to this Avail, once delivered. Not part of EMA Specs. Example: 'gtry456_xc'
-        "ratingReason": "A String", # Value representing the rating reason. Rating reasons should be formatted as per [EMA ratings spec](http://www.movielabs.com/md/ratings/) and comma-separated for inclusion of multiple reasons. Example: "L, S, V"
-        "captionExemption": "A String", # Communicating an exempt category as defined by FCC regulations. It is not required for non-US Avails. Example: "1"
+        "priceValue": "A String", # Value to be applied to the pricing type.
+            # Example: "4" or "2.99"
+        "videoId": "A String", # Google-generated ID identifying the video linked to this Avail, once
+            # delivered.
+            # Not part of EMA Specs.
+            # Example: 'gtry456_xc'
+        "captionExemption": "A String", # Communicating an exempt category as defined by FCC regulations.
+            # It is not required for non-US Avails.
+            # Example: "1"
+        "ratingReason": "A String", # Value representing the rating reason.
+            # Rating reasons should be formatted as per
+            # [EMA ratings spec](http://www.movielabs.com/md/ratings/)
+            # and comma-separated for inclusion of multiple reasons.
+            # Example: "L, S, V"
         "workType": "A String", # Work type as enumerated in EMA.
-        "ratingValue": "A String", # Value representing the rating. Ratings should be formatted as per http://www.movielabs.com/md/ratings/ Example: "PG"
-        "displayName": "A String", # The name of the studio that owns the Edit referred in the Avail. This is the equivalent of `studio_name` in other resources, but it follows the EMA nomenclature. Example: "Google Films".
-        "seasonAltId": "A String", # Other identifier referring to the season, as defined by partner. Only available on TV avails. Example: "rs_googlers_s1".
-        "contentId": "A String", # Title Identifier. This should be the Title Level EIDR. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-        "ratingSystem": "A String", # Rating system applied to the version of title within territory of Avail. Rating systems should be formatted as per [EMA ratings spec](http://www.movielabs.com/md/ratings/) Example: "MPAA"
-        "encodeId": "A String", # Manifestation Identifier. This should be the Manifestation Level EIDR. Example: "10.2340/1489-49A2-3956-4B2D-FE16-7"
-        "seriesTitleInternalAlias": "A String", # Title used by involved parties to refer to this series. Only available on TV Avails. Example: "Googlers, The".
-        "suppressionLiftDate": "A String", # First date an Edit could be publically announced as becoming available at a specific future date in territory of Avail. *Not* the Avail start date or pre-order start date. Format is YYYY-MM-DD. Only available for pre-orders. Example: "2012-12-10"
-        "priceType": "A String", # Type of pricing that should be applied to this Avail based on how the partner classify them. Example: "Tier", "WSP", "SRP", or "Category".
+        "displayName": "A String", # The name of the studio that owns the Edit referred in the Avail.
+            # This is the equivalent of `studio_name` in other resources, but it follows
+            # the EMA nomenclature.
+            # Example: "Google Films".
+        "seasonAltId": "A String", # Other identifier referring to the season, as defined by partner.
+            # Only available on TV avails.
+            # Example: "rs_googlers_s1".
+        "contentId": "A String", # Title Identifier. This should be the Title Level EIDR.
+            # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
+        "seriesAltId": "A String", # Other identifier referring to the series, as defined by partner.
+            # Only available on TV avails.
+            # Example: "rs_googlers".
+        "ratingValue": "A String", # Value representing the rating.
+            # Ratings should be formatted as per http://www.movielabs.com/md/ratings/
+            # Example: "PG"
+        "seriesTitleInternalAlias": "A String", # Title used by involved parties to refer to this series.
+            # Only available on TV Avails.
+            # Example: "Googlers, The".
+        "suppressionLiftDate": "A String", # First date an Edit could be publically announced as becoming
+            # available at a specific future date in territory of Avail.
+            # *Not* the Avail start date or pre-order start date.
+            # Format is YYYY-MM-DD.
+            # Only available for pre-orders.
+            # Example: "2012-12-10"
+        "priceType": "A String", # Type of pricing that should be applied to this Avail
+            # based on how the partner classify them.
+            # Example: "Tier", "WSP", "SRP", or "Category".
       },
     ],
   }</pre>
diff --git a/docs/dyn/playmoviespartner_v1.accounts.html b/docs/dyn/playmoviespartner_v1.accounts.html
index 039e2fa..6945a9c 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.html
@@ -80,16 +80,6 @@
 <p class="firstline">Returns the avails Resource.</p>
 
 <p class="toc_element">
-  <code><a href="playmoviespartner_v1.accounts.components.html">components()</a></code>
-</p>
-<p class="firstline">Returns the components Resource.</p>
-
-<p class="toc_element">
-  <code><a href="playmoviespartner_v1.accounts.experienceLocales.html">experienceLocales()</a></code>
-</p>
-<p class="firstline">Returns the experienceLocales Resource.</p>
-
-<p class="toc_element">
   <code><a href="playmoviespartner_v1.accounts.orders.html">orders()</a></code>
 </p>
 <p class="firstline">Returns the orders Resource.</p>
diff --git a/docs/dyn/playmoviespartner_v1.accounts.orders.html b/docs/dyn/playmoviespartner_v1.accounts.orders.html
index ea1a20d..9b01004 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.orders.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.orders.html
@@ -76,70 +76,114 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(accountId, orderId, x__xgafv=None)</a></code></p>
-<p class="firstline">Get an Order given its id. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.</p>
+<p class="firstline">Get an Order given its id.</p>
 <p class="toc_element">
   <code><a href="#list">list(accountId, pphNames=None, pageSize=None, x__xgafv=None, studioNames=None, pageToken=None, customId=None, status=None, videoIds=None, name=None)</a></code></p>
-<p class="firstline">List Orders owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.</p>
+<p class="firstline">List Orders owned or managed by the partner.</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, orderId, x__xgafv=None)</code>
-  <pre>Get an Order given its id. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.
+  <pre>Get an Order given its id.
+
+See _Authentication and Authorization rules_ and
+_Get methods rules_ for more information about this method.
 
 Args:
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   orderId: string, REQUIRED. Order ID. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An Order tracks the fulfillment of an Edit when delivered using the legacy, non-component-based delivery. Each Order is uniquely identified by an `order_id`, which is generated by Google. Externally, Orders can also be identified by partners using its `custom_id` (when provided).
+    { # An Order tracks the fulfillment of an Edit when delivered using the
+      # legacy, non-component-based delivery.
+      #
+      # Each Order is uniquely identified by an `order_id`, which is generated
+      # by Google.
+      #
+      # Externally, Orders can also be identified by partners using its `custom_id`
+      # (when provided).
     "status": "A String", # High-level status of the order.
-    "channelId": "A String", # YouTube Channel ID that should be used to fulfill the Order. Example: "UCRG64darCZhb".
+    "channelId": "A String", # YouTube Channel ID that should be used to fulfill the Order.
+        # Example: "UCRG64darCZhb".
     "studioName": "A String", # Name of the studio that owns the Edit ordered.
-    "rejectionNote": "A String", # Field explaining why an Order has been rejected. Example: "Trailer audio is 2ch mono, please re-deliver in stereo".
-    "episodeName": "A String", # Default Episode name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - Pilot".
+    "rejectionNote": "A String", # Field explaining why an Order has been rejected.
+        # Example: "Trailer audio is 2ch mono, please re-deliver in stereo".
+    "episodeName": "A String", # Default Episode name,
+        # usually in the language of the country of origin.
+        # Only available for TV Edits
+        # Example: "Googlers, The - Pilot".
     "receivedTime": "A String", # Timestamp when the Order was fulfilled.
-    "priority": 3.14, # Order priority, as defined by Google. The higher the value, the higher the priority. Example: 90
-    "customId": "A String", # ID that can be used to externally identify an Order. This ID is provided by partners when submitting the Avails. Example: 'GOOGLER_2006'
-    "channelName": "A String", # YouTube Channel Name that should be used to fulfill the Order. Example: "Google_channel".
+    "priority": 3.14, # Order priority, as defined by Google.
+        # The higher the value, the higher the priority.
+        # Example: 90
+    "customId": "A String", # ID that can be used to externally identify an Order.
+        # This ID is provided by partners when submitting the Avails.
+        # Example: 'GOOGLER_2006'
+    "channelName": "A String", # YouTube Channel Name that should be used to fulfill the Order.
+        # Example: "Google_channel".
     "type": "A String", # Type of the Edit linked to the Order.
-    "orderId": "A String", # ID internally generated by Google to uniquely identify an Order. Example: 'abcde12_x'
-    "videoId": "A String", # Google-generated ID identifying the video linked to this Order, once delivered. Example: 'gtry456_xc'.
+    "orderId": "A String", # ID internally generated by Google to uniquely identify an Order.
+        # Example: 'abcde12_x'
     "statusDetail": "A String", # Detailed status of the order
+    "videoId": "A String", # Google-generated ID identifying the video linked to this Order, once
+        # delivered.
+        # Example: 'gtry456_xc'.
     "approvedTime": "A String", # Timestamp when the Order was approved.
-    "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails linked to this Order.
-    "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-    "countries": [ # Countries where the Order is available, using the "ISO 3166-1 alpha-2" format (example: "US").
+    "name": "A String", # Default Edit name,
+        # usually in the language of the country of origin.
+        # Example: "Googlers, The".
+    "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails
+        # linked to this Order.
+    "countries": [ # Countries where the Order is available,
+        # using the "ISO 3166-1 alpha-2" format (example: "US").
       "A String",
     ],
     "normalizedPriority": "A String", # A simpler representation of the priority.
     "orderedTime": "A String", # Timestamp when the Order was created.
     "pphName": "A String", # Name of the post-production house that manages the Edit ordered.
-    "seasonName": "A String", # Default Season name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - A Brave New World".
-    "legacyPriority": "A String", # Legacy Order priority, as defined by Google. Example: 'P0'
-    "showName": "A String", # Default Show name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The".
+    "seasonName": "A String", # Default Season name,
+        # usually in the language of the country of origin.
+        # Only available for TV Edits
+        # Example: "Googlers, The - A Brave New World".
+    "legacyPriority": "A String", # Legacy Order priority, as defined by Google.
+        # Example: 'P0'
+    "showName": "A String", # Default Show name,
+        # usually in the language of the country of origin.
+        # Only available for TV Edits
+        # Example: "Googlers, The".
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(accountId, pphNames=None, pageSize=None, x__xgafv=None, studioNames=None, pageToken=None, customId=None, status=None, videoIds=None, name=None)</code>
-  <pre>List Orders owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.
+  <pre>List Orders owned or managed by the partner.
+
+See _Authentication and Authorization rules_ and
+_List methods rules_ for more information about this method.
 
 Args:
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   pphNames: string, See _List methods rules_ for info about this field. (repeated)
   pageSize: integer, See _List methods rules_ for info about this field.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   studioNames: string, See _List methods rules_ for info about this field. (repeated)
   pageToken: string, See _List methods rules_ for info about this field.
   customId: string, Filter Orders that match a case-insensitive, partner-specific custom id.
   status: string, Filter Orders that match one of the given status. (repeated)
   videoIds: string, Filter Orders that match any of the given `video_id`s. (repeated)
-  name: string, Filter that matches Orders with a `name`, `show`, `season` or `episode` that contains the given case-insensitive name.
+  name: string, Filter that matches Orders with a `name`, `show`, `season` or `episode`
+that contains the given case-insensitive name.
 
 Returns:
   An object of the form:
@@ -148,32 +192,63 @@
     "nextPageToken": "A String", # See _List methods rules_ for info about this field.
     "totalSize": 42, # See _List methods rules_ for more information about this field.
     "orders": [ # List of Orders that match the request criteria.
-      { # An Order tracks the fulfillment of an Edit when delivered using the legacy, non-component-based delivery. Each Order is uniquely identified by an `order_id`, which is generated by Google. Externally, Orders can also be identified by partners using its `custom_id` (when provided).
+      { # An Order tracks the fulfillment of an Edit when delivered using the
+          # legacy, non-component-based delivery.
+          #
+          # Each Order is uniquely identified by an `order_id`, which is generated
+          # by Google.
+          #
+          # Externally, Orders can also be identified by partners using its `custom_id`
+          # (when provided).
         "status": "A String", # High-level status of the order.
-        "channelId": "A String", # YouTube Channel ID that should be used to fulfill the Order. Example: "UCRG64darCZhb".
+        "channelId": "A String", # YouTube Channel ID that should be used to fulfill the Order.
+            # Example: "UCRG64darCZhb".
         "studioName": "A String", # Name of the studio that owns the Edit ordered.
-        "rejectionNote": "A String", # Field explaining why an Order has been rejected. Example: "Trailer audio is 2ch mono, please re-deliver in stereo".
-        "episodeName": "A String", # Default Episode name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - Pilot".
+        "rejectionNote": "A String", # Field explaining why an Order has been rejected.
+            # Example: "Trailer audio is 2ch mono, please re-deliver in stereo".
+        "episodeName": "A String", # Default Episode name,
+            # usually in the language of the country of origin.
+            # Only available for TV Edits
+            # Example: "Googlers, The - Pilot".
         "receivedTime": "A String", # Timestamp when the Order was fulfilled.
-        "priority": 3.14, # Order priority, as defined by Google. The higher the value, the higher the priority. Example: 90
-        "customId": "A String", # ID that can be used to externally identify an Order. This ID is provided by partners when submitting the Avails. Example: 'GOOGLER_2006'
-        "channelName": "A String", # YouTube Channel Name that should be used to fulfill the Order. Example: "Google_channel".
+        "priority": 3.14, # Order priority, as defined by Google.
+            # The higher the value, the higher the priority.
+            # Example: 90
+        "customId": "A String", # ID that can be used to externally identify an Order.
+            # This ID is provided by partners when submitting the Avails.
+            # Example: 'GOOGLER_2006'
+        "channelName": "A String", # YouTube Channel Name that should be used to fulfill the Order.
+            # Example: "Google_channel".
         "type": "A String", # Type of the Edit linked to the Order.
-        "orderId": "A String", # ID internally generated by Google to uniquely identify an Order. Example: 'abcde12_x'
-        "videoId": "A String", # Google-generated ID identifying the video linked to this Order, once delivered. Example: 'gtry456_xc'.
+        "orderId": "A String", # ID internally generated by Google to uniquely identify an Order.
+            # Example: 'abcde12_x'
         "statusDetail": "A String", # Detailed status of the order
+        "videoId": "A String", # Google-generated ID identifying the video linked to this Order, once
+            # delivered.
+            # Example: 'gtry456_xc'.
         "approvedTime": "A String", # Timestamp when the Order was approved.
-        "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails linked to this Order.
-        "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-        "countries": [ # Countries where the Order is available, using the "ISO 3166-1 alpha-2" format (example: "US").
+        "name": "A String", # Default Edit name,
+            # usually in the language of the country of origin.
+            # Example: "Googlers, The".
+        "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails
+            # linked to this Order.
+        "countries": [ # Countries where the Order is available,
+            # using the "ISO 3166-1 alpha-2" format (example: "US").
           "A String",
         ],
         "normalizedPriority": "A String", # A simpler representation of the priority.
         "orderedTime": "A String", # Timestamp when the Order was created.
         "pphName": "A String", # Name of the post-production house that manages the Edit ordered.
-        "seasonName": "A String", # Default Season name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - A Brave New World".
-        "legacyPriority": "A String", # Legacy Order priority, as defined by Google. Example: 'P0'
-        "showName": "A String", # Default Show name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The".
+        "seasonName": "A String", # Default Season name,
+            # usually in the language of the country of origin.
+            # Only available for TV Edits
+            # Example: "Googlers, The - A Brave New World".
+        "legacyPriority": "A String", # Legacy Order priority, as defined by Google.
+            # Example: 'P0'
+        "showName": "A String", # Default Show name,
+            # usually in the language of the country of origin.
+            # Only available for TV Edits
+            # Example: "Googlers, The".
       },
     ],
   }</pre>
diff --git a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
index a041976..0708953 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
@@ -76,53 +76,93 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(accountId, videoId, country, x__xgafv=None)</a></code></p>
-<p class="firstline">Get a StoreInfo given its video id and country. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.</p>
+<p class="firstline">Get a StoreInfo given its video id and country.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(accountId, videoId, country, x__xgafv=None)</code>
-  <pre>Get a StoreInfo given its video id and country. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.
+  <pre>Get a StoreInfo given its video id and country.
+
+See _Authentication and Authorization rules_ and
+_Get methods rules_ for more information about this method.
 
 Args:
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   videoId: string, REQUIRED. Video ID. (required)
   country: string, REQUIRED. Edit country. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Information about a playable sequence (video) associated with an Edit and available at the Google Play Store. Internally, each StoreInfo is uniquely identified by a `video_id` and `country`. Externally, Title-level EIDR or Edit-level EIDR, if provided, can also be used to identify a specific title or edit in a country.
+    { # Information about a playable sequence (video) associated with an Edit
+      # and available at the Google Play Store.
+      #
+      # Internally, each StoreInfo is uniquely identified by a `video_id`
+      # and `country`.
+      #
+      # Externally, Title-level EIDR or Edit-level EIDR, if provided,
+      # can also be used to identify a specific title or edit in a country.
     "pphNames": [ # Name of the post-production houses that manage the Edit.
       "A String",
     ],
     "hasEstOffer": True or False, # Whether the Edit has a EST offer.
     "studioName": "A String", # Name of the studio that owns the Edit ordered.
     "hasHdOffer": True or False, # Whether the Edit has a HD offer.
-    "editLevelEidr": "A String", # Edit-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-    "episodeNumber": "A String", # The number assigned to the episode within a season. Only available on TV Edits. Example: "1".
-    "mid": "A String", # Knowledge Graph ID associated to this Edit, if available. This ID links the Edit to its knowledge entity, externally accessible at http://freebase.com. In the absense of Title EIDR or Edit EIDR, this ID helps link together multiple Edits across countries. Example: '/m/0ffx29'
+    "editLevelEidr": "A String", # Edit-level EIDR ID.
+        # Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
+    "episodeNumber": "A String", # The number assigned to the episode within a season.
+        # Only available on TV Edits.
+        # Example: "1".
+    "mid": "A String", # Knowledge Graph ID associated to this Edit, if available.
+        # This ID links the Edit to its knowledge entity, externally accessible
+        # at http://freebase.com.
+        # In the absense of Title EIDR or Edit EIDR, this ID helps link together
+        # multiple Edits across countries.
+        # Example: '/m/0ffx29'
     "hasAudio51": True or False, # Whether the Edit has a 5.1 channel audio track.
     "hasInfoCards": True or False, # Whether the Edit has info cards.
     "type": "A String", # Edit type, like Movie, Episode or Season.
-    "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit. Only available for TV Edits. Example: 'ster23ex'
-    "titleLevelEidr": "A String", # Title-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
+    "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
+    "titleLevelEidr": "A String", # Title-level EIDR ID.
+        # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
     "hasSdOffer": True or False, # Whether the Edit has a SD offer.
-    "seasonNumber": "A String", # The number assigned to the season within a show. Only available on TV Edits. Example: "1".
+    "seasonNumber": "A String", # The number assigned to the season within a show.
+        # Only available on TV Edits.
+        # Example: "1".
     "liveTime": "A String", # Timestamp when the Edit went live on the Store.
-    "trailerId": "A String", # Google-generated ID identifying the trailer linked to the Edit. Example: 'bhd_4e_cx'
-    "videoId": "A String", # Google-generated ID identifying the video linked to the Edit. Example: 'gtry456_xc'
+    "trailerId": "A String", # Google-generated ID identifying the trailer linked to the Edit.
+        # Example: 'bhd_4e_cx'
+    "videoId": "A String", # Google-generated ID identifying the video linked to the Edit.
+        # Example: 'gtry456_xc'
     "subtitles": [ # Subtitles available for this Edit.
       "A String",
     ],
-    "showId": "A String", # Google-generated ID identifying the show linked to the Edit. Only available for TV Edits. Example: 'et2hsue_x'
-    "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-    "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country code. Example: "US".
-    "seasonName": "A String", # Default Season name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - A Brave New World".
+    "showId": "A String", # Google-generated ID identifying the show linked to the Edit.
+        # Only available for TV Edits.
+        # Example: 'et2hsue_x'
+    "name": "A String", # Default Edit name, usually in the language of the country of
+        # origin.
+        # Example: "Googlers, The".
+    "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country
+        # code.
+        # Example: "US".
+    "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
+        # Only available for TV Edits.
+        # Example: 'ster23ex'
+    "seasonName": "A String", # Default Season name, usually in the language of the country of
+        # origin.
+        # Only available for TV Edits
+        # Example: "Googlers, The - A Brave New World".
     "audioTracks": [ # Audio tracks available for this Edit.
       "A String",
     ],
-    "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
-    "showName": "A String", # Default Show name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The".
+    "showName": "A String", # Default Show name, usually in the language of the country of
+        # origin.
+        # Only available for TV Edits
+        # Example: "Googlers, The".
   }</pre>
 </div>
 
diff --git a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
index 932843f..dc0c19f 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
@@ -81,69 +81,113 @@
 
 <p class="toc_element">
   <code><a href="#list">list(accountId, pphNames=None, pageSize=None, x__xgafv=None, seasonIds=None, studioNames=None, pageToken=None, videoId=None, videoIds=None, name=None, countries=None, mids=None)</a></code></p>
-<p class="firstline">List StoreInfos owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.</p>
+<p class="firstline">List StoreInfos owned or managed by the partner.</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, pphNames=None, pageSize=None, x__xgafv=None, seasonIds=None, studioNames=None, pageToken=None, videoId=None, videoIds=None, name=None, countries=None, mids=None)</code>
-  <pre>List StoreInfos owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.
+  <pre>List StoreInfos owned or managed by the partner.
+
+See _Authentication and Authorization rules_ and
+_List methods rules_ for more information about this method.
 
 Args:
   accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
   pphNames: string, See _List methods rules_ for info about this field. (repeated)
   pageSize: integer, See _List methods rules_ for info about this field.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   seasonIds: string, Filter StoreInfos that match any of the given `season_id`s. (repeated)
   studioNames: string, See _List methods rules_ for info about this field. (repeated)
   pageToken: string, See _List methods rules_ for info about this field.
-  videoId: string, Filter StoreInfos that match a given `video_id`. NOTE: this field is deprecated and will be removed on V2; `video_ids` should be used instead.
+  videoId: string, Filter StoreInfos that match a given `video_id`.
+NOTE: this field is deprecated and will be removed on V2; `video_ids`
+should be used instead.
   videoIds: string, Filter StoreInfos that match any of the given `video_id`s. (repeated)
-  name: string, Filter that matches StoreInfos with a `name` or `show_name` that contains the given case-insensitive name.
-  countries: string, Filter StoreInfos that match (case-insensitive) any of the given country codes, using the "ISO 3166-1 alpha-2" format (examples: "US", "us", "Us"). (repeated)
+  name: string, Filter that matches StoreInfos with a `name` or `show_name`
+that contains the given case-insensitive name.
+  countries: string, Filter StoreInfos that match (case-insensitive) any of the given country
+codes, using the "ISO 3166-1 alpha-2" format (examples: "US", "us", "Us"). (repeated)
   mids: string, Filter StoreInfos that match any of the given `mid`s. (repeated)
 
 Returns:
   An object of the form:
 
     { # Response to the 'ListStoreInfos' method.
+    "nextPageToken": "A String", # See 'List methods rules' for info about this field.
     "storeInfos": [ # List of StoreInfos that match the request criteria.
-      { # Information about a playable sequence (video) associated with an Edit and available at the Google Play Store. Internally, each StoreInfo is uniquely identified by a `video_id` and `country`. Externally, Title-level EIDR or Edit-level EIDR, if provided, can also be used to identify a specific title or edit in a country.
+      { # Information about a playable sequence (video) associated with an Edit
+          # and available at the Google Play Store.
+          #
+          # Internally, each StoreInfo is uniquely identified by a `video_id`
+          # and `country`.
+          #
+          # Externally, Title-level EIDR or Edit-level EIDR, if provided,
+          # can also be used to identify a specific title or edit in a country.
         "pphNames": [ # Name of the post-production houses that manage the Edit.
           "A String",
         ],
         "hasEstOffer": True or False, # Whether the Edit has a EST offer.
         "studioName": "A String", # Name of the studio that owns the Edit ordered.
         "hasHdOffer": True or False, # Whether the Edit has a HD offer.
-        "editLevelEidr": "A String", # Edit-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-        "episodeNumber": "A String", # The number assigned to the episode within a season. Only available on TV Edits. Example: "1".
-        "mid": "A String", # Knowledge Graph ID associated to this Edit, if available. This ID links the Edit to its knowledge entity, externally accessible at http://freebase.com. In the absense of Title EIDR or Edit EIDR, this ID helps link together multiple Edits across countries. Example: '/m/0ffx29'
+        "editLevelEidr": "A String", # Edit-level EIDR ID.
+            # Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
+        "episodeNumber": "A String", # The number assigned to the episode within a season.
+            # Only available on TV Edits.
+            # Example: "1".
+        "mid": "A String", # Knowledge Graph ID associated to this Edit, if available.
+            # This ID links the Edit to its knowledge entity, externally accessible
+            # at http://freebase.com.
+            # In the absense of Title EIDR or Edit EIDR, this ID helps link together
+            # multiple Edits across countries.
+            # Example: '/m/0ffx29'
         "hasAudio51": True or False, # Whether the Edit has a 5.1 channel audio track.
         "hasInfoCards": True or False, # Whether the Edit has info cards.
         "type": "A String", # Edit type, like Movie, Episode or Season.
-        "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit. Only available for TV Edits. Example: 'ster23ex'
-        "titleLevelEidr": "A String", # Title-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
+        "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
+        "titleLevelEidr": "A String", # Title-level EIDR ID.
+            # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
         "hasSdOffer": True or False, # Whether the Edit has a SD offer.
-        "seasonNumber": "A String", # The number assigned to the season within a show. Only available on TV Edits. Example: "1".
+        "seasonNumber": "A String", # The number assigned to the season within a show.
+            # Only available on TV Edits.
+            # Example: "1".
         "liveTime": "A String", # Timestamp when the Edit went live on the Store.
-        "trailerId": "A String", # Google-generated ID identifying the trailer linked to the Edit. Example: 'bhd_4e_cx'
-        "videoId": "A String", # Google-generated ID identifying the video linked to the Edit. Example: 'gtry456_xc'
+        "trailerId": "A String", # Google-generated ID identifying the trailer linked to the Edit.
+            # Example: 'bhd_4e_cx'
+        "videoId": "A String", # Google-generated ID identifying the video linked to the Edit.
+            # Example: 'gtry456_xc'
         "subtitles": [ # Subtitles available for this Edit.
           "A String",
         ],
-        "showId": "A String", # Google-generated ID identifying the show linked to the Edit. Only available for TV Edits. Example: 'et2hsue_x'
-        "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-        "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country code. Example: "US".
-        "seasonName": "A String", # Default Season name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The - A Brave New World".
+        "showId": "A String", # Google-generated ID identifying the show linked to the Edit.
+            # Only available for TV Edits.
+            # Example: 'et2hsue_x'
+        "name": "A String", # Default Edit name, usually in the language of the country of
+            # origin.
+            # Example: "Googlers, The".
+        "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country
+            # code.
+            # Example: "US".
+        "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
+            # Only available for TV Edits.
+            # Example: 'ster23ex'
+        "seasonName": "A String", # Default Season name, usually in the language of the country of
+            # origin.
+            # Only available for TV Edits
+            # Example: "Googlers, The - A Brave New World".
         "audioTracks": [ # Audio tracks available for this Edit.
           "A String",
         ],
-        "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
-        "showName": "A String", # Default Show name, usually in the language of the country of origin. Only available for TV Edits Example: "Googlers, The".
+        "showName": "A String", # Default Show name, usually in the language of the country of
+            # origin.
+            # Only available for TV Edits
+            # Example: "Googlers, The".
       },
     ],
-    "nextPageToken": "A String", # See 'List methods rules' for info about this field.
     "totalSize": 42, # See _List methods rules_ for more information about this field.
   }</pre>
 </div>
diff --git a/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html b/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
index a84de44..8e2db46 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
@@ -76,48 +76,88 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#getforobserved">getforobserved(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Given one or more beacon observations, returns any beacon information and attachments accessible to your application. Authorize by using the [API key](https://developers.google.com/beacons/proximity/how-tos/authorizing#APIKey) for the application.</p>
+<p class="firstline">Given one or more beacon observations, returns any beacon information</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="getforobserved">getforobserved(body, x__xgafv=None)</code>
-  <pre>Given one or more beacon observations, returns any beacon information and attachments accessible to your application. Authorize by using the [API key](https://developers.google.com/beacons/proximity/how-tos/authorizing#APIKey) for the application.
+  <pre>Given one or more beacon observations, returns any beacon information
+and attachments accessible to your application. Authorize by using the
+[API key](https://developers.google.com/beacons/proximity/how-tos/authorizing#APIKey)
+for the application.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request for beacon and attachment information about beacons that a mobile client has encountered "in the wild".
-    "observations": [ # The beacons that the client has encountered. At least one must be given.
+{ # Request for beacon and attachment information about beacons that
+      # a mobile client has encountered "in the wild".
+    "observations": [ # The beacons that the client has encountered.
+        # At least one must be given.
       { # Represents one beacon observed once.
-        "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The ID advertised by the beacon the client has encountered. Clients may submit an Eddystone-EID `advertised_id`. If the client is not authorized to resolve the given Eddystone-EID, no data will be returned for that beacon. Required.
-          "type": "A String", # Specifies the identifier type. Required.
-          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+        "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The ID advertised by the beacon the client has encountered.
+            #
+            # If the submitted `advertised_id` type is Eddystone-EID, then the client
+            # must be authorized to resolve the given beacon. Otherwise no data will be
+            # returned for that beacon.
+            # Required.
+          "type": "A String", # Specifies the identifier type.
+              # Required.
+          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+              # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+              # requests, and will be so encoded (with padding) in responses. The base64
+              # encoding should be of the binary byte-stream and not any textual (such as
+              # hex) representation thereof.
+              # Required.
         },
-        "telemetry": "A String", # The array of telemetry bytes received from the beacon. The server is responsible for parsing it. This field may frequently be empty, as with a beacon that transmits telemetry only occasionally.
+        "telemetry": "A String", # The array of telemetry bytes received from the beacon. The server is
+            # responsible for parsing it. This field may frequently be empty, as
+            # with a beacon that transmits telemetry only occasionally.
         "timestampMs": "A String", # Time when the beacon was observed.
       },
     ],
-    "namespacedTypes": [ # Specifies what kind of attachments to include in the response. When given, the response will include only attachments of the given types. When empty, no attachments will be returned. Must be in the format namespace/type. Accepts `*` to specify all types in all namespaces. Optional.
+    "namespacedTypes": [ # Specifies what kind of attachments to include in the response.
+        # When given, the response will include only attachments of the given types.
+        # When empty, no attachments will be returned. Must be in the format
+        # <var>namespace/type</var>. Accepts `*` to specify all types in
+        # all namespaces owned by the client.
+        # Optional.
       "A String",
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Information about the requested beacons, optionally including attachment data.
-    "beacons": [ # Public information about beacons. May be empty if the request matched no beacons.
-      { # A subset of beacon information served via the `beaconinfo.getforobserved` method, which you call when users of your app encounter your beacons.
+    { # Information about the requested beacons, optionally including attachment
+      # data.
+    "beacons": [ # Public information about beacons.
+        # May be empty if the request matched no beacons.
+      { # A subset of beacon information served via the `beaconinfo.getforobserved`
+          # method, which you call when users of your app encounter your beacons.
         "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The ID advertised by the beacon.
-          "type": "A String", # Specifies the identifier type. Required.
-          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+          "type": "A String", # Specifies the identifier type.
+              # Required.
+          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+              # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+              # requests, and will be so encoded (with padding) in responses. The base64
+              # encoding should be of the binary byte-stream and not any textual (such as
+              # hex) representation thereof.
+              # Required.
         },
-        "attachments": [ # Attachments matching the type(s) requested. May be empty if no attachment types were requested, or if none matched.
-          { # A subset of attachment information served via the `beaconinfo.getforobserved` method, used when your users encounter your beacons.
+        "attachments": [ # Attachments matching the type(s) requested.
+            # May be empty if no attachment types were requested.
+          { # A subset of attachment information served via the
+              # `beaconinfo.getforobserved` method, used when your users encounter your
+              # beacons.
             "data": "A String", # An opaque data container for client-provided data.
-            "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to interpret the `data` field. Format is namespace/type, for example scrupulous-wombat-12345/welcome-message
+            "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to
+                # interpret the `data` field. Format is <var>namespace/type</var>, for
+                # example <code>scrupulous-wombat-12345/welcome-message</code>
           },
         ],
         "beaconName": "A String", # The name under which the beacon is registered.
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html b/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
index 167c1f6..19b3a55 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
@@ -75,27 +75,54 @@
 <h1><a href="proximitybeacon_v1beta1.html">Google Proximity Beacon API</a> . <a href="proximitybeacon_v1beta1.beacons.html">beacons</a> . <a href="proximitybeacon_v1beta1.beacons.attachments.html">attachments</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#batchDelete">batchDelete(beaconName, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes multiple attachments on a given beacon. This operation is permanent and cannot be undone. You can optionally specify `namespacedType` to choose which attachments should be deleted. If you do not specify `namespacedType`, all your attachments on the given beacon will be deleted. You also may explicitly specify `*/*` to delete all. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#batchDelete">batchDelete(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes multiple attachments on a given beacon. This operation is</p>
 <p class="toc_element">
-  <code><a href="#create">create(beaconName, body, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Associates the given data with the specified beacon. Attachment data must contain two parts:  </p>
+  <code><a href="#create">create(beaconName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Associates the given data with the specified beacon. Attachment data must</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(attachmentName, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the specified attachment for the given beacon. Each attachment has a unique attachment name (`attachmentName`) which is returned when you fetch the attachment data via this API. You specify this with the delete request to control which attachment is removed. This operation cannot be undone. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#delete">delete(attachmentName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the specified attachment for the given beacon. Each attachment has</p>
 <p class="toc_element">
-  <code><a href="#list">list(beaconName, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the attachments for the specified beacon that match the specified namespaced-type pattern. To control which namespaced types are returned, you add the `namespacedType` query parameter to the request. You must either use `*/*`, to return all attachments, or the namespace must be one of the ones returned from the `namespaces` endpoint. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#list">list(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the attachments for the specified beacon that match the specified</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="batchDelete">batchDelete(beaconName, namespacedType=None, projectId=None, x__xgafv=None)</code>
-  <pre>Deletes multiple attachments on a given beacon. This operation is permanent and cannot be undone. You can optionally specify `namespacedType` to choose which attachments should be deleted. If you do not specify `namespacedType`, all your attachments on the given beacon will be deleted. You also may explicitly specify `*/*` to delete all. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="batchDelete">batchDelete(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</code>
+  <pre>Deletes multiple attachments on a given beacon. This operation is
+permanent and cannot be undone.
+
+You can optionally specify `namespacedType` to choose which attachments
+should be deleted. If you do not specify `namespacedType`,  all your
+attachments on the given beacon will be deleted. You also may explicitly
+specify `*/*` to delete all.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, The beacon whose attachments should be deleted. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
-  namespacedType: string, Specifies the namespace and type of attachments to delete in `namespace/type` format. Accepts `*/*` to specify "all types in all namespaces". Optional.
-  projectId: string, The project id to delete beacon attachments under. This field can be used when "*" is specified to mean all attachment namespaces. Projects may have multiple attachments with multiple namespaces. If "*" is specified and the projectId string is empty, then the project making the request is used. Optional.
+  beaconName: string, The beacon whose attachments should be deleted. A beacon name has the
+format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast
+by the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  namespacedType: string, Specifies the namespace and type of attachments to delete in
+`namespace/type` format. Accepts `*/*` to specify
+"all types in all namespaces".
+Optional.
+  projectId: string, The project id to delete beacon attachments under. This field can be
+used when "*" is specified to mean all attachment namespaces. Projects
+may have multiple attachments with multiple namespaces. If "*" is
+specified and the projectId string is empty, then the project
+making the request is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -106,70 +133,180 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(beaconName, body, projectId=None, x__xgafv=None)</code>
-  <pre>Associates the given data with the specified beacon. Attachment data must contain two parts:  
-- A namespaced type. 
-- The actual attachment data itself.  The namespaced type consists of two parts, the namespace and the type. The namespace must be one of the values returned by the `namespaces` endpoint, while the type can be a string of any characters except for the forward slash (`/`) up to 100 characters in length. Attachment data can be up to 1024 bytes long. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="create">create(beaconName=None, body, projectId=None, x__xgafv=None)</code>
+  <pre>Associates the given data with the specified beacon. Attachment data must
+contain two parts:
+<ul>
+<li>A namespaced type.</li>
+<li>The actual attachment data itself.</li>
+</ul>
+The namespaced type consists of two parts, the namespace and the type.
+The namespace must be one of the values returned by the `namespaces`
+endpoint, while the type can be a string of any characters except for the
+forward slash (`/`) up to 100 characters in length.
+
+Attachment data can be up to 1024 bytes long.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Beacon on which the attachment should be created. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
+  beaconName: string, Beacon on which the attachment should be created. A beacon name has the
+format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast
+by the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Project-specific data associated with a beacon.
-    "data": "A String", # An opaque data container for client-provided data. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. Required.
-    "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format: beacons/beacon_id/attachments/attachment_id. Leave this empty on creation.
-    "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to interpret the `data` field. Format is namespace/type. Namespace provides type separation between clients. Type describes the type of `data`, for use by the client when parsing the `data` field. Required.
+    "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format:
+        # <code>beacons/<var>beacon_id</var>/attachments/<var>attachment_id</var></code>.
+        # Leave this empty on creation.
+    "creationTimeMs": "A String", # The UTC time when this attachment was created, in milliseconds since the
+        # UNIX epoch.
+    "data": "A String", # An opaque data container for client-provided data. Must be
+        # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+        # requests, and will be so encoded (with padding) in responses.
+        # Required.
+    "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to
+        # interpret the `data` field. Format is <var>namespace/type</var>. Namespace
+        # provides type separation between clients. Type describes the type of
+        # `data`, for use by the client when parsing the `data` field.
+        # Required.
   }
 
-  projectId: string, The project id of the project the attachment will belong to. If the project id is not specified then the project making the request is used. Optional.
+  projectId: string, The project id of the project the attachment will belong to. If
+the project id is not specified then the project making the request
+is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Project-specific data associated with a beacon.
-      "data": "A String", # An opaque data container for client-provided data. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. Required.
-      "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format: beacons/beacon_id/attachments/attachment_id. Leave this empty on creation.
-      "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to interpret the `data` field. Format is namespace/type. Namespace provides type separation between clients. Type describes the type of `data`, for use by the client when parsing the `data` field. Required.
+      "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format:
+          # <code>beacons/<var>beacon_id</var>/attachments/<var>attachment_id</var></code>.
+          # Leave this empty on creation.
+      "creationTimeMs": "A String", # The UTC time when this attachment was created, in milliseconds since the
+          # UNIX epoch.
+      "data": "A String", # An opaque data container for client-provided data. Must be
+          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+          # requests, and will be so encoded (with padding) in responses.
+          # Required.
+      "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to
+          # interpret the `data` field. Format is <var>namespace/type</var>. Namespace
+          # provides type separation between clients. Type describes the type of
+          # `data`, for use by the client when parsing the `data` field.
+          # Required.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(attachmentName, projectId=None, x__xgafv=None)</code>
-  <pre>Deletes the specified attachment for the given beacon. Each attachment has a unique attachment name (`attachmentName`) which is returned when you fetch the attachment data via this API. You specify this with the delete request to control which attachment is removed. This operation cannot be undone. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="delete">delete(attachmentName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Deletes the specified attachment for the given beacon. Each attachment has
+a unique attachment name (`attachmentName`) which is returned when you
+fetch the attachment data via this API. You specify this with the delete
+request to control which attachment is removed. This operation cannot be
+undone.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  attachmentName: string, The attachment name (`attachmentName`) of the attachment to remove. For example: `beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For Eddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be the beacon's current EID, or its "stable" Eddystone-UID. Required. (required)
-  projectId: string, The project id of the attachment to delete. If not provided, the project that is making the request is used. Optional.
+  attachmentName: string, The attachment name (`attachmentName`) of
+the attachment to remove. For example:
+`beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For
+Eddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be the
+beacon's current EID, or its "stable" Eddystone-UID.
+Required. (required)
+  projectId: string, The project id of the attachment to delete. If not provided, the project
+that is making the request is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(beaconName, namespacedType=None, projectId=None, x__xgafv=None)</code>
-  <pre>Returns the attachments for the specified beacon that match the specified namespaced-type pattern. To control which namespaced types are returned, you add the `namespacedType` query parameter to the request. You must either use `*/*`, to return all attachments, or the namespace must be one of the ones returned from the `namespaces` endpoint. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="list">list(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</code>
+  <pre>Returns the attachments for the specified beacon that match the specified
+namespaced-type pattern.
+
+To control which namespaced types are returned, you add the
+`namespacedType` query parameter to the request. You must either use
+`*/*`, to return all attachments, or the namespace must be one of
+the ones returned from the  `namespaces` endpoint.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **viewer**, **Is owner** or **Can edit**
+permissions in the Google Developers Console project.
 
 Args:
-  beaconName: string, Beacon whose attachments should be fetched. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
-  namespacedType: string, Specifies the namespace and type of attachment to include in response in namespace/type format. Accepts `*/*` to specify "all types in all namespaces".
-  projectId: string, The project id to list beacon attachments under. This field can be used when "*" is specified to mean all attachment namespaces. Projects may have multiple attachments with multiple namespaces. If "*" is specified and the projectId string is empty, then the project making the request is used. Optional.
+  beaconName: string, Beacon whose attachments should be fetched. A beacon name has the
+format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast
+by the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  namespacedType: string, Specifies the namespace and type of attachment to include in response in
+<var>namespace/type</var> format. Accepts `*/*` to specify
+"all types in all namespaces".
+  projectId: string, The project id to list beacon attachments under. This field can be
+used when "*" is specified to mean all attachment namespaces. Projects
+may have multiple attachments with multiple namespaces. If "*" is
+specified and the projectId string is empty, then the project
+making the request is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Response to ListBeaconAttachments that contains the requested attachments.
+    { # Response to `ListBeaconAttachments` that contains the requested attachments.
     "attachments": [ # The attachments that corresponded to the request params.
       { # Project-specific data associated with a beacon.
-          "data": "A String", # An opaque data container for client-provided data. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. Required.
-          "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format: beacons/beacon_id/attachments/attachment_id. Leave this empty on creation.
-          "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to interpret the `data` field. Format is namespace/type. Namespace provides type separation between clients. Type describes the type of `data`, for use by the client when parsing the `data` field. Required.
+          "attachmentName": "A String", # Resource name of this attachment. Attachment names have the format:
+              # <code>beacons/<var>beacon_id</var>/attachments/<var>attachment_id</var></code>.
+              # Leave this empty on creation.
+          "creationTimeMs": "A String", # The UTC time when this attachment was created, in milliseconds since the
+              # UNIX epoch.
+          "data": "A String", # An opaque data container for client-provided data. Must be
+              # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+              # requests, and will be so encoded (with padding) in responses.
+              # Required.
+          "namespacedType": "A String", # Specifies what kind of attachment this is. Tells a client how to
+              # interpret the `data` field. Format is <var>namespace/type</var>. Namespace
+              # provides type separation between clients. Type describes the type of
+              # `data`, for use by the client when parsing the `data` field.
+              # Required.
         },
     ],
   }</pre>
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html b/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
index f886339..474ebda 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
@@ -76,39 +76,65 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(beaconName, pageSize=None, projectId=None, alertFilter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">List the diagnostics for a single beacon. You can also list diagnostics for all the beacons owned by your Google Developers Console project by using the beacon name `beacons/-`. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+<p class="firstline">List the diagnostics for a single beacon. You can also list diagnostics for</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(beaconName, pageSize=None, projectId=None, alertFilter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>List the diagnostics for a single beacon. You can also list diagnostics for all the beacons owned by your Google Developers Console project by using the beacon name `beacons/-`. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.
+  <pre>List the diagnostics for a single beacon. You can also list diagnostics for
+all the beacons owned by your Google Developers Console project by using
+the beacon name `beacons/-`.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **viewer**, **Is owner** or **Can edit**
+permissions in the Google Developers Console project.
 
 Args:
   beaconName: string, Beacon that the diagnostics are for. (required)
-  pageSize: integer, Specifies the maximum number of results to return. Defaults to 10. Maximum 1000. Optional.
-  projectId: string, Requests only diagnostic records for the given project id. If not set, then the project making the request will be used for looking up diagnostic records. Optional.
-  alertFilter: string, Requests only beacons that have the given alert. For example, to find beacons that have low batteries use `alert_filter=LOW_BATTERY`.
-  pageToken: string, Requests results that occur after the `page_token`, obtained from the response to a previous request. Optional.
+  pageSize: integer, Specifies the maximum number of results to return. Defaults to
+10. Maximum 1000. Optional.
+  projectId: string, Requests only diagnostic records for the given project id. If not set,
+then the project making the request will be used for looking up
+diagnostic records. Optional.
+  alertFilter: string, Requests only beacons that have the given alert. For example, to find
+beacons that have low batteries use `alert_filter=LOW_BATTERY`.
+  pageToken: string, Requests results that occur after the `page_token`, obtained from the
+response to a previous request. Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response that contains the requested diagnostics.
-    "nextPageToken": "A String", # Token that can be used for pagination. Returned only if the request matches more beacons than can be returned in this response.
+    "nextPageToken": "A String", # Token that can be used for pagination. Returned only if the
+        # request matches more beacons than can be returned in this response.
     "diagnostics": [ # The diagnostics matching the given request.
       { # Diagnostics for a single beacon.
-        "estimatedLowBatteryDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date when the battery is expected to be low. If the value is missing then there is no estimate for when the battery will be low. This value is only an estimate, not an exact date.
+        "estimatedLowBatteryDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The date when the battery is expected to be low. If the value is missing
+            # then there is no estimate for when the battery will be low.
+            # This value is only an estimate, not an exact date.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
           "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
         },
         "alerts": [ # An unordered list of Alerts that the beacon has.
           "A String",
         ],
-        "beaconName": "A String", # Resource name of the beacon. For Eddystone-EID beacons, this may be the beacon's current EID, or the beacon's "stable" Eddystone-UID.
+        "beaconName": "A String", # Resource name of the beacon. For Eddystone-EID beacons, this may
+            # be the beacon's current EID, or the beacon's "stable" Eddystone-UID.
       },
     ],
   }</pre>
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.html b/docs/dyn/proximitybeacon_v1beta1.beacons.html
index afb1518..65e5980 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.html
@@ -85,132 +85,483 @@
 <p class="firstline">Returns the diagnostics Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#activate">activate(beaconName, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Activates a beacon. A beacon that is active will return information and attachment data when queried via `beaconinfo.getforobserved`. Calling this method on an already active beacon will do nothing (but will return a successful response code). Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#activate">activate(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Activates a beacon. A beacon that is active will return information</p>
 <p class="toc_element">
-  <code><a href="#deactivate">deactivate(beaconName, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deactivates a beacon. Once deactivated, the API will not return information nor attachment data for the beacon when queried via `beaconinfo.getforobserved`. Calling this method on an already inactive beacon will do nothing (but will return a successful response code). Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#deactivate">deactivate(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deactivates a beacon. Once deactivated, the API will not return</p>
 <p class="toc_element">
-  <code><a href="#decommission">decommission(beaconName, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Decommissions the specified beacon in the service. This beacon will no longer be returned from `beaconinfo.getforobserved`. This operation is permanent -- you will not be able to re-register a beacon with this ID again. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#decommission">decommission(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Decommissions the specified beacon in the service. This beacon will no</p>
 <p class="toc_element">
-  <code><a href="#get">get(beaconName, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns detailed information about the specified beacon. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project. Requests may supply an Eddystone-EID beacon name in the form: `beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID broadcast by the beacon. The returned `Beacon` object will contain the beacon's stable Eddystone-UID. Clients not authorized to resolve the beacon's ephemeral Eddystone-EID broadcast will receive an error.</p>
+  <code><a href="#delete">delete(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the specified beacon including all diagnostics data for the beacon</p>
 <p class="toc_element">
-  <code><a href="#list">list(pageSize=None, projectId=None, q=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches the beacon registry for beacons that match the given search criteria. Only those beacons that the client has permission to list will be returned. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#get">get(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns detailed information about the specified beacon.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageSize=None, projectId=None, q=None, syntax=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Searches the beacon registry for beacons that match the given search</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="#register">register(body, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Registers a previously unregistered beacon given its `advertisedId`. These IDs are unique within the system. An ID can be registered only once. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+<p class="firstline">Registers a previously unregistered beacon given its `advertisedId`.</p>
 <p class="toc_element">
-  <code><a href="#update">update(beaconName, body, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the information about the specified beacon. **Any field that you do not populate in the submitted beacon will be permanently erased**, so you should follow the "read, modify, write" pattern to avoid inadvertently destroying data. Changes to the beacon status via this method will be silently ignored. To update beacon status, use the separate methods on this API for activation, deactivation, and decommissioning. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+  <code><a href="#update">update(beaconName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the information about the specified beacon. **Any field that you do</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="activate">activate(beaconName, projectId=None, x__xgafv=None)</code>
-  <pre>Activates a beacon. A beacon that is active will return information and attachment data when queried via `beaconinfo.getforobserved`. Calling this method on an already active beacon will do nothing (but will return a successful response code). Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="activate">activate(beaconName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Activates a beacon. A beacon that is active will return information
+and attachment data when queried via `beaconinfo.getforobserved`.
+Calling this method on an already active beacon will do nothing (but
+will return a successful response code).
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Beacon that should be activated. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
-  projectId: string, The project id of the beacon to activate. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  beaconName: string, Beacon that should be activated. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  projectId: string, The project id of the beacon to activate. If the project id is not
+specified then the project making the request is used. The project id
+must match the project that owns the beacon.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="deactivate">deactivate(beaconName, projectId=None, x__xgafv=None)</code>
-  <pre>Deactivates a beacon. Once deactivated, the API will not return information nor attachment data for the beacon when queried via `beaconinfo.getforobserved`. Calling this method on an already inactive beacon will do nothing (but will return a successful response code). Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="deactivate">deactivate(beaconName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Deactivates a beacon. Once deactivated, the API will not return
+information nor attachment data for the beacon when queried via
+`beaconinfo.getforobserved`. Calling this method on an already inactive
+beacon will do nothing (but will return a successful response code).
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Beacon that should be deactivated. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
-  projectId: string, The project id of the beacon to deactivate. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  beaconName: string, Beacon that should be deactivated. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  projectId: string, The project id of the beacon to deactivate. If the project id is not
+specified then the project making the request is used. The project id must
+match the project that owns the beacon.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="decommission">decommission(beaconName, projectId=None, x__xgafv=None)</code>
-  <pre>Decommissions the specified beacon in the service. This beacon will no longer be returned from `beaconinfo.getforobserved`. This operation is permanent -- you will not be able to re-register a beacon with this ID again. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="decommission">decommission(beaconName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Decommissions the specified beacon in the service. This beacon will no
+longer be returned from `beaconinfo.getforobserved`. This operation is
+permanent -- you will not be able to re-register a beacon with this ID
+again.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Beacon that should be decommissioned. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID of the beacon's "stable" UID. Required. (required)
-  projectId: string, The project id of the beacon to decommission. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  beaconName: string, Beacon that should be decommissioned. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID of the beacon's "stable" UID.
+Required. (required)
+  projectId: string, The project id of the beacon to decommission. If the project id is not
+specified then the project making the request is used. The project id
+must match the project that owns the beacon.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(beaconName, projectId=None, x__xgafv=None)</code>
-  <pre>Returns detailed information about the specified beacon. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project. Requests may supply an Eddystone-EID beacon name in the form: `beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID broadcast by the beacon. The returned `Beacon` object will contain the beacon's stable Eddystone-UID. Clients not authorized to resolve the beacon's ephemeral Eddystone-EID broadcast will receive an error.
+    <code class="details" id="delete">delete(beaconName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Deletes the specified beacon including all diagnostics data for the beacon
+as well as any attachments on the beacon (including those belonging to
+other projects). This operation cannot be undone.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may use either the current EID or the beacon's "stable" UID. Required. (required)
-  projectId: string, The project id of the beacon to request. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  beaconName: string, Beacon that should be deleted. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  projectId: string, The project id of the beacon to delete. If not provided, the project
+that is making the request is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(beaconName=None, projectId=None, x__xgafv=None)</code>
+  <pre>Returns detailed information about the specified beacon.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **viewer**, **Is owner** or **Can edit**
+permissions in the Google Developers Console project.
+
+Requests may supply an Eddystone-EID beacon name in the form:
+`beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID
+broadcast by the beacon. The returned `Beacon` object will contain the
+beacon's stable Eddystone-UID. Clients not authorized to resolve the
+beacon's ephemeral Eddystone-EID broadcast will receive an error.
+
+Args:
+  beaconName: string, Resource name of this beacon. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
+for AltBeacon. For Eddystone-EID beacons, you may use either the
+current EID or the beacon's "stable" UID.
+Required. (required)
+  projectId: string, The project id of the beacon to request. If the project id is not specified
+then the project making the request is used. The project id must match the
+project that owns the beacon.
+Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Details of a beacon device.
-    "status": "A String", # Current status of the beacon. Required.
-    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+    "status": "A String", # Current status of the beacon.
+        # Required.
+    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+        # characters.
+        # Optional.
+    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+        # Google Maps API.
+        # Optional.
+        # useful to indicate which floor of a building a beacon is located on.
       "name": "A String", # The name of this level.
     },
-    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+        # This location is given when the beacon is registered or updated. It does
+        # not necessarily indicate the actual current location of the beacon.
+        # Optional.
+        # of doubles representing degrees latitude and degrees longitude. Unless
+        # specified otherwise, this must conform to the
+        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+        # standard</a>. Values must be within normalized ranges.
+        #
+        # Example of normalization code in Python:
+        #
+        #     def NormalizeLongitude(longitude):
+        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+        #       q, r = divmod(longitude, 360.0)
+        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+        #         return r - 360.0
+        #       return r
+        #
+        #     def NormalizeLatLng(latitude, longitude):
+        #       """Wraps decimal degrees latitude and longitude to
+        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+        #       r = latitude % 360.0
+        #       if r <= 90.0:
+        #         return r, NormalizeLongitude(longitude)
+        #       elif r >= 270.0:
+        #         return r - 360, NormalizeLongitude(longitude)
+        #       else:
+        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+        #
+        #     assert 180.0 == NormalizeLongitude(180.0)
+        #     assert -180.0 == NormalizeLongitude(-180.0)
+        #     assert -179.0 == NormalizeLongitude(181.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+        #
+        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
-    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+        # the beacon is deployed. This is given when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+        # (remotely resolved ephemeral ID) format. This information will not be
+        # populated in API responses. When submitting this data, the `advertised_id`
+        # field must contain an ID of type Eddystone-UID. Any other ID type will
+        # result in an error.
+        # Two ways of securely registering an Eddystone-EID beacon with the service
+        # are supported:
+        #
+        # 1. Perform an ECDH key exchange via this API, including a previous call
+        #    to `GET /v1beta1/eidparams`. In this case the fields
+        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+        #    populated and `beacon_identity_key` should not be populated. This
+        #    method ensures that only the two parties in the ECDH key exchange can
+        #    compute the identity key, which becomes a secret between them.
+        # 2. Derive or obtain the beacon's identity key via other secure means
+        #    (perhaps an ECDH key exchange between the beacon and a mobile device
+        #    or any other secure method), and then submit the resulting identity key
+        #    to the service. In this case `beacon_identity_key` field should be
+        #    populated, and neither of `beacon_ecdh_public_key` nor
+        #    `service_ecdh_public_key` fields should be. The security of this method
+        #    depends on how securely the parties involved (in particular the
+        #    bluetooth client) handle the identity key, and obviously on how
+        #    securely the identity key was generated.
+        #
+        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+          # ephemeral ID. "Nominal" because the beacon should randomize the
+          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+          # for details. This value corresponds to a power-of-two scaler on the
+          # beacon's clock: when the scaler value is K, the beacon will begin
+          # broadcasting a new ephemeral ID on average every 2^K seconds.
+      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+          # begun counting at this value immediately prior to transmitting this
+          # value to the resolving service. Significant delay in transmitting this
+          # value to the service risks registration or resolution failures. If a
+          # value is not provided, the default is zero.
+      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `service_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+          # `initial_clock_value`, and the secret key generated by the
+          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+          # `service_ecdh_public_key`. This initial EID value will be used by the
+          # service to confirm that the key exchange process was successful.
+      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `beacon_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+          # populated.
     },
-    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-      "type": "A String", # Specifies the identifier type. Required.
-      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+        # populated when registering. It may be empty when updating a beacon
+        # record because it is ignored in updates.
+        #
+        # When registering a beacon that broadcasts Eddystone-EID, this field
+        # should contain a "stable" Eddystone-UID that identifies the beacon and
+        # links it to its attachments. The stable Eddystone-UID is only used for
+        # administering the beacon.
+      "type": "A String", # Specifies the identifier type.
+          # Required.
+      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+          # requests, and will be so encoded (with padding) in responses. The base64
+          # encoding should be of the binary byte-stream and not any textual (such as
+          # hex) representation thereof.
+          # Required.
     },
-    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+        # the beacon and N is a code for the beacon's type. Possible values are
+        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+        #
+        # This field must be left empty when registering. After reading a beacon,
+        # clients can use the name for future operations.
+    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "properties": { # Properties of the beacon device, for example battery type or firmware
+        # version.
+        # Optional.
       "a_key": "A String",
     },
-    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+        # changing any of its configuration (e.g. broadcast frames, transmit power).
+        # This field provides a place to store and control access to that key.
+        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+        # from users with write access to the given beacon. That is to say: If the
+        # user is authorized to write the beacon's confidential data in the service,
+        # the service considers them authorized to configure the beacon. Note
+        # that this key grants nothing on the service, only on the beacon itself.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(pageSize=None, projectId=None, q=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Searches the beacon registry for beacons that match the given search criteria. Only those beacons that the client has permission to list will be returned. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="list">list(pageSize=None, projectId=None, q=None, syntax=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Searches the beacon registry for beacons that match the given search
+criteria. Only those beacons that the client has permission to list
+will be returned.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **viewer**, **Is owner** or **Can edit**
+permissions in the Google Developers Console project.
 
 Args:
-  pageSize: integer, The maximum number of records to return for this request, up to a server-defined upper limit.
-  projectId: string, The project id to list beacons under. If not present then the project credential that made the request is used as the project. Optional.
-  q: string, Filter query string that supports the following field filters: * `description:""` For example: `description:"Room 3"` Returns beacons whose description matches tokens in the string "Room 3" (not necessarily that exact string). The string must be double-quoted. * `status:` For example: `status:active` Returns beacons whose status matches the given value. Values must be one of the Beacon.Status enum values (case insensitive). Accepts multiple filters which will be combined with OR logic. * `stability:` For example: `stability:mobile` Returns beacons whose expected stability matches the given value. Values must be one of the Beacon.Stability enum values (case insensitive). Accepts multiple filters which will be combined with OR logic. * `place_id:""` For example: `place_id:"ChIJVSZzVR8FdkgRXGmmm6SslKw="` Returns beacons explicitly registered at the given place, expressed as a Place ID obtained from [Google Places API](/places/place-id). Does not match places inside the given place. Does not consider the beacon's actual location (which may be different from its registered place). Accepts multiple filters that will be combined with OR logic. The place ID must be double-quoted. * `registration_time[|=]` For example: `registration_time>=1433116800` Returns beacons whose registration time matches the given filter. Supports the operators: , =. Timestamp must be expressed as an integer number of seconds since midnight January 1, 1970 UTC. Accepts at most two filters that will be combined with AND logic, to support "between" semantics. If more than two are supplied, the latter ones are ignored. * `lat: lng: radius:` For example: `lat:51.1232343 lng:-1.093852 radius:1000` Returns beacons whose registered location is within the given circle. When any of these fields are given, all are required. Latitude and longitude must be decimal degrees between -90.0 and 90.0 and between -180.0 and 180.0 respectively. Radius must be an integer number of meters between 10 and 1,000,000 (1000 km). * `property:"="` For example: `property:"battery-type=CR2032"` Returns beacons which have a property of the given name and value. Supports multiple filters which will be combined with OR logic. The entire name=value string must be double-quoted as one string. * `attachment_type:""` For example: `attachment_type:"my-namespace/my-type"` Returns beacons having at least one attachment of the given namespaced type. Supports "any within this namespace" via the partial wildcard syntax: "my-namespace/*". Supports multiple filters which will be combined with OR logic. The string must be double-quoted. Multiple filters on the same field are combined with OR logic (except registration_time which is combined with AND logic). Multiple filters on different fields are combined with AND logic. Filters should be separated by spaces. As with any HTTP query string parameter, the whole filter expression must be URL-encoded. Example REST request: `GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`
+  pageSize: integer, The maximum number of records to return for this request, up to a
+server-defined upper limit.
+  projectId: string, The project id to list beacons under. If not present then the project
+credential that made the request is used as the project.
+Optional.
+  q: string, Filter query string that supports the following field filters:
+
+* **description:`"<string>"`**
+  For example: **description:"Room 3"**
+  Returns beacons whose description matches tokens in the string "Room 3"
+  (not necessarily that exact string).
+  The string must be double-quoted.
+* **status:`<enum>`**
+  For example: **status:active**
+  Returns beacons whose status matches the given value. Values must be
+  one of the Beacon.Status enum values (case insensitive). Accepts
+  multiple filters which will be combined with OR logic.
+* **stability:`<enum>`**
+  For example: **stability:mobile**
+  Returns beacons whose expected stability matches the given value.
+  Values must be one of the Beacon.Stability enum values (case
+  insensitive). Accepts multiple filters which will be combined with
+  OR logic.
+* **place\_id:`"<string>"`**
+  For example: **place\_id:"ChIJVSZzVR8FdkgRXGmmm6SslKw="**
+  Returns beacons explicitly registered at the given place, expressed as
+  a Place ID obtained from [Google Places API](/places/place-id). Does not
+  match places inside the given place. Does not consider the beacon's
+  actual location (which may be different from its registered place).
+  Accepts multiple filters that will be combined with OR logic. The place
+  ID must be double-quoted.
+* **registration\_time`[<|>|<=|>=]<integer>`**
+  For example: **registration\_time>=1433116800**
+  Returns beacons whose registration time matches the given filter.
+  Supports the operators: <, >, <=, and >=. Timestamp must be expressed as
+  an integer number of seconds since midnight January 1, 1970 UTC. Accepts
+  at most two filters that will be combined with AND logic, to support
+  "between" semantics. If more than two are supplied, the latter ones are
+  ignored.
+* **lat:`<double> lng:<double> radius:<integer>`**
+  For example: **lat:51.1232343 lng:-1.093852 radius:1000**
+  Returns beacons whose registered location is within the given circle.
+  When any of these fields are given, all are required. Latitude and
+  longitude must be decimal degrees between -90.0 and 90.0 and between
+  -180.0 and 180.0 respectively. Radius must be an integer number of
+  meters between 10 and 1,000,000 (1000 km).
+* **property:`"<string>=<string>"`**
+  For example: **property:"battery-type=CR2032"**
+  Returns beacons which have a property of the given name and value.
+  Supports multiple filters which will be combined with OR logic.
+  The entire name=value string must be double-quoted as one string.
+* **attachment\_type:`"<string>"`**
+  For example: **attachment_type:"my-namespace/my-type"**
+  Returns beacons having at least one attachment of the given namespaced
+  type. Supports "any within this namespace" via the partial wildcard
+  syntax: "my-namespace/*". Supports multiple filters which will be
+  combined with OR logic. The string must be double-quoted.
+* **indoor\_level:`"<string>"`**
+  For example: **indoor\_level:"1"**
+  Returns beacons which are located on the given indoor level. Accepts
+  multiple filters that will be combined with OR logic.
+
+Multiple filters on the same field are combined with OR logic (except
+registration_time which is combined with AND logic).
+Multiple filters on different fields are combined with AND logic.
+Filters should be separated by spaces.
+
+As with any HTTP query string parameter, the whole filter expression must
+be URL-encoded.
+
+Example REST request:
+`GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`
   pageToken: string, A pagination token obtained from a previous request to list beacons.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -218,38 +569,166 @@
     { # Response that contains list beacon results and pagination help.
     "beacons": [ # The beacons that matched the search criteria.
       { # Details of a beacon device.
-        "status": "A String", # Current status of the beacon. Required.
-        "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-        "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+        "status": "A String", # Current status of the beacon.
+            # Required.
+        "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+            # characters.
+            # Optional.
+        "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+            # Google Maps API.
+            # Optional.
+            # useful to indicate which floor of a building a beacon is located on.
           "name": "A String", # The name of this level.
         },
-        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+            # This location is given when the beacon is registered or updated. It does
+            # not necessarily indicate the actual current location of the beacon.
+            # Optional.
+            # of doubles representing degrees latitude and degrees longitude. Unless
+            # specified otherwise, this must conform to the
+            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+            # standard</a>. Values must be within normalized ranges.
+            #
+            # Example of normalization code in Python:
+            #
+            #     def NormalizeLongitude(longitude):
+            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+            #       q, r = divmod(longitude, 360.0)
+            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+            #         return r - 360.0
+            #       return r
+            #
+            #     def NormalizeLatLng(latitude, longitude):
+            #       """Wraps decimal degrees latitude and longitude to
+            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+            #       r = latitude % 360.0
+            #       if r <= 90.0:
+            #         return r, NormalizeLongitude(longitude)
+            #       elif r >= 270.0:
+            #         return r - 360, NormalizeLongitude(longitude)
+            #       else:
+            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+            #
+            #     assert 180.0 == NormalizeLongitude(180.0)
+            #     assert -180.0 == NormalizeLongitude(-180.0)
+            #     assert -179.0 == NormalizeLongitude(181.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+            #
+            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+            # as if it were annotated as ST_LOCATION.
           "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
           "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
         },
-        "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-        "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-          "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-          "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-          "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-          "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-          "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-          "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+        "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+            # the beacon is deployed. This is given when the beacon is registered or
+            # updated, not automatically detected in any way.
+            # Optional.
+        "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+            # (remotely resolved ephemeral ID) format. This information will not be
+            # populated in API responses. When submitting this data, the `advertised_id`
+            # field must contain an ID of type Eddystone-UID. Any other ID type will
+            # result in an error.
+            # Two ways of securely registering an Eddystone-EID beacon with the service
+            # are supported:
+            #
+            # 1. Perform an ECDH key exchange via this API, including a previous call
+            #    to `GET /v1beta1/eidparams`. In this case the fields
+            #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+            #    populated and `beacon_identity_key` should not be populated. This
+            #    method ensures that only the two parties in the ECDH key exchange can
+            #    compute the identity key, which becomes a secret between them.
+            # 2. Derive or obtain the beacon's identity key via other secure means
+            #    (perhaps an ECDH key exchange between the beacon and a mobile device
+            #    or any other secure method), and then submit the resulting identity key
+            #    to the service. In this case `beacon_identity_key` field should be
+            #    populated, and neither of `beacon_ecdh_public_key` nor
+            #    `service_ecdh_public_key` fields should be. The security of this method
+            #    depends on how securely the parties involved (in particular the
+            #    bluetooth client) handle the identity key, and obviously on how
+            #    securely the identity key was generated.
+            #
+            # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+          "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+              # ephemeral ID. "Nominal" because the beacon should randomize the
+              # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+              # for details. This value corresponds to a power-of-two scaler on the
+              # beacon's clock: when the scaler value is K, the beacon will begin
+              # broadcasting a new ephemeral ID on average every 2^K seconds.
+          "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+              # begun counting at this value immediately prior to transmitting this
+              # value to the resolving service. Significant delay in transmitting this
+              # value to the service risks registration or resolution failures. If a
+              # value is not provided, the default is zero.
+          "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+              # key exchange. When this field is populated, `service_ecdh_public_key`
+              # must also be populated, and `beacon_identity_key` must not be.
+          "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+              # `initial_clock_value`, and the secret key generated by the
+              # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+              # `service_ecdh_public_key`. This initial EID value will be used by the
+              # service to confirm that the key exchange process was successful.
+          "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+              # key exchange. When this field is populated, `beacon_ecdh_public_key`
+              # must also be populated, and `beacon_identity_key` must not be.
+          "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+              # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+              # populated.
         },
-        "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-          "type": "A String", # Specifies the identifier type. Required.
-          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+        "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+            # populated when registering. It may be empty when updating a beacon
+            # record because it is ignored in updates.
+            #
+            # When registering a beacon that broadcasts Eddystone-EID, this field
+            # should contain a "stable" Eddystone-UID that identifies the beacon and
+            # links it to its attachments. The stable Eddystone-UID is only used for
+            # administering the beacon.
+          "type": "A String", # Specifies the identifier type.
+              # Required.
+          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+              # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+              # requests, and will be so encoded (with padding) in responses. The base64
+              # encoding should be of the binary byte-stream and not any textual (such as
+              # hex) representation thereof.
+              # Required.
         },
-        "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-        "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-        "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+        "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+            # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+            # the beacon and N is a code for the beacon's type. Possible values are
+            # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+            #
+            # This field must be left empty when registering. After reading a beacon,
+            # clients can use the name for future operations.
+        "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+            # updated, not automatically detected in any way.
+            # Optional.
+        "properties": { # Properties of the beacon device, for example battery type or firmware
+            # version.
+            # Optional.
           "a_key": "A String",
         },
-        "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+        "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+            # changing any of its configuration (e.g. broadcast frames, transmit power).
+            # This field provides a place to store and control access to that key.
+            # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+            # from users with write access to the given beacon. That is to say: If the
+            # user is authorized to write the beacon's confidential data in the service,
+            # the service considers them authorized to configure the beacon. Note
+            # that this key grants nothing on the service, only on the beacon itself.
       },
     ],
-    "nextPageToken": "A String", # An opaque pagination token that the client may provide in their next request to retrieve the next page of results.
-    "totalCount": "A String", # Estimate of the total number of beacons matched by the query. Higher values may be less accurate.
+    "nextPageToken": "A String", # An opaque pagination token that the client may provide in their next
+        # request to retrieve the next page of results.
+    "totalCount": "A String", # Estimate of the total number of beacons matched by the query. Higher
+        # values may be less accurate.
   }</pre>
 </div>
 
@@ -269,156 +748,693 @@
 
 <div class="method">
     <code class="details" id="register">register(body, projectId=None, x__xgafv=None)</code>
-  <pre>Registers a previously unregistered beacon given its `advertisedId`. These IDs are unique within the system. An ID can be registered only once. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+  <pre>Registers a previously unregistered beacon given its `advertisedId`.
+These IDs are unique within the system. An ID can be registered only once.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Details of a beacon device.
-  "status": "A String", # Current status of the beacon. Required.
-  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+  "status": "A String", # Current status of the beacon.
+      # Required.
+  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+      # characters.
+      # Optional.
+  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+      # Google Maps API.
+      # Optional.
+      # useful to indicate which floor of a building a beacon is located on.
     "name": "A String", # The name of this level.
   },
-  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+      # This location is given when the beacon is registered or updated. It does
+      # not necessarily indicate the actual current location of the beacon.
+      # Optional.
+      # of doubles representing degrees latitude and degrees longitude. Unless
+      # specified otherwise, this must conform to the
+      # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+      # standard</a>. Values must be within normalized ranges.
+      #
+      # Example of normalization code in Python:
+      #
+      #     def NormalizeLongitude(longitude):
+      #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+      #       q, r = divmod(longitude, 360.0)
+      #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+      #         return r - 360.0
+      #       return r
+      #
+      #     def NormalizeLatLng(latitude, longitude):
+      #       """Wraps decimal degrees latitude and longitude to
+      #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+      #       r = latitude % 360.0
+      #       if r <= 90.0:
+      #         return r, NormalizeLongitude(longitude)
+      #       elif r >= 270.0:
+      #         return r - 360, NormalizeLongitude(longitude)
+      #       else:
+      #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+      #
+      #     assert 180.0 == NormalizeLongitude(180.0)
+      #     assert -180.0 == NormalizeLongitude(-180.0)
+      #     assert -179.0 == NormalizeLongitude(181.0)
+      #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+      #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+      #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+      #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+      #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+      #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+      #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+      #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+      #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+      #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+      #
+      # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+      # as if it were annotated as ST_LOCATION.
     "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
     "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
   },
-  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+      # the beacon is deployed. This is given when the beacon is registered or
+      # updated, not automatically detected in any way.
+      # Optional.
+  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+      # (remotely resolved ephemeral ID) format. This information will not be
+      # populated in API responses. When submitting this data, the `advertised_id`
+      # field must contain an ID of type Eddystone-UID. Any other ID type will
+      # result in an error.
+      # Two ways of securely registering an Eddystone-EID beacon with the service
+      # are supported:
+      #
+      # 1. Perform an ECDH key exchange via this API, including a previous call
+      #    to `GET /v1beta1/eidparams`. In this case the fields
+      #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+      #    populated and `beacon_identity_key` should not be populated. This
+      #    method ensures that only the two parties in the ECDH key exchange can
+      #    compute the identity key, which becomes a secret between them.
+      # 2. Derive or obtain the beacon's identity key via other secure means
+      #    (perhaps an ECDH key exchange between the beacon and a mobile device
+      #    or any other secure method), and then submit the resulting identity key
+      #    to the service. In this case `beacon_identity_key` field should be
+      #    populated, and neither of `beacon_ecdh_public_key` nor
+      #    `service_ecdh_public_key` fields should be. The security of this method
+      #    depends on how securely the parties involved (in particular the
+      #    bluetooth client) handle the identity key, and obviously on how
+      #    securely the identity key was generated.
+      #
+      # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+        # ephemeral ID. "Nominal" because the beacon should randomize the
+        # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+        # for details. This value corresponds to a power-of-two scaler on the
+        # beacon's clock: when the scaler value is K, the beacon will begin
+        # broadcasting a new ephemeral ID on average every 2^K seconds.
+    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+        # begun counting at this value immediately prior to transmitting this
+        # value to the resolving service. Significant delay in transmitting this
+        # value to the service risks registration or resolution failures. If a
+        # value is not provided, the default is zero.
+    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+        # key exchange. When this field is populated, `service_ecdh_public_key`
+        # must also be populated, and `beacon_identity_key` must not be.
+    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+        # `initial_clock_value`, and the secret key generated by the
+        # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+        # `service_ecdh_public_key`. This initial EID value will be used by the
+        # service to confirm that the key exchange process was successful.
+    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+        # key exchange. When this field is populated, `beacon_ecdh_public_key`
+        # must also be populated, and `beacon_identity_key` must not be.
+    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+        # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+        # populated.
   },
-  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-    "type": "A String", # Specifies the identifier type. Required.
-    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+      # populated when registering. It may be empty when updating a beacon
+      # record because it is ignored in updates.
+      # 
+      # When registering a beacon that broadcasts Eddystone-EID, this field
+      # should contain a "stable" Eddystone-UID that identifies the beacon and
+      # links it to its attachments. The stable Eddystone-UID is only used for
+      # administering the beacon.
+    "type": "A String", # Specifies the identifier type.
+        # Required.
+    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+        # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+        # requests, and will be so encoded (with padding) in responses. The base64
+        # encoding should be of the binary byte-stream and not any textual (such as
+        # hex) representation thereof.
+        # Required.
   },
-  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-  "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+      # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+      # the beacon and N is a code for the beacon's type. Possible values are
+      # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+      # 
+      # This field must be left empty when registering. After reading a beacon,
+      # clients can use the name for future operations.
+  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+      # updated, not automatically detected in any way.
+      # Optional.
+  "properties": { # Properties of the beacon device, for example battery type or firmware
+      # version.
+      # Optional.
     "a_key": "A String",
   },
-  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+      # changing any of its configuration (e.g. broadcast frames, transmit power).
+      # This field provides a place to store and control access to that key.
+      # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+      # from users with write access to the given beacon. That is to say: If the
+      # user is authorized to write the beacon's confidential data in the service,
+      # the service considers them authorized to configure the beacon. Note
+      # that this key grants nothing on the service, only on the beacon itself.
 }
 
-  projectId: string, The project id of the project the beacon will be registered to. If the project id is not specified then the project making the request is used. Optional.
+  projectId: string, The project id of the project the beacon will be registered to. If
+the project id is not specified then the project making the request
+is used.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Details of a beacon device.
-    "status": "A String", # Current status of the beacon. Required.
-    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+    "status": "A String", # Current status of the beacon.
+        # Required.
+    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+        # characters.
+        # Optional.
+    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+        # Google Maps API.
+        # Optional.
+        # useful to indicate which floor of a building a beacon is located on.
       "name": "A String", # The name of this level.
     },
-    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+        # This location is given when the beacon is registered or updated. It does
+        # not necessarily indicate the actual current location of the beacon.
+        # Optional.
+        # of doubles representing degrees latitude and degrees longitude. Unless
+        # specified otherwise, this must conform to the
+        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+        # standard</a>. Values must be within normalized ranges.
+        #
+        # Example of normalization code in Python:
+        #
+        #     def NormalizeLongitude(longitude):
+        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+        #       q, r = divmod(longitude, 360.0)
+        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+        #         return r - 360.0
+        #       return r
+        #
+        #     def NormalizeLatLng(latitude, longitude):
+        #       """Wraps decimal degrees latitude and longitude to
+        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+        #       r = latitude % 360.0
+        #       if r <= 90.0:
+        #         return r, NormalizeLongitude(longitude)
+        #       elif r >= 270.0:
+        #         return r - 360, NormalizeLongitude(longitude)
+        #       else:
+        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+        #
+        #     assert 180.0 == NormalizeLongitude(180.0)
+        #     assert -180.0 == NormalizeLongitude(-180.0)
+        #     assert -179.0 == NormalizeLongitude(181.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+        #
+        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
-    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+        # the beacon is deployed. This is given when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+        # (remotely resolved ephemeral ID) format. This information will not be
+        # populated in API responses. When submitting this data, the `advertised_id`
+        # field must contain an ID of type Eddystone-UID. Any other ID type will
+        # result in an error.
+        # Two ways of securely registering an Eddystone-EID beacon with the service
+        # are supported:
+        #
+        # 1. Perform an ECDH key exchange via this API, including a previous call
+        #    to `GET /v1beta1/eidparams`. In this case the fields
+        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+        #    populated and `beacon_identity_key` should not be populated. This
+        #    method ensures that only the two parties in the ECDH key exchange can
+        #    compute the identity key, which becomes a secret between them.
+        # 2. Derive or obtain the beacon's identity key via other secure means
+        #    (perhaps an ECDH key exchange between the beacon and a mobile device
+        #    or any other secure method), and then submit the resulting identity key
+        #    to the service. In this case `beacon_identity_key` field should be
+        #    populated, and neither of `beacon_ecdh_public_key` nor
+        #    `service_ecdh_public_key` fields should be. The security of this method
+        #    depends on how securely the parties involved (in particular the
+        #    bluetooth client) handle the identity key, and obviously on how
+        #    securely the identity key was generated.
+        #
+        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+          # ephemeral ID. "Nominal" because the beacon should randomize the
+          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+          # for details. This value corresponds to a power-of-two scaler on the
+          # beacon's clock: when the scaler value is K, the beacon will begin
+          # broadcasting a new ephemeral ID on average every 2^K seconds.
+      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+          # begun counting at this value immediately prior to transmitting this
+          # value to the resolving service. Significant delay in transmitting this
+          # value to the service risks registration or resolution failures. If a
+          # value is not provided, the default is zero.
+      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `service_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+          # `initial_clock_value`, and the secret key generated by the
+          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+          # `service_ecdh_public_key`. This initial EID value will be used by the
+          # service to confirm that the key exchange process was successful.
+      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `beacon_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+          # populated.
     },
-    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-      "type": "A String", # Specifies the identifier type. Required.
-      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+        # populated when registering. It may be empty when updating a beacon
+        # record because it is ignored in updates.
+        #
+        # When registering a beacon that broadcasts Eddystone-EID, this field
+        # should contain a "stable" Eddystone-UID that identifies the beacon and
+        # links it to its attachments. The stable Eddystone-UID is only used for
+        # administering the beacon.
+      "type": "A String", # Specifies the identifier type.
+          # Required.
+      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+          # requests, and will be so encoded (with padding) in responses. The base64
+          # encoding should be of the binary byte-stream and not any textual (such as
+          # hex) representation thereof.
+          # Required.
     },
-    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+        # the beacon and N is a code for the beacon's type. Possible values are
+        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+        #
+        # This field must be left empty when registering. After reading a beacon,
+        # clients can use the name for future operations.
+    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "properties": { # Properties of the beacon device, for example battery type or firmware
+        # version.
+        # Optional.
       "a_key": "A String",
     },
-    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+        # changing any of its configuration (e.g. broadcast frames, transmit power).
+        # This field provides a place to store and control access to that key.
+        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+        # from users with write access to the given beacon. That is to say: If the
+        # user is authorized to write the beacon's confidential data in the service,
+        # the service considers them authorized to configure the beacon. Note
+        # that this key grants nothing on the service, only on the beacon itself.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(beaconName, body, projectId=None, x__xgafv=None)</code>
-  <pre>Updates the information about the specified beacon. **Any field that you do not populate in the submitted beacon will be permanently erased**, so you should follow the "read, modify, write" pattern to avoid inadvertently destroying data. Changes to the beacon status via this method will be silently ignored. To update beacon status, use the separate methods on this API for activation, deactivation, and decommissioning. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.
+    <code class="details" id="update">update(beaconName=None, body, projectId=None, x__xgafv=None)</code>
+  <pre>Updates the information about the specified beacon. **Any field that you do
+not populate in the submitted beacon will be permanently erased**, so you
+should follow the "read, modify, write" pattern to avoid inadvertently
+destroying data.
+
+Changes to the beacon status via this method will be  silently ignored.
+To update beacon status, use the separate methods on this API for
+activation, deactivation, and decommissioning.
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **Is owner** or **Can edit** permissions in the
+Google Developers Console project.
 
 Args:
-  beaconName: string, Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations. (required)
+  beaconName: string, Resource name of this beacon. A beacon name has the format
+"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+the beacon and N is a code for the beacon's type. Possible values are
+`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+
+This field must be left empty when registering. After reading a beacon,
+clients can use the name for future operations. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Details of a beacon device.
-  "status": "A String", # Current status of the beacon. Required.
-  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+  "status": "A String", # Current status of the beacon.
+      # Required.
+  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+      # characters.
+      # Optional.
+  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+      # Google Maps API.
+      # Optional.
+      # useful to indicate which floor of a building a beacon is located on.
     "name": "A String", # The name of this level.
   },
-  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+      # This location is given when the beacon is registered or updated. It does
+      # not necessarily indicate the actual current location of the beacon.
+      # Optional.
+      # of doubles representing degrees latitude and degrees longitude. Unless
+      # specified otherwise, this must conform to the
+      # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+      # standard</a>. Values must be within normalized ranges.
+      #
+      # Example of normalization code in Python:
+      #
+      #     def NormalizeLongitude(longitude):
+      #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+      #       q, r = divmod(longitude, 360.0)
+      #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+      #         return r - 360.0
+      #       return r
+      #
+      #     def NormalizeLatLng(latitude, longitude):
+      #       """Wraps decimal degrees latitude and longitude to
+      #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+      #       r = latitude % 360.0
+      #       if r <= 90.0:
+      #         return r, NormalizeLongitude(longitude)
+      #       elif r >= 270.0:
+      #         return r - 360, NormalizeLongitude(longitude)
+      #       else:
+      #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+      #
+      #     assert 180.0 == NormalizeLongitude(180.0)
+      #     assert -180.0 == NormalizeLongitude(-180.0)
+      #     assert -179.0 == NormalizeLongitude(181.0)
+      #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+      #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+      #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+      #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+      #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+      #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+      #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+      #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+      #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+      #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+      #
+      # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+      # as if it were annotated as ST_LOCATION.
     "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
     "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
   },
-  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+      # the beacon is deployed. This is given when the beacon is registered or
+      # updated, not automatically detected in any way.
+      # Optional.
+  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+      # (remotely resolved ephemeral ID) format. This information will not be
+      # populated in API responses. When submitting this data, the `advertised_id`
+      # field must contain an ID of type Eddystone-UID. Any other ID type will
+      # result in an error.
+      # Two ways of securely registering an Eddystone-EID beacon with the service
+      # are supported:
+      #
+      # 1. Perform an ECDH key exchange via this API, including a previous call
+      #    to `GET /v1beta1/eidparams`. In this case the fields
+      #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+      #    populated and `beacon_identity_key` should not be populated. This
+      #    method ensures that only the two parties in the ECDH key exchange can
+      #    compute the identity key, which becomes a secret between them.
+      # 2. Derive or obtain the beacon's identity key via other secure means
+      #    (perhaps an ECDH key exchange between the beacon and a mobile device
+      #    or any other secure method), and then submit the resulting identity key
+      #    to the service. In this case `beacon_identity_key` field should be
+      #    populated, and neither of `beacon_ecdh_public_key` nor
+      #    `service_ecdh_public_key` fields should be. The security of this method
+      #    depends on how securely the parties involved (in particular the
+      #    bluetooth client) handle the identity key, and obviously on how
+      #    securely the identity key was generated.
+      #
+      # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+        # ephemeral ID. "Nominal" because the beacon should randomize the
+        # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+        # for details. This value corresponds to a power-of-two scaler on the
+        # beacon's clock: when the scaler value is K, the beacon will begin
+        # broadcasting a new ephemeral ID on average every 2^K seconds.
+    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+        # begun counting at this value immediately prior to transmitting this
+        # value to the resolving service. Significant delay in transmitting this
+        # value to the service risks registration or resolution failures. If a
+        # value is not provided, the default is zero.
+    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+        # key exchange. When this field is populated, `service_ecdh_public_key`
+        # must also be populated, and `beacon_identity_key` must not be.
+    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+        # `initial_clock_value`, and the secret key generated by the
+        # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+        # `service_ecdh_public_key`. This initial EID value will be used by the
+        # service to confirm that the key exchange process was successful.
+    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+        # key exchange. When this field is populated, `beacon_ecdh_public_key`
+        # must also be populated, and `beacon_identity_key` must not be.
+    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+        # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+        # populated.
   },
-  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-    "type": "A String", # Specifies the identifier type. Required.
-    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+      # populated when registering. It may be empty when updating a beacon
+      # record because it is ignored in updates.
+      # 
+      # When registering a beacon that broadcasts Eddystone-EID, this field
+      # should contain a "stable" Eddystone-UID that identifies the beacon and
+      # links it to its attachments. The stable Eddystone-UID is only used for
+      # administering the beacon.
+    "type": "A String", # Specifies the identifier type.
+        # Required.
+    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+        # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+        # requests, and will be so encoded (with padding) in responses. The base64
+        # encoding should be of the binary byte-stream and not any textual (such as
+        # hex) representation thereof.
+        # Required.
   },
-  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-  "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+      # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+      # the beacon and N is a code for the beacon's type. Possible values are
+      # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+      # 
+      # This field must be left empty when registering. After reading a beacon,
+      # clients can use the name for future operations.
+  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+      # updated, not automatically detected in any way.
+      # Optional.
+  "properties": { # Properties of the beacon device, for example battery type or firmware
+      # version.
+      # Optional.
     "a_key": "A String",
   },
-  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+      # changing any of its configuration (e.g. broadcast frames, transmit power).
+      # This field provides a place to store and control access to that key.
+      # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+      # from users with write access to the given beacon. That is to say: If the
+      # user is authorized to write the beacon's confidential data in the service,
+      # the service considers them authorized to configure the beacon. Note
+      # that this key grants nothing on the service, only on the beacon itself.
 }
 
-  projectId: string, The project id of the beacon to update. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  projectId: string, The project id of the beacon to update. If the project id is not
+specified then the project making the request is used. The project id
+must match the project that owns the beacon.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Details of a beacon device.
-    "status": "A String", # Current status of the beacon. Required.
-    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140 characters. Optional.
-    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, useful to indicate which floor of a building a beacon is located on. # The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional.
+    "status": "A String", # Current status of the beacon.
+        # Required.
+    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
+        # characters.
+        # Optional.
+    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
+        # Google Maps API.
+        # Optional.
+        # useful to indicate which floor of a building a beacon is located on.
       "name": "A String", # The name of this level.
     },
-    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0) # The location of the beacon, expressed as a latitude and longitude pair. This location is given when the beacon is registered or updated. It does not necessarily indicate the actual current location of the beacon. Optional.
+    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
+        # This location is given when the beacon is registered or updated. It does
+        # not necessarily indicate the actual current location of the beacon.
+        # Optional.
+        # of doubles representing degrees latitude and degrees longitude. Unless
+        # specified otherwise, this must conform to the
+        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+        # standard</a>. Values must be within normalized ranges.
+        #
+        # Example of normalization code in Python:
+        #
+        #     def NormalizeLongitude(longitude):
+        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+        #       q, r = divmod(longitude, 360.0)
+        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+        #         return r - 360.0
+        #       return r
+        #
+        #     def NormalizeLatLng(latitude, longitude):
+        #       """Wraps decimal degrees latitude and longitude to
+        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+        #       r = latitude % 360.0
+        #       if r <= 90.0:
+        #         return r, NormalizeLongitude(longitude)
+        #       elif r >= 270.0:
+        #         return r - 360, NormalizeLongitude(longitude)
+        #       else:
+        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+        #
+        #     assert 180.0 == NormalizeLongitude(180.0)
+        #     assert -180.0 == NormalizeLongitude(-180.0)
+        #     assert -179.0 == NormalizeLongitude(181.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+        #
+        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
-    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where the beacon is deployed. This is given when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported: 1. Perform an ECDH key exchange via this API, including a previous call to `GET /v1beta1/eidparams`. In this case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key` should be populated and `beacon_identity_key` should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. 2. Derive or obtain the beacon's identity key via other secure means (perhaps an ECDH key exchange between the beacon and a mobile device or any other secure method), and then submit the resulting identity key to the service. In this case `beacon_identity_key` field should be populated, and neither of `beacon_ecdh_public_key` nor `service_ecdh_public_key` fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub. # Write-only registration parameters for beacons using Eddystone-EID (remotely resolved ephemeral ID) format. This information will not be populated in API responses. When submitting this data, the `advertised_id` field must contain an ID of type Eddystone-UID. Any other ID type will result in an error.
-      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2^K seconds.
-      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
-      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `service_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as `initial_clock_value`, and the secret key generated by the Diffie-Hellman key exchange using `service_ecdh_public_key` and `service_ecdh_public_key`. This initial EID value will be used by the service to confirm that the key exchange process was successful.
-      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman key exchange. When this field is populated, `beacon_ecdh_public_key` must also be populated, and `beacon_identity_key` must not be.
-      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.
+    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
+        # the beacon is deployed. This is given when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
+        # (remotely resolved ephemeral ID) format. This information will not be
+        # populated in API responses. When submitting this data, the `advertised_id`
+        # field must contain an ID of type Eddystone-UID. Any other ID type will
+        # result in an error.
+        # Two ways of securely registering an Eddystone-EID beacon with the service
+        # are supported:
+        #
+        # 1. Perform an ECDH key exchange via this API, including a previous call
+        #    to `GET /v1beta1/eidparams`. In this case the fields
+        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
+        #    populated and `beacon_identity_key` should not be populated. This
+        #    method ensures that only the two parties in the ECDH key exchange can
+        #    compute the identity key, which becomes a secret between them.
+        # 2. Derive or obtain the beacon's identity key via other secure means
+        #    (perhaps an ECDH key exchange between the beacon and a mobile device
+        #    or any other secure method), and then submit the resulting identity key
+        #    to the service. In this case `beacon_identity_key` field should be
+        #    populated, and neither of `beacon_ecdh_public_key` nor
+        #    `service_ecdh_public_key` fields should be. The security of this method
+        #    depends on how securely the parties involved (in particular the
+        #    bluetooth client) handle the identity key, and obviously on how
+        #    securely the identity key was generated.
+        #
+        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
+          # ephemeral ID. "Nominal" because the beacon should randomize the
+          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
+          # for details. This value corresponds to a power-of-two scaler on the
+          # beacon's clock: when the scaler value is K, the beacon will begin
+          # broadcasting a new ephemeral ID on average every 2^K seconds.
+      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
+          # begun counting at this value immediately prior to transmitting this
+          # value to the resolving service. Significant delay in transmitting this
+          # value to the service risks registration or resolution failures. If a
+          # value is not provided, the default is zero.
+      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `service_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
+          # `initial_clock_value`, and the secret key generated by the
+          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
+          # `service_ecdh_public_key`. This initial EID value will be used by the
+          # service to confirm that the key exchange process was successful.
+      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
+          # key exchange. When this field is populated, `beacon_ecdh_public_key`
+          # must also be populated, and `beacon_identity_key` must not be.
+      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
+          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
+          # populated.
     },
-    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be populated when registering. It may be empty when updating a beacon record because it is ignored in updates. When registering a beacon that broadcasts Eddystone-EID, this field should contain a "stable" Eddystone-UID that identifies the beacon and links it to its attachments. The stable Eddystone-UID is only used for administering the beacon.
-      "type": "A String", # Specifies the identifier type. Required.
-      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. The base64 encoding should be of the binary byte-stream and not any textual (such as hex) representation thereof. Required.
+    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
+        # populated when registering. It may be empty when updating a beacon
+        # record because it is ignored in updates.
+        #
+        # When registering a beacon that broadcasts Eddystone-EID, this field
+        # should contain a "stable" Eddystone-UID that identifies the beacon and
+        # links it to its attachments. The stable Eddystone-UID is only used for
+        # administering the beacon.
+      "type": "A String", # Specifies the identifier type.
+          # Required.
+      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
+          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
+          # requests, and will be so encoded (with padding) in responses. The base64
+          # encoding should be of the binary byte-stream and not any textual (such as
+          # hex) representation thereof.
+          # Required.
     },
-    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by the beacon and N is a code for the beacon's type. Possible values are `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon. This field must be left empty when registering. After reading a beacon, clients can use the name for future operations.
-    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
-    "properties": { # Properties of the beacon device, for example battery type or firmware version. Optional.
+    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
+        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
+        # the beacon and N is a code for the beacon's type. Possible values are
+        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
+        #
+        # This field must be left empty when registering. After reading a beacon,
+        # clients can use the name for future operations.
+    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
+        # updated, not automatically detected in any way.
+        # Optional.
+    "properties": { # Properties of the beacon device, for example battery type or firmware
+        # version.
+        # Optional.
       "a_key": "A String",
     },
-    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before changing any of its configuration (e.g. broadcast frames, transmit power). This field provides a place to store and control access to that key. This field is populated in responses to `GET /v1beta1/beacons/3!beaconId` from users with write access to the given beacon. That is to say: If the user is authorized to write the beacon's confidential data in the service, the service considers them authorized to configure the beacon. Note that this key grants nothing on the service, only on the beacon itself.
+    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
+        # changing any of its configuration (e.g. broadcast frames, transmit power).
+        # This field provides a place to store and control access to that key.
+        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
+        # from users with write access to the given beacon. That is to say: If the
+        # user is authorized to write the beacon's confidential data in the service,
+        # the service considers them authorized to configure the beacon. Note
+        # that this key grants nothing on the service, only on the beacon itself.
   }</pre>
 </div>
 
diff --git a/docs/dyn/proximitybeacon_v1beta1.namespaces.html b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
index 50ef262..33dce03 100644
--- a/docs/dyn/proximitybeacon_v1beta1.namespaces.html
+++ b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
@@ -76,55 +76,85 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all attachment namespaces owned by your Google Developers Console project. Attachment data associated with a beacon must include a namespaced type, and the namespace must be owned by your project. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.</p>
+<p class="firstline">Lists all attachment namespaces owned by your Google Developers Console</p>
 <p class="toc_element">
-  <code><a href="#update">update(namespaceName, body, projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the information about the specified namespace. Only the namespace visibility can be updated.</p>
+  <code><a href="#update">update(namespaceName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the information about the specified namespace. Only the namespace</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(projectId=None, x__xgafv=None)</code>
-  <pre>Lists all attachment namespaces owned by your Google Developers Console project. Attachment data associated with a beacon must include a namespaced type, and the namespace must be owned by your project. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.
+  <pre>Lists all attachment namespaces owned by your Google Developers Console
+project. Attachment data associated with a beacon must include a
+namespaced type, and the namespace must be owned by your project.
+
+Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
+from a signed-in user with **viewer**, **Is owner** or **Can edit**
+permissions in the Google Developers Console project.
 
 Args:
-  projectId: string, The project id to list namespaces under. Optional.
+  projectId: string, The project id to list namespaces under.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response to ListNamespacesRequest that contains all the project's namespaces.
     "namespaces": [ # The attachments that corresponded to the request params.
-      { # An attachment namespace defines read and write access for all the attachments created under it. Each namespace is globally unique, and owned by one project which is the only project that can create attachments under it.
-        "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format: namespaces/namespace.
-        "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace via `beaconinfo.getforobserved`.
+      { # An attachment namespace defines read and write access for all the attachments
+          # created under it. Each namespace is globally unique, and owned by one
+          # project which is the only project that can create attachments under it.
+        "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+            # <code>namespaces/<var>namespace</var></code>.
+        "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
+            # via `beaconinfo.getforobserved`.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(namespaceName, body, projectId=None, x__xgafv=None)</code>
-  <pre>Updates the information about the specified namespace. Only the namespace visibility can be updated.
+    <code class="details" id="update">update(namespaceName=None, body, projectId=None, x__xgafv=None)</code>
+  <pre>Updates the information about the specified namespace. Only the namespace
+visibility can be updated.
 
 Args:
-  namespaceName: string, Resource name of this namespace. Namespaces names have the format: namespaces/namespace. (required)
+  namespaceName: string, Resource name of this namespace. Namespaces names have the format:
+<code>namespaces/<var>namespace</var></code>. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An attachment namespace defines read and write access for all the attachments created under it. Each namespace is globally unique, and owned by one project which is the only project that can create attachments under it.
-  "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format: namespaces/namespace.
-  "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace via `beaconinfo.getforobserved`.
+{ # An attachment namespace defines read and write access for all the attachments
+    # created under it. Each namespace is globally unique, and owned by one
+    # project which is the only project that can create attachments under it.
+  "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+      # <code>namespaces/<var>namespace</var></code>.
+  "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
+      # via `beaconinfo.getforobserved`.
 }
 
-  projectId: string, The project id of the namespace to update. If the project id is not specified then the project making the request is used. The project id must match the project that owns the beacon. Optional.
+  projectId: string, The project id of the namespace to update. If the project id is not
+specified then the project making the request is used. The project id
+must match the project that owns the beacon.
+Optional.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # An attachment namespace defines read and write access for all the attachments created under it. Each namespace is globally unique, and owned by one project which is the only project that can create attachments under it.
-    "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format: namespaces/namespace.
-    "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace via `beaconinfo.getforobserved`.
+    { # An attachment namespace defines read and write access for all the attachments
+      # created under it. Each namespace is globally unique, and owned by one
+      # project which is the only project that can create attachments under it.
+    "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+        # <code>namespaces/<var>namespace</var></code>.
+    "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
+        # via `beaconinfo.getforobserved`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/proximitybeacon_v1beta1.v1beta1.html b/docs/dyn/proximitybeacon_v1beta1.v1beta1.html
index 68e8c30..d973b28 100644
--- a/docs/dyn/proximitybeacon_v1beta1.v1beta1.html
+++ b/docs/dyn/proximitybeacon_v1beta1.v1beta1.html
@@ -76,22 +76,37 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#getEidparams">getEidparams(x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the Proximity Beacon API's current public key and associated parameters used to initiate the Diffie-Hellman key exchange required to register a beacon that broadcasts the Eddystone-EID format. This key changes periodically; clients may cache it and re-use the same public key to provision and register multiple beacons. However, clients should be prepared to refresh this key when they encounter an error registering an Eddystone-EID beacon.</p>
+<p class="firstline">Gets the Proximity Beacon API's current public key and associated</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="getEidparams">getEidparams(x__xgafv=None)</code>
-  <pre>Gets the Proximity Beacon API's current public key and associated parameters used to initiate the Diffie-Hellman key exchange required to register a beacon that broadcasts the Eddystone-EID format. This key changes periodically; clients may cache it and re-use the same public key to provision and register multiple beacons. However, clients should be prepared to refresh this key when they encounter an error registering an Eddystone-EID beacon.
+  <pre>Gets the Proximity Beacon API's current public key and associated
+parameters used to initiate the Diffie-Hellman key exchange required to
+register a beacon that broadcasts the Eddystone-EID format. This key
+changes periodically; clients may cache it and re-use the same public key
+to provision and register multiple beacons. However, clients should be
+prepared to refresh this key when they encounter an error registering an
+Eddystone-EID beacon.
 
 Args:
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # Information a client needs to provision and register beacons that broadcast Eddystone-EID format beacon IDs, using Elliptic curve Diffie-Hellman key exchange. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
-    "minRotationPeriodExponent": 42, # Indicates the minimum rotation period supported by the service. See EddystoneEidRegistration.rotation_period_exponent
-    "maxRotationPeriodExponent": 42, # Indicates the maximum rotation period supported by the service. See EddystoneEidRegistration.rotation_period_exponent
-    "serviceEcdhPublicKey": "A String", # The beacon service's public key for use by a beacon to derive its Identity Key using Elliptic Curve Diffie-Hellman key exchange.
+    { # Information a client needs to provision and register beacons that
+      # broadcast Eddystone-EID format beacon IDs, using Elliptic curve
+      # Diffie-Hellman key exchange. See
+      # [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
+    "minRotationPeriodExponent": 42, # Indicates the minimum rotation period supported by the service.
+        # See EddystoneEidRegistration.rotation_period_exponent
+    "maxRotationPeriodExponent": 42, # Indicates the maximum rotation period supported by the service.
+        # See EddystoneEidRegistration.rotation_period_exponent
+    "serviceEcdhPublicKey": "A String", # The beacon service's public key for use by a beacon to derive its
+        # Identity Key using Elliptic Curve Diffie-Hellman key exchange.
   }</pre>
 </div>
 
diff --git a/docs/dyn/pubsub_v1.projects.snapshots.html b/docs/dyn/pubsub_v1.projects.snapshots.html
index b872beb..d777b78 100644
--- a/docs/dyn/pubsub_v1.projects.snapshots.html
+++ b/docs/dyn/pubsub_v1.projects.snapshots.html
@@ -366,6 +366,10 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 `resource` is usually specified as a path. For example, a Project
diff --git a/docs/dyn/pubsub_v1.projects.subscriptions.html b/docs/dyn/pubsub_v1.projects.subscriptions.html
index 50eb326..583a0e4 100644
--- a/docs/dyn/pubsub_v1.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1.projects.subscriptions.html
@@ -178,10 +178,6 @@
     The object takes the form of:
 
 { # A subscription resource.
-  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-      # Format is `projects/{project}/topics/{topic}`.
-      # The value of this field will be `_deleted-topic_` if the topic has been
-      # deleted.
   "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
       # before the subscriber should acknowledge the message. After message
       # delivery but before the ack deadline expires and before the message is
@@ -201,6 +197,10 @@
       # 
       # If the subscriber never acknowledges the message, the Pub/Sub
       # system will eventually redeliver the message.
+  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+      # Format is `projects/{project}/topics/{topic}`.
+      # The value of this field will be `_deleted-topic_` if the topic has been
+      # deleted.
   "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
       # used to configure it. An empty `pushConfig` signifies that the subscriber
       # will pull and ack messages using API methods.
@@ -248,10 +248,6 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        # Format is `projects/{project}/topics/{topic}`.
-        # The value of this field will be `_deleted-topic_` if the topic has been
-        # deleted.
     "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
         # before the subscriber should acknowledge the message. After message
         # delivery but before the ack deadline expires and before the message is
@@ -271,6 +267,10 @@
         #
         # If the subscriber never acknowledges the message, the Pub/Sub
         # system will eventually redeliver the message.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # Format is `projects/{project}/topics/{topic}`.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it. An empty `pushConfig` signifies that the subscriber
         # will pull and ack messages using API methods.
@@ -357,10 +357,6 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        # Format is `projects/{project}/topics/{topic}`.
-        # The value of this field will be `_deleted-topic_` if the topic has been
-        # deleted.
     "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
         # before the subscriber should acknowledge the message. After message
         # delivery but before the ack deadline expires and before the message is
@@ -380,6 +376,10 @@
         #
         # If the subscriber never acknowledges the message, the Pub/Sub
         # system will eventually redeliver the message.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # Format is `projects/{project}/topics/{topic}`.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it. An empty `pushConfig` signifies that the subscriber
         # will pull and ack messages using API methods.
@@ -540,10 +540,6 @@
         # `ListSubscriptionsRequest` to get more subscriptions.
     "subscriptions": [ # The subscriptions that match the request.
       { # A subscription resource.
-        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-            # Format is `projects/{project}/topics/{topic}`.
-            # The value of this field will be `_deleted-topic_` if the topic has been
-            # deleted.
         "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
             # before the subscriber should acknowledge the message. After message
             # delivery but before the ack deadline expires and before the message is
@@ -563,6 +559,10 @@
             #
             # If the subscriber never acknowledges the message, the Pub/Sub
             # system will eventually redeliver the message.
+        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+            # Format is `projects/{project}/topics/{topic}`.
+            # The value of this field will be `_deleted-topic_` if the topic has been
+            # deleted.
         "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
             # used to configure it. An empty `pushConfig` signifies that the subscriber
             # will pull and ack messages using API methods.
@@ -980,6 +980,10 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 `resource` is usually specified as a path. For example, a Project
diff --git a/docs/dyn/pubsub_v1.projects.topics.html b/docs/dyn/pubsub_v1.projects.topics.html
index 026d91b..c006cb7 100644
--- a/docs/dyn/pubsub_v1.projects.topics.html
+++ b/docs/dyn/pubsub_v1.projects.topics.html
@@ -583,6 +583,10 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 `resource` is usually specified as a path. For example, a Project
diff --git a/docs/dyn/pubsub_v1beta1a.subscriptions.html b/docs/dyn/pubsub_v1beta1a.subscriptions.html
index 92a10ca..03f1af9 100644
--- a/docs/dyn/pubsub_v1beta1a.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta1a.subscriptions.html
@@ -164,33 +164,33 @@
     The object takes the form of:
 
 { # A subscription resource.
-  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-  "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
-      # subscriber receives a message before the subscriber should acknowledge or
-      # Nack the message. If the Ack deadline for a message passes without an
-      # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
-      # If a subscriber acknowledges after the deadline, the Pub/Sub system may
-      # accept the Ack, but it is possible that the message has been already
-      # delivered again. Multiple Acks to the message are allowed and will
-      # succeed.
-      # 
-      # For push delivery, this value is used to set the request timeout for
-      # the call to the push endpoint.
-      # 
-      # For pull delivery, this value is used as the initial value for the Ack
-      # deadline. It may be overridden for each message using its corresponding
-      # ack_id with <code>ModifyAckDeadline</code>.
-      # While a message is outstanding (i.e. it has been delivered to a pull
-      # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
-      # system will not deliver that message to another pull subscriber
-      # (on a best-effort basis).
-  "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-      # used to configure it.
-    "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-        # For example, a Webhook endpoint might use "https://example.com/push".
-  },
-  "name": "A String", # Name of the subscription.
-}
+    "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
+        # subscriber receives a message before the subscriber should acknowledge or
+        # Nack the message. If the Ack deadline for a message passes without an
+        # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
+        # If a subscriber acknowledges after the deadline, the Pub/Sub system may
+        # accept the Ack, but it is possible that the message has been already
+        # delivered again. Multiple Acks to the message are allowed and will
+        # succeed.
+        # 
+        # For push delivery, this value is used to set the request timeout for
+        # the call to the push endpoint.
+        # 
+        # For pull delivery, this value is used as the initial value for the Ack
+        # deadline. It may be overridden for each message using its corresponding
+        # ack_id with <code>ModifyAckDeadline</code>.
+        # While a message is outstanding (i.e. it has been delivered to a pull
+        # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
+        # system will not deliver that message to another pull subscriber
+        # (on a best-effort basis).
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+        # used to configure it.
+      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+          # For example, a Webhook endpoint might use "https://example.com/push".
+    },
+    "name": "A String", # Name of the subscription.
+  }
 
   x__xgafv: string, V1 error format.
     Allowed values
@@ -201,33 +201,33 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-    "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
-        # subscriber receives a message before the subscriber should acknowledge or
-        # Nack the message. If the Ack deadline for a message passes without an
-        # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
-        # If a subscriber acknowledges after the deadline, the Pub/Sub system may
-        # accept the Ack, but it is possible that the message has been already
-        # delivered again. Multiple Acks to the message are allowed and will
-        # succeed.
-        #
-        # For push delivery, this value is used to set the request timeout for
-        # the call to the push endpoint.
-        #
-        # For pull delivery, this value is used as the initial value for the Ack
-        # deadline. It may be overridden for each message using its corresponding
-        # ack_id with <code>ModifyAckDeadline</code>.
-        # While a message is outstanding (i.e. it has been delivered to a pull
-        # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
-        # system will not deliver that message to another pull subscriber
-        # (on a best-effort basis).
-    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-        # used to configure it.
-      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-          # For example, a Webhook endpoint might use "https://example.com/push".
-    },
-    "name": "A String", # Name of the subscription.
-  }</pre>
+      "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
+          # subscriber receives a message before the subscriber should acknowledge or
+          # Nack the message. If the Ack deadline for a message passes without an
+          # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
+          # If a subscriber acknowledges after the deadline, the Pub/Sub system may
+          # accept the Ack, but it is possible that the message has been already
+          # delivered again. Multiple Acks to the message are allowed and will
+          # succeed.
+          #
+          # For push delivery, this value is used to set the request timeout for
+          # the call to the push endpoint.
+          #
+          # For pull delivery, this value is used as the initial value for the Ack
+          # deadline. It may be overridden for each message using its corresponding
+          # ack_id with <code>ModifyAckDeadline</code>.
+          # While a message is outstanding (i.e. it has been delivered to a pull
+          # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
+          # system will not deliver that message to another pull subscriber
+          # (on a best-effort basis).
+      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+          # used to configure it.
+        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+            # For example, a Webhook endpoint might use "https://example.com/push".
+      },
+      "name": "A String", # Name of the subscription.
+    }</pre>
 </div>
 
 <div class="method">
@@ -278,33 +278,33 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-    "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
-        # subscriber receives a message before the subscriber should acknowledge or
-        # Nack the message. If the Ack deadline for a message passes without an
-        # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
-        # If a subscriber acknowledges after the deadline, the Pub/Sub system may
-        # accept the Ack, but it is possible that the message has been already
-        # delivered again. Multiple Acks to the message are allowed and will
-        # succeed.
-        #
-        # For push delivery, this value is used to set the request timeout for
-        # the call to the push endpoint.
-        #
-        # For pull delivery, this value is used as the initial value for the Ack
-        # deadline. It may be overridden for each message using its corresponding
-        # ack_id with <code>ModifyAckDeadline</code>.
-        # While a message is outstanding (i.e. it has been delivered to a pull
-        # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
-        # system will not deliver that message to another pull subscriber
-        # (on a best-effort basis).
-    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-        # used to configure it.
-      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-          # For example, a Webhook endpoint might use "https://example.com/push".
-    },
-    "name": "A String", # Name of the subscription.
-  }</pre>
+      "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
+          # subscriber receives a message before the subscriber should acknowledge or
+          # Nack the message. If the Ack deadline for a message passes without an
+          # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
+          # If a subscriber acknowledges after the deadline, the Pub/Sub system may
+          # accept the Ack, but it is possible that the message has been already
+          # delivered again. Multiple Acks to the message are allowed and will
+          # succeed.
+          #
+          # For push delivery, this value is used to set the request timeout for
+          # the call to the push endpoint.
+          #
+          # For pull delivery, this value is used as the initial value for the Ack
+          # deadline. It may be overridden for each message using its corresponding
+          # ack_id with <code>ModifyAckDeadline</code>.
+          # While a message is outstanding (i.e. it has been delivered to a pull
+          # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
+          # system will not deliver that message to another pull subscriber
+          # (on a best-effort basis).
+      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+          # used to configure it.
+        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+            # For example, a Webhook endpoint might use "https://example.com/push".
+      },
+      "name": "A String", # Name of the subscription.
+    }</pre>
 </div>
 
 <div class="method">
@@ -330,33 +330,33 @@
         # <code>ListSubscriptionsRequest</code> to continue.
     "subscription": [ # The subscriptions that match the request.
       { # A subscription resource.
-        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
-            # subscriber receives a message before the subscriber should acknowledge or
-            # Nack the message. If the Ack deadline for a message passes without an
-            # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
-            # If a subscriber acknowledges after the deadline, the Pub/Sub system may
-            # accept the Ack, but it is possible that the message has been already
-            # delivered again. Multiple Acks to the message are allowed and will
-            # succeed.
-            #
-            # For push delivery, this value is used to set the request timeout for
-            # the call to the push endpoint.
-            #
-            # For pull delivery, this value is used as the initial value for the Ack
-            # deadline. It may be overridden for each message using its corresponding
-            # ack_id with <code>ModifyAckDeadline</code>.
-            # While a message is outstanding (i.e. it has been delivered to a pull
-            # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
-            # system will not deliver that message to another pull subscriber
-            # (on a best-effort basis).
-        "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-            # used to configure it.
-          "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-              # For example, a Webhook endpoint might use "https://example.com/push".
+          "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
+              # subscriber receives a message before the subscriber should acknowledge or
+              # Nack the message. If the Ack deadline for a message passes without an
+              # Ack or a Nack, the Pub/Sub system will eventually redeliver the message.
+              # If a subscriber acknowledges after the deadline, the Pub/Sub system may
+              # accept the Ack, but it is possible that the message has been already
+              # delivered again. Multiple Acks to the message are allowed and will
+              # succeed.
+              #
+              # For push delivery, this value is used to set the request timeout for
+              # the call to the push endpoint.
+              #
+              # For pull delivery, this value is used as the initial value for the Ack
+              # deadline. It may be overridden for each message using its corresponding
+              # ack_id with <code>ModifyAckDeadline</code>.
+              # While a message is outstanding (i.e. it has been delivered to a pull
+              # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
+              # system will not deliver that message to another pull subscriber
+              # (on a best-effort basis).
+          "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+          "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+              # used to configure it.
+            "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+                # For example, a Webhook endpoint might use "https://example.com/push".
+          },
+          "name": "A String", # Name of the subscription.
         },
-        "name": "A String", # Name of the subscription.
-      },
     ],
   }</pre>
 </div>
diff --git a/docs/dyn/pubsub_v1beta1a.topics.html b/docs/dyn/pubsub_v1beta1a.topics.html
index a46385c..0fcb01e 100644
--- a/docs/dyn/pubsub_v1beta1a.topics.html
+++ b/docs/dyn/pubsub_v1beta1a.topics.html
@@ -193,14 +193,14 @@
   An object of the form:
 
     { # Response for the ListTopics method.
+    "nextPageToken": "A String", # If not empty, indicates that there are more topics that match the request,
+        # and this value should be passed to the next <code>ListTopicsRequest</code>
+        # to continue.
     "topic": [ # The resulting topics.
       { # A topic resource.
         "name": "A String", # Name of the topic.
       },
     ],
-    "nextPageToken": "A String", # If not empty, indicates that there are more topics that match the request,
-        # and this value should be passed to the next <code>ListTopicsRequest</code>
-        # to continue.
   }</pre>
 </div>
 
diff --git a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
index 1b34bc4..5d1a152 100644
--- a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
@@ -174,95 +174,27 @@
     The object takes the form of:
 
 { # A subscription resource.
-  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-      # The value of this field will be `_deleted-topic_` if the topic has been
-      # deleted.
-  "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-      # before the subscriber should acknowledge the message. After message
-      # delivery but before the ack deadline expires and before the message is
-      # acknowledged, it is an outstanding message and will not be delivered
-      # again during that time (on a best-effort basis).
-      # 
-      # For pull subscriptions, this value is used as the initial value for the ack
-      # deadline. To override this value for a given message, call
-      # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-      # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-      # 
-      # For push delivery, this value is also used to set the request timeout for
-      # the call to the push endpoint.
-      # 
-      # If the subscriber never acknowledges the message, the Pub/Sub
-      # system will eventually redeliver the message.
-      # 
-      # If this parameter is 0, a default value of 10 seconds is used.
-  "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-      # used to configure it. An empty `pushConfig` signifies that the subscriber
-      # will pull and ack messages using API methods.
-    "attributes": { # Endpoint configuration attributes.
-        #
-        # Every endpoint has a set of API supported attributes that can be used to
-        # control different aspects of the message delivery.
-        #
-        # The currently supported attribute is `x-goog-version`, which you can
-        # use to change the format of the push message. This attribute
-        # indicates the version of the data expected by the endpoint. This
-        # controls the shape of the envelope (i.e. its fields and metadata).
-        # The endpoint version is based on the version of the Pub/Sub
-        # API.
-        #
-        # If not present during the `CreateSubscription` call, it will default to
-        # the version of the API used to make such call. If not present during a
-        # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-        # calls will always return a valid version, even if the subscription was
-        # created without this attribute.
-        #
-        # The possible values for this attribute are:
-        #
-        # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-        # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-      "a_key": "A String",
-    },
-    "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-        # For example, a Webhook endpoint might use "https://example.com/push".
-  },
-  "name": "A String", # The name of the subscription. It must have the format
-      # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-      # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-      # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-      # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-      # in length, and it must not start with `"goog"`.
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        # The value of this field will be `_deleted-topic_` if the topic has been
-        # deleted.
     "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
         # before the subscriber should acknowledge the message. After message
         # delivery but before the ack deadline expires and before the message is
         # acknowledged, it is an outstanding message and will not be delivered
         # again during that time (on a best-effort basis).
-        #
+        # 
         # For pull subscriptions, this value is used as the initial value for the ack
         # deadline. To override this value for a given message, call
         # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
         # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-        #
+        # 
         # For push delivery, this value is also used to set the request timeout for
         # the call to the push endpoint.
-        #
+        # 
         # If the subscriber never acknowledges the message, the Pub/Sub
         # system will eventually redeliver the message.
-        #
+        # 
         # If this parameter is 0, a default value of 10 seconds is used.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it. An empty `pushConfig` signifies that the subscriber
         # will pull and ack messages using API methods.
@@ -299,7 +231,75 @@
         # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
         # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
         # in length, and it must not start with `"goog"`.
-  }</pre>
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A subscription resource.
+      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+          # before the subscriber should acknowledge the message. After message
+          # delivery but before the ack deadline expires and before the message is
+          # acknowledged, it is an outstanding message and will not be delivered
+          # again during that time (on a best-effort basis).
+          #
+          # For pull subscriptions, this value is used as the initial value for the ack
+          # deadline. To override this value for a given message, call
+          # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+          #
+          # For push delivery, this value is also used to set the request timeout for
+          # the call to the push endpoint.
+          #
+          # If the subscriber never acknowledges the message, the Pub/Sub
+          # system will eventually redeliver the message.
+          #
+          # If this parameter is 0, a default value of 10 seconds is used.
+      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+          # The value of this field will be `_deleted-topic_` if the topic has been
+          # deleted.
+      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+          # used to configure it. An empty `pushConfig` signifies that the subscriber
+          # will pull and ack messages using API methods.
+        "attributes": { # Endpoint configuration attributes.
+            #
+            # Every endpoint has a set of API supported attributes that can be used to
+            # control different aspects of the message delivery.
+            #
+            # The currently supported attribute is `x-goog-version`, which you can
+            # use to change the format of the push message. This attribute
+            # indicates the version of the data expected by the endpoint. This
+            # controls the shape of the envelope (i.e. its fields and metadata).
+            # The endpoint version is based on the version of the Pub/Sub
+            # API.
+            #
+            # If not present during the `CreateSubscription` call, it will default to
+            # the version of the API used to make such call. If not present during a
+            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+            # calls will always return a valid version, even if the subscription was
+            # created without this attribute.
+            #
+            # The possible values for this attribute are:
+            #
+            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+          "a_key": "A String",
+        },
+        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+            # For example, a Webhook endpoint might use "https://example.com/push".
+      },
+      "name": "A String", # The name of the subscription. It must have the format
+          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+          # in length, and it must not start with `"goog"`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -347,64 +347,64 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        # The value of this field will be `_deleted-topic_` if the topic has been
-        # deleted.
-    "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-        # before the subscriber should acknowledge the message. After message
-        # delivery but before the ack deadline expires and before the message is
-        # acknowledged, it is an outstanding message and will not be delivered
-        # again during that time (on a best-effort basis).
-        #
-        # For pull subscriptions, this value is used as the initial value for the ack
-        # deadline. To override this value for a given message, call
-        # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-        # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-        #
-        # For push delivery, this value is also used to set the request timeout for
-        # the call to the push endpoint.
-        #
-        # If the subscriber never acknowledges the message, the Pub/Sub
-        # system will eventually redeliver the message.
-        #
-        # If this parameter is 0, a default value of 10 seconds is used.
-    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-        # used to configure it. An empty `pushConfig` signifies that the subscriber
-        # will pull and ack messages using API methods.
-      "attributes": { # Endpoint configuration attributes.
+      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+          # before the subscriber should acknowledge the message. After message
+          # delivery but before the ack deadline expires and before the message is
+          # acknowledged, it is an outstanding message and will not be delivered
+          # again during that time (on a best-effort basis).
           #
-          # Every endpoint has a set of API supported attributes that can be used to
-          # control different aspects of the message delivery.
+          # For pull subscriptions, this value is used as the initial value for the ack
+          # deadline. To override this value for a given message, call
+          # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
           #
-          # The currently supported attribute is `x-goog-version`, which you can
-          # use to change the format of the push message. This attribute
-          # indicates the version of the data expected by the endpoint. This
-          # controls the shape of the envelope (i.e. its fields and metadata).
-          # The endpoint version is based on the version of the Pub/Sub
-          # API.
+          # For push delivery, this value is also used to set the request timeout for
+          # the call to the push endpoint.
           #
-          # If not present during the `CreateSubscription` call, it will default to
-          # the version of the API used to make such call. If not present during a
-          # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-          # calls will always return a valid version, even if the subscription was
-          # created without this attribute.
+          # If the subscriber never acknowledges the message, the Pub/Sub
+          # system will eventually redeliver the message.
           #
-          # The possible values for this attribute are:
-          #
-          # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-          # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-        "a_key": "A String",
+          # If this parameter is 0, a default value of 10 seconds is used.
+      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+          # The value of this field will be `_deleted-topic_` if the topic has been
+          # deleted.
+      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+          # used to configure it. An empty `pushConfig` signifies that the subscriber
+          # will pull and ack messages using API methods.
+        "attributes": { # Endpoint configuration attributes.
+            #
+            # Every endpoint has a set of API supported attributes that can be used to
+            # control different aspects of the message delivery.
+            #
+            # The currently supported attribute is `x-goog-version`, which you can
+            # use to change the format of the push message. This attribute
+            # indicates the version of the data expected by the endpoint. This
+            # controls the shape of the envelope (i.e. its fields and metadata).
+            # The endpoint version is based on the version of the Pub/Sub
+            # API.
+            #
+            # If not present during the `CreateSubscription` call, it will default to
+            # the version of the API used to make such call. If not present during a
+            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+            # calls will always return a valid version, even if the subscription was
+            # created without this attribute.
+            #
+            # The possible values for this attribute are:
+            #
+            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+          "a_key": "A String",
+        },
+        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+            # For example, a Webhook endpoint might use "https://example.com/push".
       },
-      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-          # For example, a Webhook endpoint might use "https://example.com/push".
-    },
-    "name": "A String", # The name of the subscription. It must have the format
-        # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-        # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-        # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-        # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-        # in length, and it must not start with `"goog"`.
-  }</pre>
+      "name": "A String", # The name of the subscription. It must have the format
+          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+          # in length, and it must not start with `"goog"`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -527,64 +527,64 @@
         # `ListSubscriptionsRequest` to get more subscriptions.
     "subscriptions": [ # The subscriptions that match the request.
       { # A subscription resource.
-        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-            # The value of this field will be `_deleted-topic_` if the topic has been
-            # deleted.
-        "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-            # before the subscriber should acknowledge the message. After message
-            # delivery but before the ack deadline expires and before the message is
-            # acknowledged, it is an outstanding message and will not be delivered
-            # again during that time (on a best-effort basis).
-            #
-            # For pull subscriptions, this value is used as the initial value for the ack
-            # deadline. To override this value for a given message, call
-            # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-            # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-            #
-            # For push delivery, this value is also used to set the request timeout for
-            # the call to the push endpoint.
-            #
-            # If the subscriber never acknowledges the message, the Pub/Sub
-            # system will eventually redeliver the message.
-            #
-            # If this parameter is 0, a default value of 10 seconds is used.
-        "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-            # used to configure it. An empty `pushConfig` signifies that the subscriber
-            # will pull and ack messages using API methods.
-          "attributes": { # Endpoint configuration attributes.
+          "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+              # before the subscriber should acknowledge the message. After message
+              # delivery but before the ack deadline expires and before the message is
+              # acknowledged, it is an outstanding message and will not be delivered
+              # again during that time (on a best-effort basis).
               #
-              # Every endpoint has a set of API supported attributes that can be used to
-              # control different aspects of the message delivery.
+              # For pull subscriptions, this value is used as the initial value for the ack
+              # deadline. To override this value for a given message, call
+              # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+              # The maximum custom deadline you can specify is 600 seconds (10 minutes).
               #
-              # The currently supported attribute is `x-goog-version`, which you can
-              # use to change the format of the push message. This attribute
-              # indicates the version of the data expected by the endpoint. This
-              # controls the shape of the envelope (i.e. its fields and metadata).
-              # The endpoint version is based on the version of the Pub/Sub
-              # API.
+              # For push delivery, this value is also used to set the request timeout for
+              # the call to the push endpoint.
               #
-              # If not present during the `CreateSubscription` call, it will default to
-              # the version of the API used to make such call. If not present during a
-              # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-              # calls will always return a valid version, even if the subscription was
-              # created without this attribute.
+              # If the subscriber never acknowledges the message, the Pub/Sub
+              # system will eventually redeliver the message.
               #
-              # The possible values for this attribute are:
-              #
-              # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-              # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-            "a_key": "A String",
+              # If this parameter is 0, a default value of 10 seconds is used.
+          "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+              # The value of this field will be `_deleted-topic_` if the topic has been
+              # deleted.
+          "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+              # used to configure it. An empty `pushConfig` signifies that the subscriber
+              # will pull and ack messages using API methods.
+            "attributes": { # Endpoint configuration attributes.
+                #
+                # Every endpoint has a set of API supported attributes that can be used to
+                # control different aspects of the message delivery.
+                #
+                # The currently supported attribute is `x-goog-version`, which you can
+                # use to change the format of the push message. This attribute
+                # indicates the version of the data expected by the endpoint. This
+                # controls the shape of the envelope (i.e. its fields and metadata).
+                # The endpoint version is based on the version of the Pub/Sub
+                # API.
+                #
+                # If not present during the `CreateSubscription` call, it will default to
+                # the version of the API used to make such call. If not present during a
+                # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+                # calls will always return a valid version, even if the subscription was
+                # created without this attribute.
+                #
+                # The possible values for this attribute are:
+                #
+                # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+                # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+              "a_key": "A String",
+            },
+            "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+                # For example, a Webhook endpoint might use "https://example.com/push".
           },
-          "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-              # For example, a Webhook endpoint might use "https://example.com/push".
+          "name": "A String", # The name of the subscription. It must have the format
+              # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+              # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+              # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+              # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+              # in length, and it must not start with `"goog"`.
         },
-        "name": "A String", # The name of the subscription. It must have the format
-            # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-            # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-            # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-            # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-            # in length, and it must not start with `"goog"`.
-      },
     ],
   }</pre>
 </div>
@@ -962,6 +962,10 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 `resource` is usually specified as a path. For example, a Project
diff --git a/docs/dyn/pubsub_v1beta2.projects.topics.html b/docs/dyn/pubsub_v1beta2.projects.topics.html
index 9898eaa..1f5c349 100644
--- a/docs/dyn/pubsub_v1beta2.projects.topics.html
+++ b/docs/dyn/pubsub_v1beta2.projects.topics.html
@@ -580,6 +580,10 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 `resource` is usually specified as a path. For example, a Project
diff --git a/docs/dyn/reseller_v1.customers.html b/docs/dyn/reseller_v1.customers.html
index b2c135d..eb2101e 100644
--- a/docs/dyn/reseller_v1.customers.html
+++ b/docs/dyn/reseller_v1.customers.html
@@ -76,137 +76,137 @@
 <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="firstline">Get a customer account.</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="firstline">Order a new customer's account.</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="firstline">Update a customer account's settings. 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>
+<p class="firstline">Update a customer account's settings.</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.
+  <pre>Get a customer account.
 
 Args:
-  customerId: string, Id of the Customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
 
 Returns:
   An object of the form:
 
     { # JSON template for a customer.
-      "customerDomain": "A String", # The domain name of the customer.
+      "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
       "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-      "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.
+      "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+      "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+      "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+      "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+      "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+        "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+        "organizationName": "A String", # The company or company division name. This is required.
+        "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+        "locality": "A String", # An example of a locality value is the city of San Francisco.
+        "region": "A String", # An example of a region value is CA for the state of California.
+        "addressLine2": "A String", # Line 2 of the address.
+        "addressLine3": "A String", # Line 3 of the address.
+        "contactName": "A String", # The customer contact's name. This is required.
+        "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+        "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
       },
-      "customerId": "A String", # The id of the customer.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</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.
+  <pre>Order a new customer's account.
 
 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.
+    "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
     "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-    "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.
+    "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+    "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+    "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+    "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+    "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+      "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+      "organizationName": "A String", # The company or company division name. This is required.
+      "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+      "locality": "A String", # An example of a locality value is the city of San Francisco.
+      "region": "A String", # An example of a region value is CA for the state of California.
+      "addressLine2": "A String", # Line 2 of the address.
+      "addressLine3": "A String", # Line 3 of the address.
+      "contactName": "A String", # The customer contact's name. This is required.
+      "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+      "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
     },
-    "customerId": "A String", # The id of the customer.
+    "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
   }
 
-  customerAuthToken: string, An auth token needed for inserting a customer for which domain already exists. Can be generated at https://admin.google.com/TransferToken. Optional.
+  customerAuthToken: string, The customerAuthToken query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
 
 Returns:
   An object of the form:
 
     { # JSON template for a customer.
-      "customerDomain": "A String", # The domain name of the customer.
+      "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
       "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-      "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.
+      "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+      "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+      "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+      "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+      "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+        "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+        "organizationName": "A String", # The company or company division name. This is required.
+        "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+        "locality": "A String", # An example of a locality value is the city of San Francisco.
+        "region": "A String", # An example of a region value is CA for the state of California.
+        "addressLine2": "A String", # Line 2 of the address.
+        "addressLine3": "A String", # Line 3 of the address.
+        "contactName": "A String", # The customer contact's name. This is required.
+        "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+        "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
       },
-      "customerId": "A String", # The id of the customer.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</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.
+  <pre>Update a customer account's settings. This method supports patch semantics.
 
 Args:
-  customerId: string, Id of the Customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (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.
+    "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
     "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-    "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.
+    "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+    "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+    "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+    "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+    "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+      "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+      "organizationName": "A String", # The company or company division name. This is required.
+      "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+      "locality": "A String", # An example of a locality value is the city of San Francisco.
+      "region": "A String", # An example of a region value is CA for the state of California.
+      "addressLine2": "A String", # Line 2 of the address.
+      "addressLine3": "A String", # Line 3 of the address.
+      "contactName": "A String", # The customer contact's name. This is required.
+      "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+      "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
     },
-    "customerId": "A String", # The id of the customer.
+    "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
   }
 
 
@@ -214,57 +214,57 @@
   An object of the form:
 
     { # JSON template for a customer.
-      "customerDomain": "A String", # The domain name of the customer.
+      "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
       "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-      "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.
+      "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+      "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+      "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+      "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+      "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+        "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+        "organizationName": "A String", # The company or company division name. This is required.
+        "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+        "locality": "A String", # An example of a locality value is the city of San Francisco.
+        "region": "A String", # An example of a region value is CA for the state of California.
+        "addressLine2": "A String", # Line 2 of the address.
+        "addressLine3": "A String", # Line 3 of the address.
+        "contactName": "A String", # The customer contact's name. This is required.
+        "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+        "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
       },
-      "customerId": "A String", # The id of the customer.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</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.
+  <pre>Update a customer account's settings.
 
 Args:
-  customerId: string, Id of the Customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (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.
+    "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
     "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-    "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.
+    "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+    "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+    "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+    "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+    "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+      "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+      "organizationName": "A String", # The company or company division name. This is required.
+      "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+      "locality": "A String", # An example of a locality value is the city of San Francisco.
+      "region": "A String", # An example of a region value is CA for the state of California.
+      "addressLine2": "A String", # Line 2 of the address.
+      "addressLine3": "A String", # Line 3 of the address.
+      "contactName": "A String", # The customer contact's name. This is required.
+      "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+      "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
     },
-    "customerId": "A String", # The id of the customer.
+    "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
   }
 
 
@@ -272,25 +272,25 @@
   An object of the form:
 
     { # JSON template for a customer.
-      "customerDomain": "A String", # The domain name of the customer.
+      "customerDomain": "A String", # The customer's primary domain name string. customerDomain is required when creating a new customer. Do not include the www prefix in the domain when adding a customer.
       "customerDomainVerified": True or False, # Whether the customer's primary domain has been verified.
-      "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.
+      "alternateEmail": "A String", # Like the "Customer email" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new customer and should not use the same domain as customerDomain.
+      "kind": "reseller#customer", # Identifies the resource as a customer. Value: reseller#customer
+      "resourceUiUrl": "A String", # URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
+      "phoneNumber": "A String", # Customer contact phone number. This can be continuous numbers, with spaces, etc. But it must be a real phone number and not, for example, "123". See phone  local format conventions.
+      "postalAddress": { # JSON template for address of a customer. # A customer's address information. Each field has a limit of 255 charcters.
+        "kind": "customers#address", # Identifies the resource as a customer address. Value: customers#address
+        "organizationName": "A String", # The company or company division name. This is required.
+        "countryCode": "A String", # For countryCode information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
+        "locality": "A String", # An example of a locality value is the city of San Francisco.
+        "region": "A String", # An example of a region value is CA for the state of California.
+        "addressLine2": "A String", # Line 2 of the address.
+        "addressLine3": "A String", # Line 3 of the address.
+        "contactName": "A String", # The customer contact's name. This is required.
+        "addressLine1": "A String", # A customer's physical address. An address can be composed of one to three lines. The addressline2 and addressLine3 are optional.
+        "postalCode": "A String", # A postalCode example is a postal zip code such as 94043. This property is required when creating a new customer.
       },
-      "customerId": "A String", # The id of the customer.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
diff --git a/docs/dyn/reseller_v1.html b/docs/dyn/reseller_v1.html
index 4acbb82..d18095b 100644
--- a/docs/dyn/reseller_v1.html
+++ b/docs/dyn/reseller_v1.html
@@ -80,6 +80,11 @@
 <p class="firstline">Returns the customers Resource.</p>
 
 <p class="toc_element">
+  <code><a href="reseller_v1.resellernotify.html">resellernotify()</a></code>
+</p>
+<p class="firstline">Returns the resellernotify 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>
diff --git a/docs/dyn/reseller_v1.resellernotify.html b/docs/dyn/reseller_v1.resellernotify.html
new file mode 100644
index 0000000..e61cd81
--- /dev/null
+++ b/docs/dyn/reseller_v1.resellernotify.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="reseller_v1.html">Enterprise Apps Reseller API</a> . <a href="reseller_v1.resellernotify.html">resellernotify</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getwatchdetails">getwatchdetails()</a></code></p>
+<p class="firstline">Returns all the details of the watch corresponding to the reseller.</p>
+<p class="toc_element">
+  <code><a href="#register">register(serviceAccountEmailAddress=None)</a></code></p>
+<p class="firstline">Registers a Reseller for receiving notifications.</p>
+<p class="toc_element">
+  <code><a href="#unregister">unregister(serviceAccountEmailAddress=None)</a></code></p>
+<p class="firstline">Unregisters a Reseller for receiving notifications.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getwatchdetails">getwatchdetails()</code>
+  <pre>Returns all the details of the watch corresponding to the reseller.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # JSON template for resellernotify getwatchdetails response.
+    "serviceAccountEmailAddresses": [ # List of registered service accounts.
+      "A String",
+    ],
+    "topicName": "A String", # Topic name of the PubSub
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="register">register(serviceAccountEmailAddress=None)</code>
+  <pre>Registers a Reseller for receiving notifications.
+
+Args:
+  serviceAccountEmailAddress: string, The service account which will own the created Cloud-PubSub topic.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for resellernotify response.
+    "topicName": "A String", # Topic name of the PubSub
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unregister">unregister(serviceAccountEmailAddress=None)</code>
+  <pre>Unregisters a Reseller for receiving notifications.
+
+Args:
+  serviceAccountEmailAddress: string, The service account which owns the Cloud-PubSub topic.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for resellernotify response.
+    "topicName": "A String", # Topic name of the PubSub
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/reseller_v1.subscriptions.html b/docs/dyn/reseller_v1.subscriptions.html
index c95ca0a..40332da 100644
--- a/docs/dyn/reseller_v1.subscriptions.html
+++ b/docs/dyn/reseller_v1.subscriptions.html
@@ -79,116 +79,146 @@
 <p class="firstline">Activates a subscription previously suspended by the reseller</p>
 <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="firstline">Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments.</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="firstline">Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only.</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="firstline">Update a subscription's user license settings.</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="firstline">Cancel, suspend or transfer a subscription to direct.</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="firstline">Get a specific subscription.</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="firstline">Create or transfer a subscription.</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="firstline">List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#startPaidService">startPaidService(customerId, subscriptionId)</a></code></p>
-<p class="firstline">Starts paid service of a trial subscription</p>
+<p class="firstline">Immediately move a 30-day free trial subscription to a paid service subscription.</p>
 <p class="toc_element">
   <code><a href="#suspend">suspend(customerId, subscriptionId)</a></code></p>
-<p class="firstline">Suspends an active subscription</p>
+<p class="firstline">Suspends an active subscription.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="activate">activate(customerId, subscriptionId)</code>
   <pre>Activates a subscription previously suspended by the reseller
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="changePlan">changePlan(customerId, subscriptionId, body)</code>
-  <pre>Changes the plan of a subscription
+  <pre>Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
-    "dealCode": "A String", # External name of the deal code applicable for the subscription. This field is optional. If missing, the deal price plan won't be used.
-    "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.
+    "planName": "A String", # The planName property is required. This is the name of the subscription's payment plan. For more information about the Google payment plans, see API concepts.
+        # 
+        # Possible values are:
+        # - ANNUAL_MONTHLY_PAY - The annual commitment plan with monthly payments
+        # - ANNUAL_YEARLY_PAY - The annual commitment plan with yearly payments
+        # - FLEXIBLE - The flexible plan
+        # - TRIAL - The 30-day free trial plan
+    "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in changePlan request in order to receive discounted rate. This property is optional. If a deal code has already been added to a subscription, this property may be left empty and the existing discounted rate will still apply (if not empty, only provide the deal code that is already present on the subscription). If a deal code has never been added to a subscription and this property is left blank, regular pricing will apply.
+    "kind": "subscriptions#changePlanRequest", # Identifies the resource as a subscription change plan request. Value: subscriptions#changePlanRequest
+    "seats": { # JSON template for subscription seats. # This is a required property. The seats property is the number of user seat licenses.
+      "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+      "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+          # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+          # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+          # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+      "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+          # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+          # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+          # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
       "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
     },
-    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+    "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
   }
 
 
@@ -196,67 +226,85 @@
   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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</code>
-  <pre>Changes the renewal settings of a subscription
+  <pre>Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+  "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+  "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
 }
 
 
@@ -264,68 +312,92 @@
   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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="changeSeats">changeSeats(customerId, subscriptionId, body)</code>
-  <pre>Changes the seats configuration of a subscription
+  <pre>Update a subscription's user license settings.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+  "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+  "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+      # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+      # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+      # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+  "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+      # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+      # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+      # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
   "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
 }
 
@@ -334,305 +406,403 @@
   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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(customerId, subscriptionId, deletionType)</code>
-  <pre>Cancels/Downgrades a subscription.
+  <pre>Cancel, suspend or transfer a subscription to direct.
 
 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)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (required)
+  deletionType: string, The deletionType query string enables the cancellation, downgrade, or suspension of a subscription. (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
-      transfer_to_direct - Transfers a subscription directly to Google
+      cancel - Cancels the subscription immediately. This does not apply to a G Suite subscription.
+      downgrade - Downgrades a G Suite subscription to a Google Apps Free edition subscription only if the customer was initially subscribed to a Google Apps Free edition (also known as the Standard edition). Once downgraded, the customer no longer has access to the previous G Suite subscription and is no longer managed by the reseller.
+
+A G Suite subscription's downgrade cannot be invoked if an active or suspended Google Drive or Google Vault subscription is present. The Google Drive or Google Vault subscription must be cancelled before the G Suite subscription's downgrade is invoked.
+
+The downgrade deletionType does not apply to other products or G Suite SKUs.
+      suspend - (DEPRECATED) The G Suite account is suspended for four days and then cancelled. Once suspended, an administrator has access to the suspended account, but the account users can not access their services. A suspension can be lifted, using the reseller tools.
+
+A G Suite subscription's suspension can not be invoked if an active or suspended Google Drive or Google Vault subscription is present. The Google Drive or Google Vault subscription must be cancelled before the G Suite subscription's suspension is invoked.
+      transfer_to_direct - Transfers a subscription directly to Google.  The customer is immediately transferred to a direct billing relationship with Google and is given a short amount of time with no service interruption. The customer can then choose to set up billing directly with Google by using a credit card, or they can transfer to another reseller.
 </pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(customerId, subscriptionId)</code>
-  <pre>Gets a subscription of the customer.
+  <pre>Get a specific subscription.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="insert">insert(customerId, body, customerAuthToken=None)</code>
-  <pre>Creates/Transfers a subscription for the customer.
+  <pre>Create or transfer a subscription.
 
 Args:
-  customerId: string, Id of the Customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (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.
+    "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+      "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+      "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
     },
-    "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+    "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
     "customerDomain": "A String", # Primary domain name of the customer
-    "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.
+    "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+      "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+      "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+          # - true — The plan is in trial.
+          # - false — The plan is not in trial.
     },
-    "skuId": "A String", # Name of the sku for which this subscription is purchased.
-    "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.
+    "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+    "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+    "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+      "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+      "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+          # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+          # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+          # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+      "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+          # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+          # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+          # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
       "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
     },
-    "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-    "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-    "transferInfo": { # Transfer related information for the subscription.
-      "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-      "minimumTransferableSeats": 42,
+    "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+    "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+    "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+      "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+      "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
     },
-    "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.
+    "status": "A String", # This is an optional property.
+    "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+      "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+          # 
+          # Possible values are:
+          # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+          # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+          # - FLEXIBLE — The flexible plan
+          # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+      "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+        "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
       },
-      "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+          # - true — The subscription's plan is an annual commitment plan.
+          # - false — The plan is not an annual commitment plan.
     },
-    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-    "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-        # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+    "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+    "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+        # 
+        # Possible options include:
+        # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
         # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
         # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
         # - TRIAL_ENDED - The customer's trial expired without a plan selected.
         # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
       "A String",
     ],
-    "subscriptionId": "A String", # The id of the subscription.
-    "billingMethod": "A String", # Billing method of this subscription.
-    "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+    "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+    "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
   }
 
-  customerAuthToken: string, An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.
+  customerAuthToken: string, The customerAuthToken query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
 
 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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</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.
+  <pre>List of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions.
 
 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.
+  customerAuthToken: string, The customerAuthToken query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
   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
+  maxResults: integer, When retrieving a large list, the maxResults is the maximum number of results per page. The nextPageToken value takes you to the next page. The default is 20.
+  customerNamePrefix: string, When retrieving all of your subscriptions and filtering for specific customers, you can enter a prefix for a customer name. Using an example customer group that includes exam.com, example20.com and example.com:  
+- exa -- Returns all customer names that start with 'exa' which could include exam.com, example20.com, and example.com. A name prefix is similar to using a regular expression's asterisk, exa*. 
+- example -- Returns example20.com and example.com.
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates.
 
 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.
+    "kind": "reseller#subscriptions", # Identifies the resource as a collection of subscriptions. Value: reseller#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.
+          "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+            "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+            "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
           },
-          "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+          "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
           "customerDomain": "A String", # Primary domain name of the customer
-          "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.
+          "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+            "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+            "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+                # - true — The plan is in trial.
+                # - false — The plan is not in trial.
           },
-          "skuId": "A String", # Name of the sku for which this subscription is purchased.
-          "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.
+          "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+          "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+          "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+            "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+            "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+                # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+                # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+                # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+            "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+                # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+                # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+                # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
             "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
           },
-          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-          "transferInfo": { # Transfer related information for the subscription.
-            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-            "minimumTransferableSeats": 42,
+          "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+          "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+          "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+            "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+            "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
           },
-          "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.
+          "status": "A String", # This is an optional property.
+          "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+            "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+                #
+                # Possible values are:
+                # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+                # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+                # - FLEXIBLE — The flexible plan
+                # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+            "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+              "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+              "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
             },
-            "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+            "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+                # - true — The subscription's plan is an annual commitment plan.
+                # - false — The plan is not an annual commitment plan.
           },
-          "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-          "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-              # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+          "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+          "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+              #
+              # Possible options include:
+              # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
               # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
               # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
               # - TRIAL_ENDED - The customer's trial expired without a plan selected.
               # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
             "A String",
           ],
-          "subscriptionId": "A String", # The id of the subscription.
-          "billingMethod": "A String", # Billing method of this subscription.
-          "customerId": "A String", # The id of the customer to whom the subscription belongs.
+          "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+          "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+          "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
         },
     ],
   }</pre>
@@ -654,121 +824,157 @@
 
 <div class="method">
     <code class="details" id="startPaidService">startPaidService(customerId, subscriptionId)</code>
-  <pre>Starts paid service of a trial subscription
+  <pre>Immediately move a 30-day free trial subscription to a paid service subscription.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="suspend">suspend(customerId, subscriptionId)</code>
-  <pre>Suspends an active subscription
+  <pre>Suspends an active subscription.
 
 Args:
-  customerId: string, Id of the Customer (required)
-  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  customerId: string, Either the customer's primary domain name or the customer's unique identifier. If using the domain name, we do not recommend using a customerId as a key for persistent data. If the domain name for a customerId is changed, the Google system automatically updates. (required)
+  subscriptionId: string, This is a required property. The subscriptionId is the subscription identifier and is unique for each customer. Since a subscriptionId changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the subscriptionId can be found using the retrieve all reseller subscriptions method. (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.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting. Value: subscriptions#renewalSettings
+        "renewalType": "A String", # Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the renewalType is a required property.
       },
-      "dealCode": "A String", # External name of the deal, if this subscription was provisioned under one. Otherwise this field will be empty.
+      "dealCode": "A String", # Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in insert requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.
       "customerDomain": "A String", # Primary domain name of the customer
-      "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.
+      "trialSettings": { # The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.
+        "trialEndTime": "A String", # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+        "isInTrial": True or False, # Determines if a subscription's plan is in a 30-day free trial or not:
+            # - true — The plan is in trial.
+            # - false — The plan is not in trial.
       },
-      "skuId": "A String", # Name of the sku for which this subscription is purchased.
-      "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.
+      "skuId": "A String", # A required property. The skuId is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see  Product and SKU IDs.
+      "resourceUiUrl": "A String", # URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.
+      "seats": { # JSON template for subscription seats. # This is a required property. The number and limit of user seat licenses in the plan.
+        "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request. Value: subscriptions#seats
+        "numberOfSeats": 42, # The numberOfSeats property holds the customer's number of user licenses. How a user's licenses are managed depends on the subscription's plan:
+            # - annual commitment plan (with monthly or yearly pay) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. This is the maximum number of user licenses that a reseller's customer can create. The reseller can add more licenses, but once set, the numberOfSeats can not be reduced until renewal. The reseller is invoiced based on the numberOfSeats value regardless of how many of these user licenses are provisioned users.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. The numberOfSeats property is not used in the request or response for flexible plan customers.
+            # - 30-day free trial plan — The numberOfSeats property is not used in the request or response for an account in a 30-day trial.
+        "maximumNumberOfSeats": 42, # The maximumNumberOfSeats property is the maximum number of licenses that the customer can purchase. This property applies to plans other than the annual commitment plan. How a user's licenses are managed depends on the subscription's payment plan:
+            # - annual commitment plan (with monthly or yearly payments) — For this plan, a reseller is invoiced on the number of user licenses in the numberOfSeats property. The maximumNumberOfSeats property is a read-only property in the API's response.
+            # - flexible plan — For this plan, a reseller is invoiced on the actual number of users which is capped by the maximumNumberOfSeats. This is the maximum number of user licenses a customer has for user license provisioning. This quantity can be increased up to the maximum limit defined in the reseller's contract. And the minimum quantity is the current number of users in the customer account.
+            # - 30-day free trial plan — A subscription in a 30-day free trial is restricted to maximum 10 seats.
         "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
-      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
-      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
-      "transferInfo": { # Transfer related information for the subscription.
-        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
-        "minimumTransferableSeats": 42,
+      "creationTime": "A String", # The creationTime property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription. Value: reseller#subscription
+      "transferInfo": { # Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.
+        "transferabilityExpirationTime": "A String", # The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.
+        "minimumTransferableSeats": 42, # When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.
       },
-      "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.
+      "status": "A String", # This is an optional property.
+      "plan": { # The plan property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API"s payment plans, see the API concepts.
+        "planName": "A String", # The planName property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts.
+            #
+            # Possible values are:
+            # - ANNUAL_MONTHLY_PAY — The annual commitment plan with monthly payments
+            # - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly payments
+            # - FLEXIBLE — The flexible plan
+            # - TRIAL — The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling changePlan will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling startPaidService.
+        "commitmentInterval": { # In this version of the API, annual commitment plan's interval is one year.
+          "endTime": "A String", # An annual commitment plan's interval's endTime in milliseconds using the UNIX Epoch format. See an example Epoch converter.
+          "startTime": "A String", # An annual commitment plan's interval's startTime in milliseconds using UNIX Epoch format. See an example Epoch converter.
         },
-        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+        "isCommitmentPlan": True or False, # The isCommitmentPlan property's boolean value identifies the plan as an annual commitment plan:
+            # - true — The subscription's plan is an annual commitment plan.
+            # - false — The plan is not an annual commitment plan.
       },
-      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
-      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed. Possible options include:
-          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the Google Apps Resold Terms of Services.
+      "purchaseOrderId": "A String", # This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      "suspensionReasons": [ # Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all pending suspensions are removed.
+          #
+          # Possible options include:
+          # - PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G Suite Resold Terms of Services.
           # - RENEWAL_WITH_TYPE_CANCEL - The customer's commitment ended and their service was cancelled at the end of their term.
           # - RESELLER_INITIATED - A manual suspension invoked by a Reseller.
           # - TRIAL_ENDED - The customer's trial expired without a plan selected.
           # - OTHER - The customer is suspended for an internal Google reason (e.g. abuse or otherwise).
         "A String",
       ],
-      "subscriptionId": "A String", # The id of the subscription.
-      "billingMethod": "A String", # Billing method of this subscription.
-      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+      "subscriptionId": "A String", # The subscriptionId is the subscription identifier and is unique for each customer. This is a required property. Since a subscriptionId changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the subscriptionId as described in retrieve all reseller subscriptions.
+      "billingMethod": "A String", # Read-only field that returns the current billing method for a subscription.
+      "customerId": "A String", # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
     }</pre>
 </div>
 
diff --git a/docs/dyn/runtimeconfig_v1.operations.html b/docs/dyn/runtimeconfig_v1.operations.html
index 21651dc..991cd90 100644
--- a/docs/dyn/runtimeconfig_v1.operations.html
+++ b/docs/dyn/runtimeconfig_v1.operations.html
@@ -179,7 +179,6 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
-    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -189,22 +188,6 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -268,8 +251,25 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
+    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
index d0dec11..fb03b2a 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
@@ -131,7 +131,6 @@
 { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
     # service. A RuntimeConfig resource consists of metadata and a hierarchy of
     # variables.
-  "description": "A String", # An optional description of the RuntimeConfig object.
   "name": "A String", # The resource name of a runtime config. The name must have the format:
       # 
       #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -143,18 +142,19 @@
       # You pick the RuntimeConfig resource name, but the server will validate that
       # the name adheres to this format. After you create the resource, you cannot
       # change the resource's name.
+  "description": "A String", # An optional description of the RuntimeConfig object.
 }
 
-  requestId: string, An optional but recommended unique <code>request_id</code>. If the server
-receives two <code>create()</code> requests  with the same
-<code>request_id</code>, then the second request will be ignored and the
+  requestId: string, An optional but recommended unique `request_id`. If the server
+receives two `create()` requests  with the same
+`request_id`, then the second request will be ignored and the
 first resource created and stored in the backend is returned.
-Empty <code>request_id</code> fields are ignored.
+Empty `request_id` fields are ignored.
 
 It is responsibility of the client to ensure uniqueness of the
-<code>request_id</code> strings.
+`request_id` strings.
 
-<code>request_id</code> strings are limited to 64 characters.
+`request_id` strings are limited to 64 characters.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -166,7 +166,6 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
-    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -178,6 +177,7 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
+    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
@@ -228,7 +228,6 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
-    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -240,6 +239,7 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
+    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
@@ -251,8 +251,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -370,7 +369,6 @@
       { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
           # service. A RuntimeConfig resource consists of metadata and a hierarchy of
           # variables.
-        "description": "A String", # An optional description of the RuntimeConfig object.
         "name": "A String", # The resource name of a runtime config. The name must have the format:
             #
             #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -382,6 +380,7 @@
             # You pick the RuntimeConfig resource name, but the server will validate that
             # the name adheres to this format. After you create the resource, you cannot
             # change the resource's name.
+        "description": "A String", # An optional description of the RuntimeConfig object.
       },
     ],
   }</pre>
@@ -408,8 +407,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -587,10 +585,13 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -633,7 +634,6 @@
 { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
     # service. A RuntimeConfig resource consists of metadata and a hierarchy of
     # variables.
-  "description": "A String", # An optional description of the RuntimeConfig object.
   "name": "A String", # The resource name of a runtime config. The name must have the format:
       # 
       #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -645,6 +645,7 @@
       # You pick the RuntimeConfig resource name, but the server will validate that
       # the name adheres to this format. After you create the resource, you cannot
       # change the resource's name.
+  "description": "A String", # An optional description of the RuntimeConfig object.
 }
 
   x__xgafv: string, V1 error format.
@@ -658,7 +659,6 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
-    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -670,6 +670,7 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
+    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
index 4c62c59..bfdb22e 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
@@ -105,22 +105,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -184,6 +168,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -193,10 +193,13 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
index b1837b9..fc4d1db 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a single variable.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageSize=None, returnValues=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists variables within given a configuration, matching any provided filters.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -124,7 +124,7 @@
     # that do not have any child variables).
   "text": "A String", # The string value of the variable. The length of the value must be less
       # than 4096 bytes. Empty values are also accepted. For example,
-      # <code>text: "my text value"</code>.
+      # `text: "my text value"`. The string must be valid UTF-8.
   "updateTime": "A String", # [Output Only] The time of the last variable update.
   "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
       # the outcome of the `variables().watch` call and is visible through the
@@ -150,16 +150,16 @@
       # Once you create a variable, you cannot change the variable name.
 }
 
-  requestId: string, An optional but recommended unique <code>request_id</code>. If the server
-receives two <code>create()</code> requests  with the same
-<code>request_id</code>, then the second request will be ignored and the
+  requestId: string, An optional but recommended unique `request_id`. If the server
+receives two `create()` requests  with the same
+`request_id`, then the second request will be ignored and the
 first resource created and stored in the backend is returned.
-Empty <code>request_id</code> fields are ignored.
+Empty `request_id` fields are ignored.
 
 It is responsibility of the client to ensure uniqueness of the
-<code>request_id</code> strings.
+`request_id` strings.
 
-<code>request_id</code> strings are limited to 64 characters.
+`request_id` strings are limited to 64 characters.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -175,7 +175,7 @@
       # that do not have any child variables).
     "text": "A String", # The string value of the variable. The length of the value must be less
         # than 4096 bytes. Empty values are also accepted. For example,
-        # <code>text: "my text value"</code>.
+        # `text: "my text value"`. The string must be valid UTF-8.
     "updateTime": "A String", # [Output Only] The time of the last variable update.
     "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
         # the outcome of the `variables().watch` call and is visible through the
@@ -260,7 +260,7 @@
       # that do not have any child variables).
     "text": "A String", # The string value of the variable. The length of the value must be less
         # than 4096 bytes. Empty values are also accepted. For example,
-        # <code>text: "my text value"</code>.
+        # `text: "my text value"`. The string must be valid UTF-8.
     "updateTime": "A String", # [Output Only] The time of the last variable update.
     "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
         # the outcome of the `variables().watch` call and is visible through the
@@ -288,9 +288,11 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent=None, pageSize=None, returnValues=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists variables within given a configuration, matching any provided filters.
-This only lists variable names, not the values.
+This only lists variable names, not the values, unless `return_values` is
+true, in which case only variables that user has IAM permission to GetVariable
+will be returned.
 
 Args:
   parent: string, The path to the RuntimeConfig resource for which you want to list variables.
@@ -299,6 +301,9 @@
 `projects/[PROJECT_ID]/configs/[CONFIG_NAME]` (required)
   pageSize: integer, Specifies the number of results to return per page. If there are fewer
 elements than the specified number, returns all elements.
+  returnValues: boolean, The flag indicates whether the user wants to return values of variables.
+If true, then only those variables that user has IAM GetVariable permission
+will be returned along with their values.
   filter: string, Filters variables by matching the specified filter. For example:
 
 `projects/example-project/config/[CONFIG_NAME]/variables/example-variable`.
@@ -327,7 +332,7 @@
           # that do not have any child variables).
         "text": "A String", # The string value of the variable. The length of the value must be less
             # than 4096 bytes. Empty values are also accepted. For example,
-            # <code>text: "my text value"</code>.
+            # `text: "my text value"`. The string must be valid UTF-8.
         "updateTime": "A String", # [Output Only] The time of the last variable update.
         "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
             # the outcome of the `variables().watch` call and is visible through the
@@ -376,10 +381,13 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -418,7 +426,7 @@
     # that do not have any child variables).
   "text": "A String", # The string value of the variable. The length of the value must be less
       # than 4096 bytes. Empty values are also accepted. For example,
-      # <code>text: "my text value"</code>.
+      # `text: "my text value"`. The string must be valid UTF-8.
   "updateTime": "A String", # [Output Only] The time of the last variable update.
   "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
       # the outcome of the `variables().watch` call and is visible through the
@@ -459,7 +467,7 @@
       # that do not have any child variables).
     "text": "A String", # The string value of the variable. The length of the value must be less
         # than 4096 bytes. Empty values are also accepted. For example,
-        # <code>text: "my text value"</code>.
+        # `text: "my text value"`. The string must be valid UTF-8.
     "updateTime": "A String", # [Output Only] The time of the last variable update.
     "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
         # the outcome of the `variables().watch` call and is visible through the
@@ -533,7 +541,7 @@
       # that do not have any child variables).
     "text": "A String", # The string value of the variable. The length of the value must be less
         # than 4096 bytes. Empty values are also accepted. For example,
-        # <code>text: "my text value"</code>.
+        # `text: "my text value"`. The string must be valid UTF-8.
     "updateTime": "A String", # [Output Only] The time of the last variable update.
     "state": "A String", # [Ouput only] The current state of the variable. The variable state indicates
         # the outcome of the `variables().watch` call and is visible through the
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
index 01ec336..4858e7a 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a single waiter.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">List waiters within the given configuration.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -259,16 +259,16 @@
         # waiter.
   }
 
-  requestId: string, An optional but recommended unique <code>request_id</code>. If the server
-receives two <code>create()</code> requests  with the same
-<code>request_id</code>, then the second request will be ignored and the
+  requestId: string, An optional but recommended unique `request_id`. If the server
+receives two `create()` requests  with the same
+`request_id`, then the second request will be ignored and the
 first resource created and stored in the backend is returned.
-Empty <code>request_id</code> fields are ignored.
+Empty `request_id` fields are ignored.
 
 It is responsibility of the client to ensure uniqueness of the
-<code>request_id</code> strings.
+`request_id` strings.
 
-<code>request_id</code> strings are limited to 64 characters.
+`request_id` strings are limited to 64 characters.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -285,22 +285,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -364,6 +348,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -564,7 +564,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>List waiters within the given configuration.
 
 Args:
@@ -572,14 +572,14 @@
 The configuration must exist beforehand; the path must by in the format:
 
 `projects/[PROJECT_ID]/configs/[CONFIG_NAME]` (required)
+  pageSize: integer, Specifies the number of results to return per page. If there are fewer
+elements than the specified number, returns all elements.
   pageToken: string, Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 returned by a previous list request to get the next page of results.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Specifies the number of results to return per page. If there are fewer
-elements than the specified number, returns all elements.
 
 Returns:
   An object of the form:
@@ -765,10 +765,13 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/safebrowsing_v4.encodedFullHashes.html b/docs/dyn/safebrowsing_v4.encodedFullHashes.html
new file mode 100644
index 0000000..fe4247f
--- /dev/null
+++ b/docs/dyn/safebrowsing_v4.encodedFullHashes.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="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.encodedFullHashes.html">encodedFullHashes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</a></code></p>
+<p class="firstline"></p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</code>
+  <pre>
+
+Args:
+  encodedRequest: string, A serialized FindFullHashesRequest proto. (required)
+  clientVersion: string, The version of the client implementation.
+  clientId: string, A client ID that (hopefully) uniquely identifies the client implementation
+of the Safe Browsing API.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "matches": [ # The full hashes that matched the requested prefixes.
+      { # A match when checking a threat entry in the Safe Browsing threat lists.
+        "threatType": "A String", # The threat type matching this threat.
+        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected # Optional metadata associated with this threat.
+            # to know the metadata key/value pairs associated with each threat type.
+          "entries": [ # The metadata entries.
+            { # A single metadata entry.
+              "key": "A String", # The metadata entry key. For JSON requests, the key is base64-encoded.
+              "value": "A String", # The metadata entry value. For JSON requests, the value is base64-encoded.
+            },
+          ],
+        },
+        "threatEntryType": "A String", # The threat entry type matching this threat.
+        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this
+            # response for more than this duration to avoid false positives.
+        "threat": { # An individual threat; for example, a malicious URL or its hash # The threat matching this threat.
+            # representation. Only one of these fields should be set.
+          "url": "A String", # A URL.
+          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
+              # hash. This field is in binary format. For JSON requests, hashes are
+              # base64-encoded.
+          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
+              # binary and hex digests. For JSON requests, digests are base64-encoded.
+        },
+        "platformType": "A String", # The platform type matching this threat.
+      },
+    ],
+    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
+        # cache the response.
+    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes
+        # request. If this field is not set, clients can issue a request as soon as
+        # they want.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/safebrowsing_v4.encodedUpdates.html b/docs/dyn/safebrowsing_v4.encodedUpdates.html
new file mode 100644
index 0000000..3588454
--- /dev/null
+++ b/docs/dyn/safebrowsing_v4.encodedUpdates.html
@@ -0,0 +1,226 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.encodedUpdates.html">encodedUpdates</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</a></code></p>
+<p class="firstline"></p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(encodedRequest, clientVersion=None, clientId=None, x__xgafv=None)</code>
+  <pre>
+
+Args:
+  encodedRequest: string, A serialized FetchThreatListUpdatesRequest proto. (required)
+  clientVersion: string, The version of the client implementation.
+  clientId: string, A client ID that uniquely identifies the client implementation of the Safe
+Browsing API.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "listUpdateResponses": [ # The list updates requested by the clients.
+      { # An update to an individual list.
+        "responseType": "A String", # The type of response. This may indicate that an action is required by the
+            # client when the response is received.
+        "threatType": "A String", # The threat type for which data is returned.
+        "removals": [ # A set of entries to remove from a local threat type's list. In practice,
+            # this field is empty or contains exactly one ThreatEntrySet.
+          { # A set of threats that should be added or removed from a client's local
+              # database.
+            "compressionType": "A String", # The compression type for the entries in this set.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
+            },
+            "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
+              "indices": [ # The indices to remove from a lexicographically-sorted local list.
+                42,
+              ],
+            },
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
+            },
+            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
+                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
+                # bytes, but some hashes are lengthened if they collide with the hash of a
+                # popular URL.
+                #
+                # Used for sending ThreatEntrySet to clients that do not support compression,
+                # or when sending non-4-byte hashes to clients that do support compression.
+              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
+                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
+              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
+                  # sorted in lexicographic order. For JSON API users, hashes are
+                  # base64-encoded.
+            },
+          },
+        ],
+        "newClientState": "A String", # The new client state, in encrypted format. Opaque to clients.
+        "checksum": { # The expected state of a client's local database. # The expected SHA256 hash of the client state; that is, of the sorted list
+            # of all hashes present in the database after applying the provided update.
+            # If the client state doesn't match the expected state, the client must
+            # disregard this update and retry later.
+          "sha256": "A String", # The SHA256 hash of the client state; that is, of the sorted list of all
+              # hashes present in the database.
+        },
+        "threatEntryType": "A String", # The format of the threats.
+        "additions": [ # A set of entries to add to a local threat type's list. Repeated to allow
+            # for a combination of compressed and raw data to be sent in a single
+            # response.
+          { # A set of threats that should be added or removed from a client's local
+              # database.
+            "compressionType": "A String", # The compression type for the entries in this set.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
+            },
+            "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
+              "indices": [ # The indices to remove from a lexicographically-sorted local list.
+                42,
+              ],
+            },
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
+            },
+            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
+                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
+                # bytes, but some hashes are lengthened if they collide with the hash of a
+                # popular URL.
+                #
+                # Used for sending ThreatEntrySet to clients that do not support compression,
+                # or when sending non-4-byte hashes to clients that do support compression.
+              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
+                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
+              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
+                  # sorted in lexicographic order. For JSON API users, hashes are
+                  # base64-encoded.
+            },
+          },
+        ],
+        "platformType": "A String", # The platform type for which data is returned.
+      },
+    ],
+    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any update
+        # request. If this field is not set clients may update as soon as they want.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/safebrowsing_v4.fullHashes.html b/docs/dyn/safebrowsing_v4.fullHashes.html
index 0bc7d84..3281c1a 100644
--- a/docs/dyn/safebrowsing_v4.fullHashes.html
+++ b/docs/dyn/safebrowsing_v4.fullHashes.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="safebrowsing_v4.html">Safe Browsing APIs</a> . <a href="safebrowsing_v4.fullHashes.html">fullHashes</a></h1>
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.fullHashes.html">fullHashes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#find">find(body, x__xgafv=None)</a></code></p>
@@ -89,25 +89,37 @@
 { # Request to return full hashes matched by the provided hash prefixes.
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
       "clientVersion": "A String", # The version of the client implementation.
-      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation of the Safe Browsing API.
+      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
+          # of the Safe Browsing API.
     },
-    "threatInfo": { # The information regarding one or more threats that a client submits when checking for matches in threat lists. # The lists and hashes to be checked.
+    "apiClient": { # The client metadata associated with Safe Browsing API requests. # Client metadata associated with callers of higher-level APIs built on top
+        # of the client's implementation.
+      "clientVersion": "A String", # The version of the client implementation.
+      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
+          # of the Safe Browsing API.
+    },
+    "threatInfo": { # The information regarding one or more threats that a client submits when # The lists and hashes to be checked.
+        # checking for matches in threat lists.
       "threatTypes": [ # The threat types to be checked.
         "A String",
       ],
-      "threatEntries": [ # The threat entries to be checked.
-        { # An individual threat; for example, a malicious URL or its hash representation. Only one of these fields should be set.
-          "url": "A String", # A URL.
-          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. This field is in binary format.
-          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both binary and hex digests.
-        },
-      ],
-      "platformTypes": [ # The platform types to be checked.
-        "A String",
-      ],
       "threatEntryTypes": [ # The entry types to be checked.
         "A String",
       ],
+      "platformTypes": [ # The platform types to be checked.
+        "A String",
+      ],
+      "threatEntries": [ # The threat entries to be checked.
+        { # An individual threat; for example, a malicious URL or its hash
+            # representation. Only one of these fields should be set.
+          "url": "A String", # A URL.
+          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
+              # hash. This field is in binary format. For JSON requests, hashes are
+              # base64-encoded.
+          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
+              # binary and hex digests. For JSON requests, digests are base64-encoded.
+        },
+      ],
     },
     "clientStates": [ # The current client states for each of the client's local threat lists.
       "A String",
@@ -115,6 +127,9 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -123,26 +138,35 @@
     "matches": [ # The full hashes that matched the requested prefixes.
       { # A match when checking a threat entry in the Safe Browsing threat lists.
         "threatType": "A String", # The threat type matching this threat.
-        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected to know the metadata key/value pairs associated with each threat type. # Optional metadata associated with this threat.
+        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected # Optional metadata associated with this threat.
+            # to know the metadata key/value pairs associated with each threat type.
           "entries": [ # The metadata entries.
             { # A single metadata entry.
-              "value": "A String", # The metadata entry value.
-              "key": "A String", # The metadata entry key.
+              "key": "A String", # The metadata entry key. For JSON requests, the key is base64-encoded.
+              "value": "A String", # The metadata entry value. For JSON requests, the value is base64-encoded.
             },
           ],
         },
         "threatEntryType": "A String", # The threat entry type matching this threat.
-        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this response for more than this duration to avoid false positives.
-        "threat": { # An individual threat; for example, a malicious URL or its hash representation. Only one of these fields should be set. # The threat matching this threat.
+        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this
+            # response for more than this duration to avoid false positives.
+        "threat": { # An individual threat; for example, a malicious URL or its hash # The threat matching this threat.
+            # representation. Only one of these fields should be set.
           "url": "A String", # A URL.
-          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. This field is in binary format.
-          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both binary and hex digests.
+          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
+              # hash. This field is in binary format. For JSON requests, hashes are
+              # base64-encoded.
+          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
+              # binary and hex digests. For JSON requests, digests are base64-encoded.
         },
         "platformType": "A String", # The platform type matching this threat.
       },
     ],
-    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to cache the response.
-    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes request. If this field is not set, clients can issue a request as soon as they want.
+    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
+        # cache the response.
+    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes
+        # request. If this field is not set, clients can issue a request as soon as
+        # they want.
   }</pre>
 </div>
 
diff --git a/docs/dyn/safebrowsing_v4.html b/docs/dyn/safebrowsing_v4.html
index 7d39ea7..58b6f87 100644
--- a/docs/dyn/safebrowsing_v4.html
+++ b/docs/dyn/safebrowsing_v4.html
@@ -72,9 +72,19 @@
 
 </style>
 
-<h1><a href="safebrowsing_v4.html">Safe Browsing APIs</a></h1>
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="safebrowsing_v4.encodedFullHashes.html">encodedFullHashes()</a></code>
+</p>
+<p class="firstline">Returns the encodedFullHashes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="safebrowsing_v4.encodedUpdates.html">encodedUpdates()</a></code>
+</p>
+<p class="firstline">Returns the encodedUpdates Resource.</p>
+
+<p class="toc_element">
   <code><a href="safebrowsing_v4.fullHashes.html">fullHashes()</a></code>
 </p>
 <p class="firstline">Returns the fullHashes Resource.</p>
diff --git a/docs/dyn/safebrowsing_v4.threatListUpdates.html b/docs/dyn/safebrowsing_v4.threatListUpdates.html
index 3a4c14a..049fffd 100644
--- a/docs/dyn/safebrowsing_v4.threatListUpdates.html
+++ b/docs/dyn/safebrowsing_v4.threatListUpdates.html
@@ -72,44 +72,59 @@
 
 </style>
 
-<h1><a href="safebrowsing_v4.html">Safe Browsing APIs</a> . <a href="safebrowsing_v4.threatListUpdates.html">threatListUpdates</a></h1>
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.threatListUpdates.html">threatListUpdates</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#fetch">fetch(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Fetches the most recent threat list updates. A client can request updates for multiple lists at once.</p>
+<p class="firstline">Fetches the most recent threat list updates. A client can request updates</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="fetch">fetch(body, x__xgafv=None)</code>
-  <pre>Fetches the most recent threat list updates. A client can request updates for multiple lists at once.
+  <pre>Fetches the most recent threat list updates. A client can request updates
+for multiple lists at once.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a Safe Browsing API update request. Clients can request updates for multiple lists in a single request. NOTE: Field index 2 is unused. NEXT: 4
+{ # Describes a Safe Browsing API update request. Clients can request updates for
+      # multiple lists in a single request.
+      # NOTE: Field index 2 is unused.
+      # NEXT: 5
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
       "clientVersion": "A String", # The version of the client implementation.
-      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation of the Safe Browsing API.
+      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
+          # of the Safe Browsing API.
     },
     "listUpdateRequests": [ # The requested threat list updates.
       { # A single list update request.
         "threatType": "A String", # The type of threat posed by entries present in the list.
+        "state": "A String", # The current state of the client for the requested list (the encrypted
+            # client state that was received from the last successful list update).
         "threatEntryType": "A String", # The types of entries present in the list.
         "platformType": "A String", # The type of platform at risk by entries present in the list.
         "constraints": { # The constraints for this update. # The constraints associated with this request.
-          "maxDatabaseEntries": 42, # Sets the maximum number of entries that the client is willing to have in the local database. This should be a power of 2 between 2**10 and 2**20. If zero, no database size limit is set.
-          "region": "A String", # Requests the list for a specific geographic location. If not set the server may pick that value based on the user's IP address. Expects ISO 3166-1 alpha-2 format.
+          "maxDatabaseEntries": 42, # Sets the maximum number of entries that the client is willing to have
+              # in the local database. This should be a power of 2 between 2**10 and
+              # 2**20. If zero, no database size limit is set.
+          "region": "A String", # Requests the list for a specific geographic location. If not set the
+              # server may pick that value based on the user's IP address. Expects ISO
+              # 3166-1 alpha-2 format.
           "supportedCompressions": [ # The compression types supported by the client.
             "A String",
           ],
-          "maxUpdateEntries": 42, # The maximum size in number of entries. The update will not contain more entries than this value. This should be a power of 2 between 2**10 and 2**20. If zero, no update size limit is set.
+          "maxUpdateEntries": 42, # The maximum size in number of entries. The update will not contain more
+              # entries than this value.  This should be a power of 2 between 2**10 and
+              # 2**20.  If zero, no update size limit is set.
         },
-        "state": "A String", # The current state of the client for the requested list (the encrypted client state that was received from the last successful list update).
       },
     ],
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -117,69 +132,128 @@
     {
     "listUpdateResponses": [ # The list updates requested by the clients.
       { # An update to an individual list.
-        "responseType": "A String", # The type of response. This may indicate that an action is required by the client when the response is received.
+        "responseType": "A String", # The type of response. This may indicate that an action is required by the
+            # client when the response is received.
         "threatType": "A String", # The threat type for which data is returned.
-        "removals": [ # A set of entries to remove from a local threat type's list. Repeated for the same reason as above.
-          { # A set of threats that should be added or removed from a client's local database.
+        "removals": [ # A set of entries to remove from a local threat type's list. In practice,
+            # this field is empty or contains exactly one ThreatEntrySet.
+          { # A set of threats that should be added or removed from a client's local
+              # database.
             "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded local, lexicographically-sorted list indices, using a Golomb-Rice encoding. Used for sending compressed removal indices.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
               "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
-              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a single integer was encoded, this will be zero and the single value will be stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field is missing (that is, zero) if `num_entries` is zero.
-              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer's value.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
             },
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded 4-byte prefixes of SHA256-formatted entries, using a Golomb-Rice encoding.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
               "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
-              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a single integer was encoded, this will be zero and the single value will be stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field is missing (that is, zero) if `num_entries` is zero.
-              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer's value.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
             },
-            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4 bytes, but some hashes are lengthened if they collide with the hash of a popular URL. Used for sending ThreatEntrySet to clients that do not support compression, or when sending non-4-byte hashes to clients that do support compression. # The raw SHA256-formatted entries.
-              "prefixSize": 42, # The number of bytes for each prefix encoded below. This field can be anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
-              "rawHashes": "A String", # The hashes, all concatenated into one long string. Each hash has a prefix size of |prefix_size| above. Hashes are sorted in lexicographic order.
+            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
+                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
+                # bytes, but some hashes are lengthened if they collide with the hash of a
+                # popular URL.
+                #
+                # Used for sending ThreatEntrySet to clients that do not support compression,
+                # or when sending non-4-byte hashes to clients that do support compression.
+              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
+                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
+              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
+                  # sorted in lexicographic order. For JSON API users, hashes are
+                  # base64-encoded.
             },
           },
         ],
         "newClientState": "A String", # The new client state, in encrypted format. Opaque to clients.
-        "checksum": { # The expected state of a client's local database. # The expected SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database after applying the provided update. If the client state doesn't match the expected state, the client must disregard this update and retry later.
-          "sha256": "A String", # The SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database.
+        "checksum": { # The expected state of a client's local database. # The expected SHA256 hash of the client state; that is, of the sorted list
+            # of all hashes present in the database after applying the provided update.
+            # If the client state doesn't match the expected state, the client must
+            # disregard this update and retry later.
+          "sha256": "A String", # The SHA256 hash of the client state; that is, of the sorted list of all
+              # hashes present in the database.
         },
         "threatEntryType": "A String", # The format of the threats.
-        "additions": [ # A set of entries to add to a local threat type's list. Repeated to allow for a combination of compressed and raw data to be sent in a single response.
-          { # A set of threats that should be added or removed from a client's local database.
+        "additions": [ # A set of entries to add to a local threat type's list. Repeated to allow
+            # for a combination of compressed and raw data to be sent in a single
+            # response.
+          { # A set of threats that should be added or removed from a client's local
+              # database.
             "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded local, lexicographically-sorted list indices, using a Golomb-Rice encoding. Used for sending compressed removal indices.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
               "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
-              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a single integer was encoded, this will be zero and the single value will be stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field is missing (that is, zero) if `num_entries` is zero.
-              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer's value.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
             },
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded 4-byte prefixes of SHA256-formatted entries, using a Golomb-Rice encoding.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
+                # compressed removal indices.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
+              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
+                  # single integer was encoded, this will be zero and the single value will be
+                  # stored in `first_value`.
               "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
-              "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a single integer was encoded, this will be zero and the single value will be stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field is missing (that is, zero) if `num_entries` is zero.
-              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer's value.
+              "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
+                  # integer was encoded, that single integer's value.
             },
-            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4 bytes, but some hashes are lengthened if they collide with the hash of a popular URL. Used for sending ThreatEntrySet to clients that do not support compression, or when sending non-4-byte hashes to clients that do support compression. # The raw SHA256-formatted entries.
-              "prefixSize": 42, # The number of bytes for each prefix encoded below. This field can be anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
-              "rawHashes": "A String", # The hashes, all concatenated into one long string. Each hash has a prefix size of |prefix_size| above. Hashes are sorted in lexicographic order.
+            "rawHashes": { # The uncompressed threat entries in hash format of a particular prefix length. # The raw SHA256-formatted entries.
+                # Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
+                # bytes, but some hashes are lengthened if they collide with the hash of a
+                # popular URL.
+                #
+                # Used for sending ThreatEntrySet to clients that do not support compression,
+                # or when sending non-4-byte hashes to clients that do support compression.
+              "prefixSize": 42, # The number of bytes for each prefix encoded below.  This field can be
+                  # anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
+              "rawHashes": "A String", # The hashes, in binary format, concatenated into one long string. Hashes are
+                  # sorted in lexicographic order. For JSON API users, hashes are
+                  # base64-encoded.
             },
           },
         ],
         "platformType": "A String", # The platform type for which data is returned.
       },
     ],
-    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any update request. If this field is not set clients may update as soon as they want.
+    "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any update
+        # request. If this field is not set clients may update as soon as they want.
   }</pre>
 </div>
 
diff --git a/docs/dyn/safebrowsing_v4.threatLists.html b/docs/dyn/safebrowsing_v4.threatLists.html
index 89e7c35..d4deeb7 100644
--- a/docs/dyn/safebrowsing_v4.threatLists.html
+++ b/docs/dyn/safebrowsing_v4.threatLists.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="safebrowsing_v4.html">Safe Browsing APIs</a> . <a href="safebrowsing_v4.threatLists.html">threatLists</a></h1>
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.threatLists.html">threatLists</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(x__xgafv=None)</a></code></p>
@@ -84,13 +84,18 @@
 
 Args:
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     {
     "threatLists": [ # The lists available for download by the client.
-      { # Describes an individual threat list. A list is defined by three parameters: the type of threat posed, the type of platform targeted by the threat, and the type of entries in the list.
+      { # Describes an individual threat list. A list is defined by three parameters:
+          # the type of threat posed, the type of platform targeted by the threat, and
+          # the type of entries in the list.
         "threatType": "A String", # The threat type posed by the list's entries.
         "threatEntryType": "A String", # The entry types contained in the list.
         "platformType": "A String", # The platform type targeted by the list's entries.
diff --git a/docs/dyn/safebrowsing_v4.threatMatches.html b/docs/dyn/safebrowsing_v4.threatMatches.html
index 2294a6a..cd7242a 100644
--- a/docs/dyn/safebrowsing_v4.threatMatches.html
+++ b/docs/dyn/safebrowsing_v4.threatMatches.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="safebrowsing_v4.html">Safe Browsing APIs</a> . <a href="safebrowsing_v4.threatMatches.html">threatMatches</a></h1>
+<h1><a href="safebrowsing_v4.html">Google Safe Browsing API</a> . <a href="safebrowsing_v4.threatMatches.html">threatMatches</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#find">find(body, x__xgafv=None)</a></code></p>
@@ -89,29 +89,38 @@
 { # Request to check entries against lists.
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
       "clientVersion": "A String", # The version of the client implementation.
-      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation of the Safe Browsing API.
+      "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
+          # of the Safe Browsing API.
     },
-    "threatInfo": { # The information regarding one or more threats that a client submits when checking for matches in threat lists. # The lists and entries to be checked for matches.
+    "threatInfo": { # The information regarding one or more threats that a client submits when # The lists and entries to be checked for matches.
+        # checking for matches in threat lists.
       "threatTypes": [ # The threat types to be checked.
         "A String",
       ],
-      "threatEntries": [ # The threat entries to be checked.
-        { # An individual threat; for example, a malicious URL or its hash representation. Only one of these fields should be set.
-          "url": "A String", # A URL.
-          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. This field is in binary format.
-          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both binary and hex digests.
-        },
-      ],
-      "platformTypes": [ # The platform types to be checked.
-        "A String",
-      ],
       "threatEntryTypes": [ # The entry types to be checked.
         "A String",
       ],
+      "platformTypes": [ # The platform types to be checked.
+        "A String",
+      ],
+      "threatEntries": [ # The threat entries to be checked.
+        { # An individual threat; for example, a malicious URL or its hash
+            # representation. Only one of these fields should be set.
+          "url": "A String", # A URL.
+          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
+              # hash. This field is in binary format. For JSON requests, hashes are
+              # base64-encoded.
+          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
+              # binary and hex digests. For JSON requests, digests are base64-encoded.
+        },
+      ],
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -120,20 +129,26 @@
     "matches": [ # The threat list matches.
       { # A match when checking a threat entry in the Safe Browsing threat lists.
         "threatType": "A String", # The threat type matching this threat.
-        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected to know the metadata key/value pairs associated with each threat type. # Optional metadata associated with this threat.
+        "threatEntryMetadata": { # The metadata associated with a specific threat entry. The client is expected # Optional metadata associated with this threat.
+            # to know the metadata key/value pairs associated with each threat type.
           "entries": [ # The metadata entries.
             { # A single metadata entry.
-              "value": "A String", # The metadata entry value.
-              "key": "A String", # The metadata entry key.
+              "key": "A String", # The metadata entry key. For JSON requests, the key is base64-encoded.
+              "value": "A String", # The metadata entry value. For JSON requests, the value is base64-encoded.
             },
           ],
         },
         "threatEntryType": "A String", # The threat entry type matching this threat.
-        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this response for more than this duration to avoid false positives.
-        "threat": { # An individual threat; for example, a malicious URL or its hash representation. Only one of these fields should be set. # The threat matching this threat.
+        "cacheDuration": "A String", # The cache lifetime for the returned match. Clients must not cache this
+            # response for more than this duration to avoid false positives.
+        "threat": { # An individual threat; for example, a malicious URL or its hash # The threat matching this threat.
+            # representation. Only one of these fields should be set.
           "url": "A String", # A URL.
-          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. This field is in binary format.
-          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both binary and hex digests.
+          "hash": "A String", # A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
+              # hash. This field is in binary format. For JSON requests, hashes are
+              # base64-encoded.
+          "digest": "A String", # The digest of an executable in SHA256 format. The API supports both
+              # binary and hex digests. For JSON requests, digests are base64-encoded.
         },
         "platformType": "A String", # The platform type matching this threat.
       },
diff --git a/docs/dyn/script_v1.scripts.html b/docs/dyn/script_v1.scripts.html
index 2a330a8..1af2199 100644
--- a/docs/dyn/script_v1.scripts.html
+++ b/docs/dyn/script_v1.scripts.html
@@ -75,44 +75,72 @@
 <h1><a href="script_v1.html">Google Apps Script Execution API</a> . <a href="script_v1.scripts.html">scripts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#run">run(scriptId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Runs a function in an Apps Script project that has been deployed for use with the Apps Script Execution API. This method requires authorization with an OAuth 2.0 token that includes at least one of the scopes listed in the [Authentication](#authentication) section; script projects that do not require authorization cannot be executed through this API. To find the correct scopes to include in the authentication token, open the project in the script editor, then select **File > Project properties** and click the **Scopes** tab.</p>
+  <code><a href="#run">run(scriptId=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Runs a function in an Apps Script project. The project must be deployed</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="run">run(scriptId, body, x__xgafv=None)</code>
-  <pre>Runs a function in an Apps Script project that has been deployed for use with the Apps Script Execution API. This method requires authorization with an OAuth 2.0 token that includes at least one of the scopes listed in the [Authentication](#authentication) section; script projects that do not require authorization cannot be executed through this API. To find the correct scopes to include in the authentication token, open the project in the script editor, then select **File > Project properties** and click the **Scopes** tab.
+    <code class="details" id="run">run(scriptId=None, body, x__xgafv=None)</code>
+  <pre>Runs a function in an Apps Script project. The project must be deployed
+for use with the Apps Script Execution API.
+
+This method requires authorization with an OAuth 2.0 token that includes at
+least one of the scopes listed in the [Authorization](#authorization)
+section; script projects that do not require authorization cannot be
+executed through this API. To find the correct scopes to include in the
+authentication token, open the project in the script editor, then select
+**File > Project properties** and click the **Scopes** tab.
 
 Args:
-  scriptId: string, The project key of the script to be executed. To find the project key, open the project in the script editor, then select **File > Project properties**. (required)
+  scriptId: string, The project key of the script to be executed. To find the project key, open
+the project in the script editor and select **File > Project properties**. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A request to run the function in a script. The script is identified by the specified `script_id`. Executing a function on a script will return results based on the implementation of the script.
-    "function": "A String", # The name of the function to execute in the given script. The name does not include parentheses or parameters.
-    "devMode": True or False, # If `true` and the user is an owner of the script, the script runs at the most recently saved version rather than the version deployed for use with the Execution API. Optional; default is `false`.
-    "parameters": [ # The parameters to be passed to the function being executed. The type for each parameter should match the expected type in Apps Script. Parameters cannot be Apps Script-specific objects (such as a `Document` or `Calendar`); they can only be primitive types such as a `string`, `number`, `array`, `object`, or `boolean`. Optional.
+{ # A request to run the function in a script. The script is identified by the
+      # specified `script_id`. Executing a function on a script returns results
+      # based on the implementation of the script.
+    "function": "A String", # The name of the function to execute in the given script. The name does not
+        # include parentheses or parameters.
+    "devMode": True or False, # If `true` and the user is an owner of the script, the script runs at the
+        # most recently saved version rather than the version deployed for use with
+        # the Execution API. Optional; default is `false`.
+    "parameters": [ # The parameters to be passed to the function being executed. The object type
+        # for each parameter should match the expected type in Apps Script.
+        # Parameters cannot be Apps Script-specific object types (such as a
+        # `Document` or a `Calendar`); they can only be primitive types such as
+        # `string`, `number`, `array`, `object`, or `boolean`. Optional.
       "",
     ],
-    "sessionState": "A String", # This field is not used.
+    "sessionState": "A String", # For Android add-ons only. An ID that represents the user's current session
+        # in the Android app for Google Docs or Sheets, included as extra data in the
+        # [`Intent`](https://developer.android.com/guide/components/intents-filters.html)
+        # that launches the add-on. When an Android add-on is run with a session
+        # state, it gains the privileges of a
+        # [bound](https://developers.google.com/apps-script/guides/bound) script &mdash;
+        # that is, it can access information like the user's current cursor position
+        # (in Docs) or selected cell (in Sheets). To retrieve the state, call
+        # `Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState")`.
+        # Optional.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response will not arrive until the function finishes executing. The maximum runtime is listed in the guide to [limitations in Apps Script](https://developers.google.com/apps-script/guides/services/quotas#current_limitations).
-      # If the script function returns successfully, the `response` field will contain an `ExecutionResponse` object with the function's return value in the object's `result` field.
-      #
-      # If the script function (or Apps Script itself) throws an exception, the `error` field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.
-      #
-      # If the `run` call itself fails (for example, because of a malformed request or an authorization error), the method will return an HTTP response code in the 4XX range with a different format for the response body. Client libraries will automatically convert a 4XX response into an exception class.
-    "response": { # If the script function returns successfully, this field will contain an `ExecutionResponse` object with the function's return value as the object's `result` field.
+      # <p>If the script function returns successfully, the `response` field will contain an `ExecutionResponse` object with the function's return value in the object's `result` field.</p>
+      # <p>If the script function (or Apps Script itself) throws an exception, the `error` field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.</p>
+      # <p>If the `run` call itself fails (for example, because of a malformed request or an authorization error), the method will return an HTTP response code in the 4XX range with a different format for the response body. Client libraries will automatically convert a 4XX response into an exception class.</p>
+    "metadata": { # This field is not used.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
     "error": { # If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, the response body's `error` field will contain this `Status` object. # If a `run` call succeeds but the script function (or Apps Script itself) throws an exception, this field will contain a `Status` object. The `Status` object's `details` field will contain an array with a single `ExecutionError` object that provides information about the nature of the error.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "message": "A String", # A developer-facing error message, which is in English. Any user-facing error message is localized and sent in the [`google.rpc.Status.details`](google.rpc.Status.details) field, or localized by the client.
+      "code": 42, # The status code. For this API, this value will always be 3, corresponding to an INVALID_ARGUMENT error.
       "details": [ # An array that contains a single `ExecutionError` object that provides information about the nature of the error.
         {
           "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -120,10 +148,10 @@
       ],
     },
     "done": True or False, # This field is not used.
-    "name": "A String", # This field is not used.
-    "metadata": { # This field is not used.
+    "response": { # If the script function returns successfully, this field will contain an `ExecutionResponse` object with the function's return value as the object's `result` field.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # This field is not used.
   }</pre>
 </div>
 
diff --git a/docs/dyn/searchconsole_v1.html b/docs/dyn/searchconsole_v1.html
new file mode 100644
index 0000000..20f0687
--- /dev/null
+++ b/docs/dyn/searchconsole_v1.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="searchconsole_v1.html">Google Search Console URL Testing Tools API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="searchconsole_v1.urlTestingTools.html">urlTestingTools()</a></code>
+</p>
+<p class="firstline">Returns the urlTestingTools Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/searchconsole_v1.urlTestingTools.html b/docs/dyn/searchconsole_v1.urlTestingTools.html
new file mode 100644
index 0000000..7b147bd
--- /dev/null
+++ b/docs/dyn/searchconsole_v1.urlTestingTools.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="searchconsole_v1.html">Google Search Console URL Testing Tools API</a> . <a href="searchconsole_v1.urlTestingTools.html">urlTestingTools</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="searchconsole_v1.urlTestingTools.mobileFriendlyTest.html">mobileFriendlyTest()</a></code>
+</p>
+<p class="firstline">Returns the mobileFriendlyTest Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/searchconsole_v1.urlTestingTools.mobileFriendlyTest.html b/docs/dyn/searchconsole_v1.urlTestingTools.mobileFriendlyTest.html
new file mode 100644
index 0000000..04d404a
--- /dev/null
+++ b/docs/dyn/searchconsole_v1.urlTestingTools.mobileFriendlyTest.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="searchconsole_v1.html">Google Search Console URL Testing Tools API</a> . <a href="searchconsole_v1.urlTestingTools.html">urlTestingTools</a> . <a href="searchconsole_v1.urlTestingTools.mobileFriendlyTest.html">mobileFriendlyTest</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#run">run(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Runs Mobile-Friendly Test for a given URL.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="run">run(body, x__xgafv=None)</code>
+  <pre>Runs Mobile-Friendly Test for a given URL.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Mobile-friendly test request.
+    "url": "A String", # URL for inspection.
+    "requestScreenshot": True or False, # Whether or not screenshot is requested. Default is false.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Mobile-friendly test response, including mobile-friendly issues and resource
+      # issues.
+    "testStatus": { # Final state of the test, including error details if necessary. # Final state of the test, can be either complete or an error.
+      "status": "A String", # Status of the test.
+      "details": "A String", # Error details if applicable.
+    },
+    "resourceIssues": [ # Information about embedded resources issues.
+      { # Information about a resource with issue.
+        "blockedResource": { # Blocked resource. # Describes a blocked resource issue.
+          "url": "A String", # URL of the blocked resource.
+        },
+      },
+    ],
+    "mobileFriendliness": "A String", # Test verdict, whether the page is mobile friendly or not.
+    "screenshot": { # Describe image data. # Screenshot of the requested URL.
+      "mimeType": "A String", # The mime-type of the image data.
+      "data": "A String", # Image data in format determined by the mime type. Currently, the format
+          # will always be "image/png", but this might change in the future.
+    },
+    "mobileFriendlyIssues": [ # List of mobile-usability issues.
+      { # Mobile-friendly issue.
+        "rule": "A String", # Rule violated.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/servicecontrol_v1.services.html b/docs/dyn/servicecontrol_v1.services.html
index c367090..5a42bf5 100644
--- a/docs/dyn/servicecontrol_v1.services.html
+++ b/docs/dyn/servicecontrol_v1.services.html
@@ -75,40 +75,49 @@
 <h1><a href="servicecontrol_v1.html">Google Service Control API</a> . <a href="servicecontrol_v1.services.html">services</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#allocateQuota">allocateQuota(serviceName=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Attempts to allocate quota for the specified consumer. It should be called</p>
+<p class="toc_element">
   <code><a href="#check">check(serviceName=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Checks an operation with Google Service Control to decide whether</p>
 <p class="toc_element">
+  <code><a href="#endReconciliation">endReconciliation(serviceName=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Signals the quota controller that service ends the ongoing usage</p>
+<p class="toc_element">
+  <code><a href="#releaseQuota">releaseQuota(serviceName=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Releases previously allocated quota done through AllocateQuota method.</p>
+<p class="toc_element">
   <code><a href="#report">report(serviceName=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Reports operation results to Google Service Control, such as logs and</p>
+<p class="toc_element">
+  <code><a href="#startReconciliation">startReconciliation(serviceName=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Unlike rate quota, allocation quota does not get refilled periodically.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="check">check(serviceName=None, body, x__xgafv=None)</code>
-  <pre>Checks an operation with Google Service Control to decide whether
-the given operation should proceed. It should be called before the
-operation is executed.
+    <code class="details" id="allocateQuota">allocateQuota(serviceName=None, body, x__xgafv=None)</code>
+  <pre>Attempts to allocate quota for the specified consumer. It should be called
+before the operation is executed.
 
-If feasible, the client should cache the check results and reuse them for
-60 seconds. In case of server errors, the client can rely on the cached
-results for longer time.
-
-NOTE: the `CheckRequest` has the size limit of 1MB.
-
-This method requires the `servicemanagement.services.check` permission
-on the specified service. For more information, see
+This method requires the `servicemanagement.services.quota`
+permission on the specified service. For more information, see
 [Google Cloud IAM](https://cloud.google.com/iam).
 
 Args:
-  serviceName: string, The service name as specified in its service configuration. For example,
+  serviceName: string, Name of the service as specified in the service configuration. For example,
 `"pubsub.googleapis.com"`.
 
 See google.api.Service for the definition of a service name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Request message for the Check method.
-    "operation": { # Represents information regarding an operation. # The operation to be checked.
-      "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
-      "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
+{ # Request message for the AllocateQuota method.
+    "allocationMode": "A String", # Allocation mode for this operation.
+        # Deprecated: use QuotaMode inside the QuotaOperation.
+    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
+        # the request. If unspecified or no matching version can be found, the latest
+        # one will be used.
+    "allocateOperation": { # Represents information regarding a quota operation. # Operation that describes the quota allocation.
+      "quotaMetrics": [ # Represents information about this operation. Each MetricValueSet
           # corresponds to a metric defined in the service configuration.
           # The data type used in the MetricValueSet must agree with
           # the data type specified in the metric definition.
@@ -123,6 +132,17 @@
             # end time, and label values.
           "metricValues": [ # The values in this metric.
             { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
               "labels": { # The labels describing the metric value.
                   # See comments on google.api.servicecontrol.v1.Operation.labels for
                   # the overriding relationship.
@@ -143,6 +163,10 @@
                   #   - the sum-squared-deviation of the samples, used to compute variance
                   #   - a histogram of the values of the sample points
                 "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                    #   Sum[i=1..count]((x_i - mean)^2)
+                    # where each x_i is a sample values. If `count` is zero then this field
+                    # must be zero, otherwise validation of the request fails.
                 "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
                     # optional. If present, they must sum to the `count` value.
                     #
@@ -169,12 +193,341 @@
                       # the total number of buckets is `num_finite_buckets` + 2.
                       # See comments on `bucket_options` for details.
                 },
-                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
                 "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                  "width": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                      # Must be strictly positive.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                  "offset": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                },
+                "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                  "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                      # buckets. Note that a list of length N-1 defines N buckets because
+                      # of fenceposting. See comments on `bucket_options` for details.
+                      #
+                      # The i'th finite bucket covers the interval
+                      #   [bound[i-1], bound[i])
+                      # where i ranges from 1 to bound_size() - 1. Note that there are no
+                      # finite buckets at all if 'bound' only contains a single element; in
+                      # that special case the single bound defines the boundary between the
+                      # underflow and overflow buckets.
+                      #
+                      # bucket number                   lower bound    upper bound
+                      #  i == 0 (underflow)              -inf           bound[i]
+                      #  0 < i < bound_size()            bound[i-1]     bound[i]
+                      #  i == bound_size() (overflow)    bound[i-1]     +inf
+                    3.14,
+                  ],
+                },
+                "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                    # zero then this field must be zero.
+              },
+              "stringValue": "A String", # A text string value.
+              "int64Value": "A String", # A signed 64-bit integer value.
+              "endTime": "A String", # The end of the time period over which this metric value's measurement
+                  # applies.
+            },
+          ],
+          "metricName": "A String", # The metric name defined in the service configuration.
+        },
+      ],
+      "methodName": "A String", # Fully qualified name of the API method for which this quota operation is
+          # requested. This name is used for matching quota rules or metric rules and
+          # billing status rules defined in service configuration. This field is not
+          # required if the quota operation is performed on non-API resources.
+          #
+          # Example of an RPC method name:
+          #     google.example.library.v1.LibraryService.CreateShelf
+      "labels": { # Labels describing the operation.
+        "a_key": "A String",
+      },
+      "quotaMode": "A String", # Quota mode for this operation.
+      "consumerId": "A String", # Identity of the consumer for whom this quota operation is being performed.
+          #
+          # This can be in one of the following formats:
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
+      "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
+          # service that generated the operation. If the service calls AllocateQuota
+          # and ReleaseQuota on the same operation, the two calls should carry the
+          # same ID.
+          #
+          # UUID version 4 is recommended, though not required. In scenarios where an
+          # operation is computed from existing information and an idempotent id is
+          # desirable for deduplication purpose, UUID version 5 is recommended. See
+          # RFC 4122 for details.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the AllocateQuota method.
+    "allocateErrors": [ # Indicates the decision of the allocate.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
+    "serviceConfigId": "A String", # ID of the actual config used to process the request.
+    "quotaMetrics": [ # Quota metrics to indicate the result of allocation. Depending on the
+        # request, one or more of the following metrics will be included:
+        #
+        # 1. For rate quota, per quota group or per quota metric incremental usage
+        # will be specified using the following delta metric:
+        #   "serviceruntime.googleapis.com/api/consumer/quota_used_count"
+        #
+        # 2. For allocation quota, per quota metric total usage will be specified
+        # using the following gauge metric:
+        #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+        #
+        # 3. For both rate quota and allocation quota, the quota limit reached
+        # condition will be specified using the following boolean metric:
+        #   "serviceruntime.googleapis.com/quota/exceeded"
+      { # Represents a set of metric values in the same metric.
+          # Each metric value in the set should have a unique combination of start time,
+          # end time, and label values.
+        "metricValues": [ # The values in this metric.
+          { # Represents a single metric value.
+            "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+              "nanos": 42, # Number of nano (10^-9) units of the amount.
+                  # The value must be between -999,999,999 and +999,999,999 inclusive.
+                  # If `units` is positive, `nanos` must be positive or zero.
+                  # If `units` is zero, `nanos` can be positive, zero, or negative.
+                  # If `units` is negative, `nanos` must be negative or zero.
+                  # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+            },
+            "labels": { # The labels describing the metric value.
+                # See comments on google.api.servicecontrol.v1.Operation.labels for
+                # the overriding relationship.
+              "a_key": "A String",
+            },
+            "doubleValue": 3.14, # A double precision floating point value.
+            "boolValue": True or False, # A boolean value.
+            "startTime": "A String", # The start of the time period over which this metric value's measurement
+                # applies. The time period has different semantics for different metric
+                # types (cumulative, delta, and gauge). See the metric definition
+                # documentation in the service configuration for details.
+            "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                # points. It contains the size of the population of sample points plus
+                # additional optional information:
+                #
+                #   - the arithmetic mean of the samples
+                #   - the minimum and maximum of the samples
+                #   - the sum-squared-deviation of the samples, used to compute variance
+                #   - a histogram of the values of the sample points
+              "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+              "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                  #   Sum[i=1..count]((x_i - mean)^2)
+                  # where each x_i is a sample values. If `count` is zero then this field
+                  # must be zero, otherwise validation of the request fails.
+              "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                  # optional. If present, they must sum to the `count` value.
+                  #
+                  # The buckets are defined below in `bucket_option`. There are N buckets.
+                  # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                  # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                  # in each of the finite buckets. And `bucket_counts[N] is the number
+                  # of samples in the overflow bucket. See the comments of `bucket_option`
+                  # below for more details.
+                  #
+                  # Any suffix of trailing zeros may be omitted.
+                "A String",
+              ],
+              "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                "scale": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be > 0.
+                "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be larger than 1.0.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+              },
+              "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+              "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+              "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                "width": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+                    # Must be strictly positive.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+                "offset": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+              },
+              "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                    # buckets. Note that a list of length N-1 defines N buckets because
+                    # of fenceposting. See comments on `bucket_options` for details.
+                    #
+                    # The i'th finite bucket covers the interval
+                    #   [bound[i-1], bound[i])
+                    # where i ranges from 1 to bound_size() - 1. Note that there are no
+                    # finite buckets at all if 'bound' only contains a single element; in
+                    # that special case the single bound defines the boundary between the
+                    # underflow and overflow buckets.
+                    #
+                    # bucket number                   lower bound    upper bound
+                    #  i == 0 (underflow)              -inf           bound[i]
+                    #  0 < i < bound_size()            bound[i-1]     bound[i]
+                    #  i == bound_size() (overflow)    bound[i-1]     +inf
+                  3.14,
+                ],
+              },
+              "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                  # zero then this field must be zero.
+            },
+            "stringValue": "A String", # A text string value.
+            "int64Value": "A String", # A signed 64-bit integer value.
+            "endTime": "A String", # The end of the time period over which this metric value's measurement
+                # applies.
+          },
+        ],
+        "metricName": "A String", # The metric name defined in the service configuration.
+      },
+    ],
+    "operationId": "A String", # The same operation_id value used in the AllocateQuotaRequest. Used for
+        # logging and diagnostics purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="check">check(serviceName=None, body, x__xgafv=None)</code>
+  <pre>Checks an operation with Google Service Control to decide whether
+the given operation should proceed. It should be called before the
+operation is executed.
+
+If feasible, the client should cache the check results and reuse them for
+60 seconds. In case of server errors, the client can rely on the cached
+results for longer time.
+
+NOTE: the `CheckRequest` has the size limit of 64KB.
+
+This method requires the `servicemanagement.services.check` permission
+on the specified service. For more information, see
+[Google Cloud IAM](https://cloud.google.com/iam).
+
+Args:
+  serviceName: string, The service name as specified in its service configuration. For example,
+`"pubsub.googleapis.com"`.
+
+See google.api.Service for the definition of a service name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for the Check method.
+    "skipActivationCheck": True or False, # Indicates if service activation check should be skipped for this request.
+        # Default behavior is to perform the check and apply relevant quota.
+    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
+        # the request.
+        # 
+        # If unspecified or no matching version can be found, the
+        # latest one will be used.
+    "operation": { # Represents information regarding an operation. # The operation to be checked.
+      "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
+      "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
+          # corresponds to a metric defined in the service configuration.
+          # The data type used in the MetricValueSet must agree with
+          # the data type specified in the metric definition.
+          #
+          # Within a single operation, it is not allowed to have more than one
+          # MetricValue instances that have the same metric names and identical
+          # label value combinations. If a request has such duplicated MetricValue
+          # instances, the entire request is rejected with
+          # an invalid argument error.
+        { # Represents a set of metric values in the same metric.
+            # Each metric value in the set should have a unique combination of start time,
+            # end time, and label values.
+          "metricValues": [ # The values in this metric.
+            { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
+              "labels": { # The labels describing the metric value.
+                  # See comments on google.api.servicecontrol.v1.Operation.labels for
+                  # the overriding relationship.
+                "a_key": "A String",
+              },
+              "doubleValue": 3.14, # A double precision floating point value.
+              "boolValue": True or False, # A boolean value.
+              "startTime": "A String", # The start of the time period over which this metric value's measurement
+                  # applies. The time period has different semantics for different metric
+                  # types (cumulative, delta, and gauge). See the metric definition
+                  # documentation in the service configuration for details.
+              "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                  # points. It contains the size of the population of sample points plus
+                  # additional optional information:
+                  #
+                  #   - the arithmetic mean of the samples
+                  #   - the minimum and maximum of the samples
+                  #   - the sum-squared-deviation of the samples, used to compute variance
+                  #   - a histogram of the values of the sample points
+                "count": "A String", # The total number of samples in the distribution. Must be >= 0.
                 "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
                     #   Sum[i=1..count]((x_i - mean)^2)
                     # where each x_i is a sample values. If `count` is zero then this field
                     # must be zero, otherwise validation of the request fails.
+                "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                    # optional. If present, they must sum to the `count` value.
+                    #
+                    # The buckets are defined below in `bucket_option`. There are N buckets.
+                    # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                    # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                    # in each of the finite buckets. And `bucket_counts[N] is the number
+                    # of samples in the overflow bucket. See the comments of `bucket_option`
+                    # below for more details.
+                    #
+                    # Any suffix of trailing zeros may be omitted.
+                  "A String",
+                ],
+                "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                  "scale": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be > 0.
+                  "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be larger than 1.0.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                },
+                "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
                 "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
                   "width": 3.14, # The i'th linear bucket covers the interval
                       #   [offset + (i-1) * width, offset + i * width)
@@ -236,19 +589,46 @@
           #        where the API is served (e.g. GAE, GCE, GKE).
         "a_key": "A String",
       },
-      "consumerId": "A String", # Identity of the consumer who is using the service.
-          # This field should be filled in for the operations initiated by a
-          # consumer, but not for service-initiated operations that are
-          # not related to a specific consumer.
+      "quotaProperties": { # Represents the properties needed for quota operations. # Represents the properties needed for quota check. Applicable only if this
+          # operation is for a quota check request.
+          #
+          # Use the metric_value_sets field in Operation message to provide cost
+          # override with metric_name in <service_name>/quota/<quota_group_name>/cost
+          # format. Overrides for unmatched quota groups will be ignored.
+          # Costs are expected to be >= 0. Cost 0 will cause no quota check,
+          # but still traffic restrictions will be enforced.
+        "quotaMode": "A String", # Quota mode for this operation.
+        "limitByIds": { # LimitType IDs that should be used for checking quota. Key in this map
+            # should be a valid LimitType string, and the value is the ID to be used. For
+            # example, an entry <USER, 123> will cause all user quota limits to use 123
+            # as the user ID. See google/api/quota.proto for the definition of LimitType.
+            # CLIENT_PROJECT: Not supported.
+            # USER: Value of this entry will be used for enforcing user-level quota
+            #       limits. If none specified, caller IP passed in the
+            #       servicecontrol.googleapis.com/caller_ip label will be used instead.
+            #       If the server cannot resolve a value for this LimitType, an error
+            #       will be thrown. No validation will be performed on this ID.
+            # Deprecated: use servicecontrol.googleapis.com/user label to send user ID.
+          "a_key": "A String",
+        },
+      },
+      "resourceContainer": "A String", # The resource name of the parent of a resource in the resource hierarchy.
           #
           # This can be in one of the following formats:
-          #   project:<project_id>,
-          #   project_number:<project_number>,
-          #   api_key:<api_key>.
+          #     - “projects/<project-id or project-number>”
+          #     - “folders/<folder-id>”
+          #     - “organizations/<organization-id>”
+      "userLabels": { # User defined labels for the resource that this operation is associated
+          # with.
+        "a_key": "A String",
+      },
+      "endTime": "A String", # End time of the operation.
+          # Required when the operation is used in ServiceController.Report,
+          # but optional when the operation is used in ServiceController.Check.
       "logEntries": [ # Represents information to be logged.
         { # An individual log entry.
-          "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
-              # `"book_log"`.
+          "severity": "A String", # The severity of the log entry. The default value is
+              # `LogSeverity.DEFAULT`.
           "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
           "timestamp": "A String", # The time the event described by the log entry occurred. If
               # omitted, defaults to operation start time.
@@ -260,21 +640,27 @@
               # is expressed as a JSON object.
             "a_key": "", # Properties of the object.
           },
-          "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
-              # the implementation will generate one based on operation_id.
           "protoPayload": { # The log entry payload, represented as a protocol buffer that is
               # expressed as a JSON object. You can only pass `protoPayload`
               # values that belong to a set of approved types.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "severity": "A String", # The severity of the log entry. The default value is
-              # `LogSeverity.DEFAULT`.
+          "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
+              # the implementation will generate one based on operation_id.
+          "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
+              # `"book_log"`.
         },
       ],
       "startTime": "A String", # Required. Start time of the operation.
-      "endTime": "A String", # End time of the operation.
-          # Required when the operation is used in ServiceController.Report,
-          # but optional when the operation is used in ServiceController.Check.
+      "consumerId": "A String", # Identity of the consumer who is using the service.
+          # This field should be filled in for the operations initiated by a
+          # consumer, but not for service-initiated operations that are
+          # not related to a specific consumer.
+          #
+          # This can be in one of the following formats:
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
       "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
           # service that generated the operation. If the service calls
           # Check() and Report() on the same operation, the two calls should carry
@@ -285,11 +671,7 @@
           # and an idempotent id is desirable for deduplication purpose, UUID version 5
           # is recommended. See RFC 4122 for details.
     },
-    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
-        # the request.
-        # 
-        # If unspecified or no matching version can be found, the
-        # latest one will be used.
+    "requestProjectSettings": True or False, # Requests the project settings to be returned as part of the check response.
   }
 
   x__xgafv: string, V1 error format.
@@ -302,6 +684,153 @@
 
     { # Response message for the Check method.
     "serviceConfigId": "A String", # The actual config id used to process the request.
+    "quotaInfo": { # Contains the quota information for a quota check response. # Quota information for the check request associated with this response.
+      "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
+          # more of the following metrics will be included:
+          #
+          # 1. For rate quota, per quota group or per quota metric incremental usage
+          # will be specified using the following delta metric:
+          #   "serviceruntime.googleapis.com/api/consumer/quota_used_count"
+          #
+          # 2. For allocation quota, per quota metric total usage will be specified
+          # using the following gauge metric:
+          #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+          #
+          # 3. For both rate quota and allocation quota, the quota limit reached
+          # condition will be specified using the following boolean metric:
+          #   "serviceruntime.googleapis.com/quota/exceeded"
+        { # Represents a set of metric values in the same metric.
+            # Each metric value in the set should have a unique combination of start time,
+            # end time, and label values.
+          "metricValues": [ # The values in this metric.
+            { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
+              "labels": { # The labels describing the metric value.
+                  # See comments on google.api.servicecontrol.v1.Operation.labels for
+                  # the overriding relationship.
+                "a_key": "A String",
+              },
+              "doubleValue": 3.14, # A double precision floating point value.
+              "boolValue": True or False, # A boolean value.
+              "startTime": "A String", # The start of the time period over which this metric value's measurement
+                  # applies. The time period has different semantics for different metric
+                  # types (cumulative, delta, and gauge). See the metric definition
+                  # documentation in the service configuration for details.
+              "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                  # points. It contains the size of the population of sample points plus
+                  # additional optional information:
+                  #
+                  #   - the arithmetic mean of the samples
+                  #   - the minimum and maximum of the samples
+                  #   - the sum-squared-deviation of the samples, used to compute variance
+                  #   - a histogram of the values of the sample points
+                "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                    #   Sum[i=1..count]((x_i - mean)^2)
+                    # where each x_i is a sample values. If `count` is zero then this field
+                    # must be zero, otherwise validation of the request fails.
+                "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                    # optional. If present, they must sum to the `count` value.
+                    #
+                    # The buckets are defined below in `bucket_option`. There are N buckets.
+                    # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                    # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                    # in each of the finite buckets. And `bucket_counts[N] is the number
+                    # of samples in the overflow bucket. See the comments of `bucket_option`
+                    # below for more details.
+                    #
+                    # Any suffix of trailing zeros may be omitted.
+                  "A String",
+                ],
+                "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                  "scale": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be > 0.
+                  "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be larger than 1.0.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                },
+                "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                  "width": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                      # Must be strictly positive.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                  "offset": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                },
+                "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                  "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                      # buckets. Note that a list of length N-1 defines N buckets because
+                      # of fenceposting. See comments on `bucket_options` for details.
+                      #
+                      # The i'th finite bucket covers the interval
+                      #   [bound[i-1], bound[i])
+                      # where i ranges from 1 to bound_size() - 1. Note that there are no
+                      # finite buckets at all if 'bound' only contains a single element; in
+                      # that special case the single bound defines the boundary between the
+                      # underflow and overflow buckets.
+                      #
+                      # bucket number                   lower bound    upper bound
+                      #  i == 0 (underflow)              -inf           bound[i]
+                      #  0 < i < bound_size()            bound[i-1]     bound[i]
+                      #  i == bound_size() (overflow)    bound[i-1]     +inf
+                    3.14,
+                  ],
+                },
+                "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                    # zero then this field must be zero.
+              },
+              "stringValue": "A String", # A text string value.
+              "int64Value": "A String", # A signed 64-bit integer value.
+              "endTime": "A String", # The end of the time period over which this metric value's measurement
+                  # applies.
+            },
+          ],
+          "metricName": "A String", # The metric name defined in the service configuration.
+        },
+      ],
+      "limitExceeded": [ # Quota Metrics that have exceeded quota limits.
+          # For QuotaGroup-based quota, this is QuotaGroup.name
+          # For QuotaLimit-based quota, this is QuotaLimit.name
+          # See: google.api.Quota
+          # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
+        "A String",
+      ],
+      "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+          # quota check was not successful, then this will not be populated due to no
+          # quota consumption.
+          # Deprecated: Use quota_metrics to get per quota group usage.
+        "a_key": 42,
+      },
+    },
+    "checkInfo": { # Feedback data returned from the server during processing a Check request.
+      "unusedArguments": [ # A list of fields and label keys that are ignored by the server.
+          # The client doesn't need to send them for following requests to improve
+          # performance and allow better aggregation.
+        "A String",
+      ],
+    },
     "checkErrors": [ # Indicate the decision of the check.
         #
         # If no check errors are present, the service should process the operation.
@@ -319,6 +848,630 @@
 </div>
 
 <div class="method">
+    <code class="details" id="endReconciliation">endReconciliation(serviceName=None, body, x__xgafv=None)</code>
+  <pre>Signals the quota controller that service ends the ongoing usage
+reconciliation.
+
+This method requires the `servicemanagement.services.quota`
+permission on the specified service. For more information, see
+[Google Cloud IAM](https://cloud.google.com/iam).
+
+Args:
+  serviceName: string, Name of the service as specified in the service configuration. For example,
+`"pubsub.googleapis.com"`.
+
+See google.api.Service for the definition of a service name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
+        # the request. If unspecified or no matching version can be found, the latest
+        # one will be used.
+    "reconciliationOperation": { # Represents information regarding a quota operation. # Operation that describes the quota reconciliation.
+      "quotaMetrics": [ # Represents information about this operation. Each MetricValueSet
+          # corresponds to a metric defined in the service configuration.
+          # The data type used in the MetricValueSet must agree with
+          # the data type specified in the metric definition.
+          #
+          # Within a single operation, it is not allowed to have more than one
+          # MetricValue instances that have the same metric names and identical
+          # label value combinations. If a request has such duplicated MetricValue
+          # instances, the entire request is rejected with
+          # an invalid argument error.
+        { # Represents a set of metric values in the same metric.
+            # Each metric value in the set should have a unique combination of start time,
+            # end time, and label values.
+          "metricValues": [ # The values in this metric.
+            { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
+              "labels": { # The labels describing the metric value.
+                  # See comments on google.api.servicecontrol.v1.Operation.labels for
+                  # the overriding relationship.
+                "a_key": "A String",
+              },
+              "doubleValue": 3.14, # A double precision floating point value.
+              "boolValue": True or False, # A boolean value.
+              "startTime": "A String", # The start of the time period over which this metric value's measurement
+                  # applies. The time period has different semantics for different metric
+                  # types (cumulative, delta, and gauge). See the metric definition
+                  # documentation in the service configuration for details.
+              "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                  # points. It contains the size of the population of sample points plus
+                  # additional optional information:
+                  #
+                  #   - the arithmetic mean of the samples
+                  #   - the minimum and maximum of the samples
+                  #   - the sum-squared-deviation of the samples, used to compute variance
+                  #   - a histogram of the values of the sample points
+                "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                    #   Sum[i=1..count]((x_i - mean)^2)
+                    # where each x_i is a sample values. If `count` is zero then this field
+                    # must be zero, otherwise validation of the request fails.
+                "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                    # optional. If present, they must sum to the `count` value.
+                    #
+                    # The buckets are defined below in `bucket_option`. There are N buckets.
+                    # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                    # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                    # in each of the finite buckets. And `bucket_counts[N] is the number
+                    # of samples in the overflow bucket. See the comments of `bucket_option`
+                    # below for more details.
+                    #
+                    # Any suffix of trailing zeros may be omitted.
+                  "A String",
+                ],
+                "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                  "scale": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be > 0.
+                  "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be larger than 1.0.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                },
+                "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                  "width": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                      # Must be strictly positive.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                  "offset": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                },
+                "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                  "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                      # buckets. Note that a list of length N-1 defines N buckets because
+                      # of fenceposting. See comments on `bucket_options` for details.
+                      #
+                      # The i'th finite bucket covers the interval
+                      #   [bound[i-1], bound[i])
+                      # where i ranges from 1 to bound_size() - 1. Note that there are no
+                      # finite buckets at all if 'bound' only contains a single element; in
+                      # that special case the single bound defines the boundary between the
+                      # underflow and overflow buckets.
+                      #
+                      # bucket number                   lower bound    upper bound
+                      #  i == 0 (underflow)              -inf           bound[i]
+                      #  0 < i < bound_size()            bound[i-1]     bound[i]
+                      #  i == bound_size() (overflow)    bound[i-1]     +inf
+                    3.14,
+                  ],
+                },
+                "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                    # zero then this field must be zero.
+              },
+              "stringValue": "A String", # A text string value.
+              "int64Value": "A String", # A signed 64-bit integer value.
+              "endTime": "A String", # The end of the time period over which this metric value's measurement
+                  # applies.
+            },
+          ],
+          "metricName": "A String", # The metric name defined in the service configuration.
+        },
+      ],
+      "methodName": "A String", # Fully qualified name of the API method for which this quota operation is
+          # requested. This name is used for matching quota rules or metric rules and
+          # billing status rules defined in service configuration. This field is not
+          # required if the quota operation is performed on non-API resources.
+          #
+          # Example of an RPC method name:
+          #     google.example.library.v1.LibraryService.CreateShelf
+      "labels": { # Labels describing the operation.
+        "a_key": "A String",
+      },
+      "quotaMode": "A String", # Quota mode for this operation.
+      "consumerId": "A String", # Identity of the consumer for whom this quota operation is being performed.
+          #
+          # This can be in one of the following formats:
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
+      "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
+          # service that generated the operation. If the service calls AllocateQuota
+          # and ReleaseQuota on the same operation, the two calls should carry the
+          # same ID.
+          #
+          # UUID version 4 is recommended, though not required. In scenarios where an
+          # operation is computed from existing information and an idempotent id is
+          # desirable for deduplication purpose, UUID version 5 is recommended. See
+          # RFC 4122 for details.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "serviceConfigId": "A String", # ID of the actual config used to process the request.
+    "quotaMetrics": [ # Metric values as tracked by One Platform before the adjustment was made.
+      { # Represents a set of metric values in the same metric.
+          # Each metric value in the set should have a unique combination of start time,
+          # end time, and label values.
+        "metricValues": [ # The values in this metric.
+          { # Represents a single metric value.
+            "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+              "nanos": 42, # Number of nano (10^-9) units of the amount.
+                  # The value must be between -999,999,999 and +999,999,999 inclusive.
+                  # If `units` is positive, `nanos` must be positive or zero.
+                  # If `units` is zero, `nanos` can be positive, zero, or negative.
+                  # If `units` is negative, `nanos` must be negative or zero.
+                  # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+            },
+            "labels": { # The labels describing the metric value.
+                # See comments on google.api.servicecontrol.v1.Operation.labels for
+                # the overriding relationship.
+              "a_key": "A String",
+            },
+            "doubleValue": 3.14, # A double precision floating point value.
+            "boolValue": True or False, # A boolean value.
+            "startTime": "A String", # The start of the time period over which this metric value's measurement
+                # applies. The time period has different semantics for different metric
+                # types (cumulative, delta, and gauge). See the metric definition
+                # documentation in the service configuration for details.
+            "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                # points. It contains the size of the population of sample points plus
+                # additional optional information:
+                #
+                #   - the arithmetic mean of the samples
+                #   - the minimum and maximum of the samples
+                #   - the sum-squared-deviation of the samples, used to compute variance
+                #   - a histogram of the values of the sample points
+              "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+              "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                  #   Sum[i=1..count]((x_i - mean)^2)
+                  # where each x_i is a sample values. If `count` is zero then this field
+                  # must be zero, otherwise validation of the request fails.
+              "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                  # optional. If present, they must sum to the `count` value.
+                  #
+                  # The buckets are defined below in `bucket_option`. There are N buckets.
+                  # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                  # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                  # in each of the finite buckets. And `bucket_counts[N] is the number
+                  # of samples in the overflow bucket. See the comments of `bucket_option`
+                  # below for more details.
+                  #
+                  # Any suffix of trailing zeros may be omitted.
+                "A String",
+              ],
+              "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                "scale": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be > 0.
+                "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be larger than 1.0.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+              },
+              "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+              "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+              "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                "width": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+                    # Must be strictly positive.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+                "offset": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+              },
+              "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                    # buckets. Note that a list of length N-1 defines N buckets because
+                    # of fenceposting. See comments on `bucket_options` for details.
+                    #
+                    # The i'th finite bucket covers the interval
+                    #   [bound[i-1], bound[i])
+                    # where i ranges from 1 to bound_size() - 1. Note that there are no
+                    # finite buckets at all if 'bound' only contains a single element; in
+                    # that special case the single bound defines the boundary between the
+                    # underflow and overflow buckets.
+                    #
+                    # bucket number                   lower bound    upper bound
+                    #  i == 0 (underflow)              -inf           bound[i]
+                    #  0 < i < bound_size()            bound[i-1]     bound[i]
+                    #  i == bound_size() (overflow)    bound[i-1]     +inf
+                  3.14,
+                ],
+              },
+              "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                  # zero then this field must be zero.
+            },
+            "stringValue": "A String", # A text string value.
+            "int64Value": "A String", # A signed 64-bit integer value.
+            "endTime": "A String", # The end of the time period over which this metric value's measurement
+                # applies.
+          },
+        ],
+        "metricName": "A String", # The metric name defined in the service configuration.
+      },
+    ],
+    "reconciliationErrors": [ # Indicates the decision of the reconciliation end.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
+    "operationId": "A String", # The same operation_id value used in the EndReconciliationRequest. Used for
+        # logging and diagnostics purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="releaseQuota">releaseQuota(serviceName=None, body, x__xgafv=None)</code>
+  <pre>Releases previously allocated quota done through AllocateQuota method.
+
+This method requires the `servicemanagement.services.quota`
+permission on the specified service. For more information, see
+[Google Cloud IAM](https://cloud.google.com/iam).
+
+Args:
+  serviceName: string, Name of the service as specified in the service configuration. For example,
+`"pubsub.googleapis.com"`.
+
+See google.api.Service for the definition of a service name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for the ReleaseQuota method.
+    "releaseOperation": { # Represents information regarding a quota operation. # Operation that describes the quota release.
+      "quotaMetrics": [ # Represents information about this operation. Each MetricValueSet
+          # corresponds to a metric defined in the service configuration.
+          # The data type used in the MetricValueSet must agree with
+          # the data type specified in the metric definition.
+          #
+          # Within a single operation, it is not allowed to have more than one
+          # MetricValue instances that have the same metric names and identical
+          # label value combinations. If a request has such duplicated MetricValue
+          # instances, the entire request is rejected with
+          # an invalid argument error.
+        { # Represents a set of metric values in the same metric.
+            # Each metric value in the set should have a unique combination of start time,
+            # end time, and label values.
+          "metricValues": [ # The values in this metric.
+            { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
+              "labels": { # The labels describing the metric value.
+                  # See comments on google.api.servicecontrol.v1.Operation.labels for
+                  # the overriding relationship.
+                "a_key": "A String",
+              },
+              "doubleValue": 3.14, # A double precision floating point value.
+              "boolValue": True or False, # A boolean value.
+              "startTime": "A String", # The start of the time period over which this metric value's measurement
+                  # applies. The time period has different semantics for different metric
+                  # types (cumulative, delta, and gauge). See the metric definition
+                  # documentation in the service configuration for details.
+              "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                  # points. It contains the size of the population of sample points plus
+                  # additional optional information:
+                  #
+                  #   - the arithmetic mean of the samples
+                  #   - the minimum and maximum of the samples
+                  #   - the sum-squared-deviation of the samples, used to compute variance
+                  #   - a histogram of the values of the sample points
+                "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                    #   Sum[i=1..count]((x_i - mean)^2)
+                    # where each x_i is a sample values. If `count` is zero then this field
+                    # must be zero, otherwise validation of the request fails.
+                "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                    # optional. If present, they must sum to the `count` value.
+                    #
+                    # The buckets are defined below in `bucket_option`. There are N buckets.
+                    # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                    # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                    # in each of the finite buckets. And `bucket_counts[N] is the number
+                    # of samples in the overflow bucket. See the comments of `bucket_option`
+                    # below for more details.
+                    #
+                    # Any suffix of trailing zeros may be omitted.
+                  "A String",
+                ],
+                "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                  "scale": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be > 0.
+                  "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be larger than 1.0.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                },
+                "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                  "width": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                      # Must be strictly positive.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                  "offset": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                },
+                "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                  "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                      # buckets. Note that a list of length N-1 defines N buckets because
+                      # of fenceposting. See comments on `bucket_options` for details.
+                      #
+                      # The i'th finite bucket covers the interval
+                      #   [bound[i-1], bound[i])
+                      # where i ranges from 1 to bound_size() - 1. Note that there are no
+                      # finite buckets at all if 'bound' only contains a single element; in
+                      # that special case the single bound defines the boundary between the
+                      # underflow and overflow buckets.
+                      #
+                      # bucket number                   lower bound    upper bound
+                      #  i == 0 (underflow)              -inf           bound[i]
+                      #  0 < i < bound_size()            bound[i-1]     bound[i]
+                      #  i == bound_size() (overflow)    bound[i-1]     +inf
+                    3.14,
+                  ],
+                },
+                "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                    # zero then this field must be zero.
+              },
+              "stringValue": "A String", # A text string value.
+              "int64Value": "A String", # A signed 64-bit integer value.
+              "endTime": "A String", # The end of the time period over which this metric value's measurement
+                  # applies.
+            },
+          ],
+          "metricName": "A String", # The metric name defined in the service configuration.
+        },
+      ],
+      "methodName": "A String", # Fully qualified name of the API method for which this quota operation is
+          # requested. This name is used for matching quota rules or metric rules and
+          # billing status rules defined in service configuration. This field is not
+          # required if the quota operation is performed on non-API resources.
+          #
+          # Example of an RPC method name:
+          #     google.example.library.v1.LibraryService.CreateShelf
+      "labels": { # Labels describing the operation.
+        "a_key": "A String",
+      },
+      "quotaMode": "A String", # Quota mode for this operation.
+      "consumerId": "A String", # Identity of the consumer for whom this quota operation is being performed.
+          #
+          # This can be in one of the following formats:
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
+      "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
+          # service that generated the operation. If the service calls AllocateQuota
+          # and ReleaseQuota on the same operation, the two calls should carry the
+          # same ID.
+          #
+          # UUID version 4 is recommended, though not required. In scenarios where an
+          # operation is computed from existing information and an idempotent id is
+          # desirable for deduplication purpose, UUID version 5 is recommended. See
+          # RFC 4122 for details.
+    },
+    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
+        # the request. If unspecified or no matching version can be found, the latest
+        # one will be used.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the ReleaseQuota method.
+    "serviceConfigId": "A String", # ID of the actual config used to process the request.
+    "quotaMetrics": [ # Quota metrics to indicate the result of release. Depending on the
+        # request, one or more of the following metrics will be included:
+        #
+        # 1. For rate quota, per quota group or per quota metric released amount
+        # will be specified using the following delta metric:
+        #   "serviceruntime.googleapis.com/api/consumer/quota_refund_count"
+        #
+        # 2. For allocation quota, per quota metric total usage will be specified
+        # using the following gauge metric:
+        #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+      { # Represents a set of metric values in the same metric.
+          # Each metric value in the set should have a unique combination of start time,
+          # end time, and label values.
+        "metricValues": [ # The values in this metric.
+          { # Represents a single metric value.
+            "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+              "nanos": 42, # Number of nano (10^-9) units of the amount.
+                  # The value must be between -999,999,999 and +999,999,999 inclusive.
+                  # If `units` is positive, `nanos` must be positive or zero.
+                  # If `units` is zero, `nanos` can be positive, zero, or negative.
+                  # If `units` is negative, `nanos` must be negative or zero.
+                  # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+            },
+            "labels": { # The labels describing the metric value.
+                # See comments on google.api.servicecontrol.v1.Operation.labels for
+                # the overriding relationship.
+              "a_key": "A String",
+            },
+            "doubleValue": 3.14, # A double precision floating point value.
+            "boolValue": True or False, # A boolean value.
+            "startTime": "A String", # The start of the time period over which this metric value's measurement
+                # applies. The time period has different semantics for different metric
+                # types (cumulative, delta, and gauge). See the metric definition
+                # documentation in the service configuration for details.
+            "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                # points. It contains the size of the population of sample points plus
+                # additional optional information:
+                #
+                #   - the arithmetic mean of the samples
+                #   - the minimum and maximum of the samples
+                #   - the sum-squared-deviation of the samples, used to compute variance
+                #   - a histogram of the values of the sample points
+              "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+              "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                  #   Sum[i=1..count]((x_i - mean)^2)
+                  # where each x_i is a sample values. If `count` is zero then this field
+                  # must be zero, otherwise validation of the request fails.
+              "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                  # optional. If present, they must sum to the `count` value.
+                  #
+                  # The buckets are defined below in `bucket_option`. There are N buckets.
+                  # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                  # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                  # in each of the finite buckets. And `bucket_counts[N] is the number
+                  # of samples in the overflow bucket. See the comments of `bucket_option`
+                  # below for more details.
+                  #
+                  # Any suffix of trailing zeros may be omitted.
+                "A String",
+              ],
+              "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                "scale": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be > 0.
+                "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be larger than 1.0.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+              },
+              "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+              "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+              "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                "width": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+                    # Must be strictly positive.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+                "offset": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+              },
+              "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                    # buckets. Note that a list of length N-1 defines N buckets because
+                    # of fenceposting. See comments on `bucket_options` for details.
+                    #
+                    # The i'th finite bucket covers the interval
+                    #   [bound[i-1], bound[i])
+                    # where i ranges from 1 to bound_size() - 1. Note that there are no
+                    # finite buckets at all if 'bound' only contains a single element; in
+                    # that special case the single bound defines the boundary between the
+                    # underflow and overflow buckets.
+                    #
+                    # bucket number                   lower bound    upper bound
+                    #  i == 0 (underflow)              -inf           bound[i]
+                    #  0 < i < bound_size()            bound[i-1]     bound[i]
+                    #  i == bound_size() (overflow)    bound[i-1]     +inf
+                  3.14,
+                ],
+              },
+              "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                  # zero then this field must be zero.
+            },
+            "stringValue": "A String", # A text string value.
+            "int64Value": "A String", # A signed 64-bit integer value.
+            "endTime": "A String", # The end of the time period over which this metric value's measurement
+                # applies.
+          },
+        ],
+        "metricName": "A String", # The metric name defined in the service configuration.
+      },
+    ],
+    "releaseErrors": [ # Indicates the decision of the release.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
+    "operationId": "A String", # The same operation_id value used in the ReleaseQuotaRequest. Used for
+        # logging and diagnostics purposes.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="report">report(serviceName=None, body, x__xgafv=None)</code>
   <pre>Reports operation results to Google Service Control, such as logs and
 metrics. It should be called after an operation is completed.
@@ -371,6 +1524,17 @@
               # end time, and label values.
             "metricValues": [ # The values in this metric.
               { # Represents a single metric value.
+                "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                  "units": "A String", # The whole units of the amount.
+                      # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                  "nanos": 42, # Number of nano (10^-9) units of the amount.
+                      # The value must be between -999,999,999 and +999,999,999 inclusive.
+                      # If `units` is positive, `nanos` must be positive or zero.
+                      # If `units` is zero, `nanos` can be positive, zero, or negative.
+                      # If `units` is negative, `nanos` must be negative or zero.
+                      # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                  "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+                },
                 "labels": { # The labels describing the metric value.
                     # See comments on google.api.servicecontrol.v1.Operation.labels for
                     # the overriding relationship.
@@ -391,6 +1555,10 @@
                     #   - the sum-squared-deviation of the samples, used to compute variance
                     #   - a histogram of the values of the sample points
                   "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                  "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                      #   Sum[i=1..count]((x_i - mean)^2)
+                      # where each x_i is a sample values. If `count` is zero then this field
+                      # must be zero, otherwise validation of the request fails.
                   "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
                       # optional. If present, they must sum to the `count` value.
                       #
@@ -417,12 +1585,8 @@
                         # the total number of buckets is `num_finite_buckets` + 2.
                         # See comments on `bucket_options` for details.
                   },
-                  "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
                   "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
-                  "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
-                      #   Sum[i=1..count]((x_i - mean)^2)
-                      # where each x_i is a sample values. If `count` is zero then this field
-                      # must be zero, otherwise validation of the request fails.
+                  "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
                   "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
                     "width": 3.14, # The i'th linear bucket covers the interval
                         #   [offset + (i-1) * width, offset + i * width)
@@ -484,19 +1648,46 @@
             #        where the API is served (e.g. GAE, GCE, GKE).
           "a_key": "A String",
         },
-        "consumerId": "A String", # Identity of the consumer who is using the service.
-            # This field should be filled in for the operations initiated by a
-            # consumer, but not for service-initiated operations that are
-            # not related to a specific consumer.
+        "quotaProperties": { # Represents the properties needed for quota operations. # Represents the properties needed for quota check. Applicable only if this
+            # operation is for a quota check request.
+            #
+            # Use the metric_value_sets field in Operation message to provide cost
+            # override with metric_name in <service_name>/quota/<quota_group_name>/cost
+            # format. Overrides for unmatched quota groups will be ignored.
+            # Costs are expected to be >= 0. Cost 0 will cause no quota check,
+            # but still traffic restrictions will be enforced.
+          "quotaMode": "A String", # Quota mode for this operation.
+          "limitByIds": { # LimitType IDs that should be used for checking quota. Key in this map
+              # should be a valid LimitType string, and the value is the ID to be used. For
+              # example, an entry <USER, 123> will cause all user quota limits to use 123
+              # as the user ID. See google/api/quota.proto for the definition of LimitType.
+              # CLIENT_PROJECT: Not supported.
+              # USER: Value of this entry will be used for enforcing user-level quota
+              #       limits. If none specified, caller IP passed in the
+              #       servicecontrol.googleapis.com/caller_ip label will be used instead.
+              #       If the server cannot resolve a value for this LimitType, an error
+              #       will be thrown. No validation will be performed on this ID.
+              # Deprecated: use servicecontrol.googleapis.com/user label to send user ID.
+            "a_key": "A String",
+          },
+        },
+        "resourceContainer": "A String", # The resource name of the parent of a resource in the resource hierarchy.
             #
             # This can be in one of the following formats:
-            #   project:<project_id>,
-            #   project_number:<project_number>,
-            #   api_key:<api_key>.
+            #     - “projects/<project-id or project-number>”
+            #     - “folders/<folder-id>”
+            #     - “organizations/<organization-id>”
+        "userLabels": { # User defined labels for the resource that this operation is associated
+            # with.
+          "a_key": "A String",
+        },
+        "endTime": "A String", # End time of the operation.
+            # Required when the operation is used in ServiceController.Report,
+            # but optional when the operation is used in ServiceController.Check.
         "logEntries": [ # Represents information to be logged.
           { # An individual log entry.
-            "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
-                # `"book_log"`.
+            "severity": "A String", # The severity of the log entry. The default value is
+                # `LogSeverity.DEFAULT`.
             "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
             "timestamp": "A String", # The time the event described by the log entry occurred. If
                 # omitted, defaults to operation start time.
@@ -508,21 +1699,27 @@
                 # is expressed as a JSON object.
               "a_key": "", # Properties of the object.
             },
-            "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
-                # the implementation will generate one based on operation_id.
             "protoPayload": { # The log entry payload, represented as a protocol buffer that is
                 # expressed as a JSON object. You can only pass `protoPayload`
                 # values that belong to a set of approved types.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "severity": "A String", # The severity of the log entry. The default value is
-                # `LogSeverity.DEFAULT`.
+            "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
+                # the implementation will generate one based on operation_id.
+            "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
+                # `"book_log"`.
           },
         ],
         "startTime": "A String", # Required. Start time of the operation.
-        "endTime": "A String", # End time of the operation.
-            # Required when the operation is used in ServiceController.Report,
-            # but optional when the operation is used in ServiceController.Check.
+        "consumerId": "A String", # Identity of the consumer who is using the service.
+            # This field should be filled in for the operations initiated by a
+            # consumer, but not for service-initiated operations that are
+            # not related to a specific consumer.
+            #
+            # This can be in one of the following formats:
+            #   project:<project_id>,
+            #   project_number:<project_number>,
+            #   api_key:<api_key>.
         "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
             # service that generated the operation. If the service calls
             # Check() and Report() on the same operation, the two calls should carry
@@ -551,6 +1748,158 @@
 
     { # Response message for the Report method.
     "serviceConfigId": "A String", # The actual config id used to process the request.
+    "reportInfos": [ # Quota usage for each quota release `Operation` request.
+        #
+        # Fully or partially failed quota release request may or may not be present
+        # in `report_quota_info`. For example, a failed quota release request will
+        # have the current quota usage info when precise quota library returns the
+        # info. A deadline exceeded quota request will not have quota usage info.
+        #
+        # If there is no quota release request, report_quota_info will be empty.
+      {
+        "quotaInfo": { # Contains the quota information for a quota check response. # Quota usage info when processing the `Operation`.
+          "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
+              # more of the following metrics will be included:
+              #
+              # 1. For rate quota, per quota group or per quota metric incremental usage
+              # will be specified using the following delta metric:
+              #   "serviceruntime.googleapis.com/api/consumer/quota_used_count"
+              #
+              # 2. For allocation quota, per quota metric total usage will be specified
+              # using the following gauge metric:
+              #   "serviceruntime.googleapis.com/allocation/consumer/quota_used_count"
+              #
+              # 3. For both rate quota and allocation quota, the quota limit reached
+              # condition will be specified using the following boolean metric:
+              #   "serviceruntime.googleapis.com/quota/exceeded"
+            { # Represents a set of metric values in the same metric.
+                # Each metric value in the set should have a unique combination of start time,
+                # end time, and label values.
+              "metricValues": [ # The values in this metric.
+                { # Represents a single metric value.
+                  "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                    "units": "A String", # The whole units of the amount.
+                        # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                    "nanos": 42, # Number of nano (10^-9) units of the amount.
+                        # The value must be between -999,999,999 and +999,999,999 inclusive.
+                        # If `units` is positive, `nanos` must be positive or zero.
+                        # If `units` is zero, `nanos` can be positive, zero, or negative.
+                        # If `units` is negative, `nanos` must be negative or zero.
+                        # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+                  },
+                  "labels": { # The labels describing the metric value.
+                      # See comments on google.api.servicecontrol.v1.Operation.labels for
+                      # the overriding relationship.
+                    "a_key": "A String",
+                  },
+                  "doubleValue": 3.14, # A double precision floating point value.
+                  "boolValue": True or False, # A boolean value.
+                  "startTime": "A String", # The start of the time period over which this metric value's measurement
+                      # applies. The time period has different semantics for different metric
+                      # types (cumulative, delta, and gauge). See the metric definition
+                      # documentation in the service configuration for details.
+                  "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                      # points. It contains the size of the population of sample points plus
+                      # additional optional information:
+                      #
+                      #   - the arithmetic mean of the samples
+                      #   - the minimum and maximum of the samples
+                      #   - the sum-squared-deviation of the samples, used to compute variance
+                      #   - a histogram of the values of the sample points
+                    "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                    "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                        #   Sum[i=1..count]((x_i - mean)^2)
+                        # where each x_i is a sample values. If `count` is zero then this field
+                        # must be zero, otherwise validation of the request fails.
+                    "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                        # optional. If present, they must sum to the `count` value.
+                        #
+                        # The buckets are defined below in `bucket_option`. There are N buckets.
+                        # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                        # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                        # in each of the finite buckets. And `bucket_counts[N] is the number
+                        # of samples in the overflow bucket. See the comments of `bucket_option`
+                        # below for more details.
+                        #
+                        # Any suffix of trailing zeros may be omitted.
+                      "A String",
+                    ],
+                    "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                      "scale": 3.14, # The i'th exponential bucket covers the interval
+                          #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                          # where i ranges from 1 to num_finite_buckets inclusive.
+                          # Must be > 0.
+                      "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                          #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                          # where i ranges from 1 to num_finite_buckets inclusive.
+                          # Must be larger than 1.0.
+                      "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                          # the total number of buckets is `num_finite_buckets` + 2.
+                          # See comments on `bucket_options` for details.
+                    },
+                    "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                    "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                    "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                      "width": 3.14, # The i'th linear bucket covers the interval
+                          #   [offset + (i-1) * width, offset + i * width)
+                          # where i ranges from 1 to num_finite_buckets, inclusive.
+                          # Must be strictly positive.
+                      "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                          # the total number of buckets is `num_finite_buckets` + 2.
+                          # See comments on `bucket_options` for details.
+                      "offset": 3.14, # The i'th linear bucket covers the interval
+                          #   [offset + (i-1) * width, offset + i * width)
+                          # where i ranges from 1 to num_finite_buckets, inclusive.
+                    },
+                    "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                      "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                          # buckets. Note that a list of length N-1 defines N buckets because
+                          # of fenceposting. See comments on `bucket_options` for details.
+                          #
+                          # The i'th finite bucket covers the interval
+                          #   [bound[i-1], bound[i])
+                          # where i ranges from 1 to bound_size() - 1. Note that there are no
+                          # finite buckets at all if 'bound' only contains a single element; in
+                          # that special case the single bound defines the boundary between the
+                          # underflow and overflow buckets.
+                          #
+                          # bucket number                   lower bound    upper bound
+                          #  i == 0 (underflow)              -inf           bound[i]
+                          #  0 < i < bound_size()            bound[i-1]     bound[i]
+                          #  i == bound_size() (overflow)    bound[i-1]     +inf
+                        3.14,
+                      ],
+                    },
+                    "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                        # zero then this field must be zero.
+                  },
+                  "stringValue": "A String", # A text string value.
+                  "int64Value": "A String", # A signed 64-bit integer value.
+                  "endTime": "A String", # The end of the time period over which this metric value's measurement
+                      # applies.
+                },
+              ],
+              "metricName": "A String", # The metric name defined in the service configuration.
+            },
+          ],
+          "limitExceeded": [ # Quota Metrics that have exceeded quota limits.
+              # For QuotaGroup-based quota, this is QuotaGroup.name
+              # For QuotaLimit-based quota, this is QuotaLimit.name
+              # See: google.api.Quota
+              # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
+            "A String",
+          ],
+          "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+              # quota check was not successful, then this will not be populated due to no
+              # quota consumption.
+              # Deprecated: Use quota_metrics to get per quota group usage.
+            "a_key": 42,
+          },
+        },
+        "operationId": "A String", # The Operation.operation_id value from the request.
+      },
+    ],
     "reportErrors": [ # Partial failures, one for each `Operation` in the request that failed
         # processing. There are three possible combinations of the RPC status:
         #
@@ -635,4 +1984,332 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="startReconciliation">startReconciliation(serviceName=None, body, x__xgafv=None)</code>
+  <pre>Unlike rate quota, allocation quota does not get refilled periodically.
+So, it is possible that the quota usage as seen by the service differs from
+what the One Platform considers the usage is. This is expected to happen
+only rarely, but over time this can accumulate. Services can invoke
+StartReconciliation and EndReconciliation to correct this usage drift, as
+described below:
+1. Service sends StartReconciliation with a timestamp in future for each
+   metric that needs to be reconciled. The timestamp being in future allows
+   to account for in-flight AllocateQuota and ReleaseQuota requests for the
+   same metric.
+2. One Platform records this timestamp and starts tracking subsequent
+   AllocateQuota and ReleaseQuota requests until EndReconciliation is
+   called.
+3. At or after the time specified in the StartReconciliation, service
+   sends EndReconciliation with the usage that needs to be reconciled to.
+4. One Platform adjusts its own record of usage for that metric to the
+   value specified in EndReconciliation by taking in to account any
+   allocation or release between StartReconciliation and EndReconciliation.
+
+Signals the quota controller that the service wants to perform a usage
+reconciliation as specified in the request.
+
+This method requires the `servicemanagement.services.quota`
+permission on the specified service. For more information, see
+[Google Cloud IAM](https://cloud.google.com/iam).
+
+Args:
+  serviceName: string, Name of the service as specified in the service configuration. For example,
+`"pubsub.googleapis.com"`.
+
+See google.api.Service for the definition of a service name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "serviceConfigId": "A String", # Specifies which version of service configuration should be used to process
+        # the request. If unspecified or no matching version can be found, the latest
+        # one will be used.
+    "reconciliationOperation": { # Represents information regarding a quota operation. # Operation that describes the quota reconciliation.
+      "quotaMetrics": [ # Represents information about this operation. Each MetricValueSet
+          # corresponds to a metric defined in the service configuration.
+          # The data type used in the MetricValueSet must agree with
+          # the data type specified in the metric definition.
+          #
+          # Within a single operation, it is not allowed to have more than one
+          # MetricValue instances that have the same metric names and identical
+          # label value combinations. If a request has such duplicated MetricValue
+          # instances, the entire request is rejected with
+          # an invalid argument error.
+        { # Represents a set of metric values in the same metric.
+            # Each metric value in the set should have a unique combination of start time,
+            # end time, and label values.
+          "metricValues": [ # The values in this metric.
+            { # Represents a single metric value.
+              "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+                "units": "A String", # The whole units of the amount.
+                    # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+                "nanos": 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+              },
+              "labels": { # The labels describing the metric value.
+                  # See comments on google.api.servicecontrol.v1.Operation.labels for
+                  # the overriding relationship.
+                "a_key": "A String",
+              },
+              "doubleValue": 3.14, # A double precision floating point value.
+              "boolValue": True or False, # A boolean value.
+              "startTime": "A String", # The start of the time period over which this metric value's measurement
+                  # applies. The time period has different semantics for different metric
+                  # types (cumulative, delta, and gauge). See the metric definition
+                  # documentation in the service configuration for details.
+              "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                  # points. It contains the size of the population of sample points plus
+                  # additional optional information:
+                  #
+                  #   - the arithmetic mean of the samples
+                  #   - the minimum and maximum of the samples
+                  #   - the sum-squared-deviation of the samples, used to compute variance
+                  #   - a histogram of the values of the sample points
+                "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+                "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                    #   Sum[i=1..count]((x_i - mean)^2)
+                    # where each x_i is a sample values. If `count` is zero then this field
+                    # must be zero, otherwise validation of the request fails.
+                "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                    # optional. If present, they must sum to the `count` value.
+                    #
+                    # The buckets are defined below in `bucket_option`. There are N buckets.
+                    # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                    # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                    # in each of the finite buckets. And `bucket_counts[N] is the number
+                    # of samples in the overflow bucket. See the comments of `bucket_option`
+                    # below for more details.
+                    #
+                    # Any suffix of trailing zeros may be omitted.
+                  "A String",
+                ],
+                "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                  "scale": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be > 0.
+                  "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                      #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                      # where i ranges from 1 to num_finite_buckets inclusive.
+                      # Must be larger than 1.0.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                },
+                "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+                "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+                "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                  "width": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                      # Must be strictly positive.
+                  "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                      # the total number of buckets is `num_finite_buckets` + 2.
+                      # See comments on `bucket_options` for details.
+                  "offset": 3.14, # The i'th linear bucket covers the interval
+                      #   [offset + (i-1) * width, offset + i * width)
+                      # where i ranges from 1 to num_finite_buckets, inclusive.
+                },
+                "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                  "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                      # buckets. Note that a list of length N-1 defines N buckets because
+                      # of fenceposting. See comments on `bucket_options` for details.
+                      #
+                      # The i'th finite bucket covers the interval
+                      #   [bound[i-1], bound[i])
+                      # where i ranges from 1 to bound_size() - 1. Note that there are no
+                      # finite buckets at all if 'bound' only contains a single element; in
+                      # that special case the single bound defines the boundary between the
+                      # underflow and overflow buckets.
+                      #
+                      # bucket number                   lower bound    upper bound
+                      #  i == 0 (underflow)              -inf           bound[i]
+                      #  0 < i < bound_size()            bound[i-1]     bound[i]
+                      #  i == bound_size() (overflow)    bound[i-1]     +inf
+                    3.14,
+                  ],
+                },
+                "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                    # zero then this field must be zero.
+              },
+              "stringValue": "A String", # A text string value.
+              "int64Value": "A String", # A signed 64-bit integer value.
+              "endTime": "A String", # The end of the time period over which this metric value's measurement
+                  # applies.
+            },
+          ],
+          "metricName": "A String", # The metric name defined in the service configuration.
+        },
+      ],
+      "methodName": "A String", # Fully qualified name of the API method for which this quota operation is
+          # requested. This name is used for matching quota rules or metric rules and
+          # billing status rules defined in service configuration. This field is not
+          # required if the quota operation is performed on non-API resources.
+          #
+          # Example of an RPC method name:
+          #     google.example.library.v1.LibraryService.CreateShelf
+      "labels": { # Labels describing the operation.
+        "a_key": "A String",
+      },
+      "quotaMode": "A String", # Quota mode for this operation.
+      "consumerId": "A String", # Identity of the consumer for whom this quota operation is being performed.
+          #
+          # This can be in one of the following formats:
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
+      "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
+          # service that generated the operation. If the service calls AllocateQuota
+          # and ReleaseQuota on the same operation, the two calls should carry the
+          # same ID.
+          #
+          # UUID version 4 is recommended, though not required. In scenarios where an
+          # operation is computed from existing information and an idempotent id is
+          # desirable for deduplication purpose, UUID version 5 is recommended. See
+          # RFC 4122 for details.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "serviceConfigId": "A String", # ID of the actual config used to process the request.
+    "quotaMetrics": [ # Metric values as tracked by One Platform before the start of
+        # reconciliation.
+      { # Represents a set of metric values in the same metric.
+          # Each metric value in the set should have a unique combination of start time,
+          # end time, and label values.
+        "metricValues": [ # The values in this metric.
+          { # Represents a single metric value.
+            "moneyValue": { # Represents an amount of money with its currency type. # A money value.
+              "units": "A String", # The whole units of the amount.
+                  # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+              "nanos": 42, # Number of nano (10^-9) units of the amount.
+                  # The value must be between -999,999,999 and +999,999,999 inclusive.
+                  # If `units` is positive, `nanos` must be positive or zero.
+                  # If `units` is zero, `nanos` can be positive, zero, or negative.
+                  # If `units` is negative, `nanos` must be negative or zero.
+                  # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+            },
+            "labels": { # The labels describing the metric value.
+                # See comments on google.api.servicecontrol.v1.Operation.labels for
+                # the overriding relationship.
+              "a_key": "A String",
+            },
+            "doubleValue": 3.14, # A double precision floating point value.
+            "boolValue": True or False, # A boolean value.
+            "startTime": "A String", # The start of the time period over which this metric value's measurement
+                # applies. The time period has different semantics for different metric
+                # types (cumulative, delta, and gauge). See the metric definition
+                # documentation in the service configuration for details.
+            "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
+                # points. It contains the size of the population of sample points plus
+                # additional optional information:
+                #
+                #   - the arithmetic mean of the samples
+                #   - the minimum and maximum of the samples
+                #   - the sum-squared-deviation of the samples, used to compute variance
+                #   - a histogram of the values of the sample points
+              "count": "A String", # The total number of samples in the distribution. Must be >= 0.
+              "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
+                  #   Sum[i=1..count]((x_i - mean)^2)
+                  # where each x_i is a sample values. If `count` is zero then this field
+                  # must be zero, otherwise validation of the request fails.
+              "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
+                  # optional. If present, they must sum to the `count` value.
+                  #
+                  # The buckets are defined below in `bucket_option`. There are N buckets.
+                  # `bucket_counts[0]` is the number of samples in the underflow bucket.
+                  # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
+                  # in each of the finite buckets. And `bucket_counts[N] is the number
+                  # of samples in the overflow bucket. See the comments of `bucket_option`
+                  # below for more details.
+                  #
+                  # Any suffix of trailing zeros may be omitted.
+                "A String",
+              ],
+              "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
+                "scale": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be > 0.
+                "growthFactor": 3.14, # The i'th exponential bucket covers the interval
+                    #   [scale * growth_factor^(i-1), scale * growth_factor^i)
+                    # where i ranges from 1 to num_finite_buckets inclusive.
+                    # Must be larger than 1.0.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+              },
+              "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
+              "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
+              "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
+                "width": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+                    # Must be strictly positive.
+                "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
+                    # the total number of buckets is `num_finite_buckets` + 2.
+                    # See comments on `bucket_options` for details.
+                "offset": 3.14, # The i'th linear bucket covers the interval
+                    #   [offset + (i-1) * width, offset + i * width)
+                    # where i ranges from 1 to num_finite_buckets, inclusive.
+              },
+              "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
+                "bounds": [ # 'bound' is a list of strictly increasing boundaries between
+                    # buckets. Note that a list of length N-1 defines N buckets because
+                    # of fenceposting. See comments on `bucket_options` for details.
+                    #
+                    # The i'th finite bucket covers the interval
+                    #   [bound[i-1], bound[i])
+                    # where i ranges from 1 to bound_size() - 1. Note that there are no
+                    # finite buckets at all if 'bound' only contains a single element; in
+                    # that special case the single bound defines the boundary between the
+                    # underflow and overflow buckets.
+                    #
+                    # bucket number                   lower bound    upper bound
+                    #  i == 0 (underflow)              -inf           bound[i]
+                    #  0 < i < bound_size()            bound[i-1]     bound[i]
+                    #  i == bound_size() (overflow)    bound[i-1]     +inf
+                  3.14,
+                ],
+              },
+              "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
+                  # zero then this field must be zero.
+            },
+            "stringValue": "A String", # A text string value.
+            "int64Value": "A String", # A signed 64-bit integer value.
+            "endTime": "A String", # The end of the time period over which this metric value's measurement
+                # applies.
+          },
+        ],
+        "metricName": "A String", # The metric name defined in the service configuration.
+      },
+    ],
+    "reconciliationErrors": [ # Indicates the decision of the reconciliation start.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
+    "operationId": "A String", # The same operation_id value used in the StartReconciliationRequest. Used
+        # for logging and diagnostics purposes.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/servicemanagement_v1.operations.html b/docs/dyn/servicemanagement_v1.operations.html
index 3ff1302..acf76b4 100644
--- a/docs/dyn/servicemanagement_v1.operations.html
+++ b/docs/dyn/servicemanagement_v1.operations.html
@@ -77,6 +77,12 @@
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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(name, x__xgafv=None)</code>
@@ -102,22 +108,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -181,7 +171,153 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding below allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`.
+
+Args:
+  name: string, The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/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/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index 752a764..8db8b79 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -78,7 +78,7 @@
   <code><a href="#create">create(serviceName=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new service configuration (version) for a managed service.</p>
 <p class="toc_element">
-  <code><a href="#get">get(serviceName=None, configId, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(serviceName=None, configId, x__xgafv=None, view=None)</a></code></p>
 <p class="firstline">Gets a service configuration (version) for a managed service.</p>
 <p class="toc_element">
   <code><a href="#list">list(serviceName=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -159,14 +159,14 @@
           # displayed in user interfaces. It should be a Title Cased Noun Phrase,
           # without any article or other determiners. For example,
           # `"Google Cloud SQL Database"`.
-      "description": "A String", # Optional. A detailed description of the monitored resource type that might
-          # be used in documentation.
       "name": "A String", # Optional. The resource name of the monitored resource descriptor:
           # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
           # {type} is the value of the `type` field in this object and
           # {project_id} is a project ID that provides API-specific context for
           # accessing the type.  APIs that do not use project information can use the
           # resource name format `"monitoredResourceDescriptors/{type}"`.
+      "description": "A String", # Optional. A detailed description of the monitored resource type that might
+          # be used in documentation.
     },
   ],
   "logs": [ # Defines the logs used by this service.
@@ -189,73 +189,17 @@
       ],
       "displayName": "A String", # The human-readable name for this log. This information appears on
           # the user interface and should be concise.
-      "description": "A String", # A human-readable description of this log. This information appears in
-          # the documentation and can contain details.
       "name": "A String", # The name of the log. It must be less than 512 characters long and can
           # include the following characters: upper- and lower-case alphanumeric
           # characters [A-Za-z0-9], and punctuation characters including
           # slash, underscore, hyphen, period [/_-.].
+      "description": "A String", # A human-readable description of this log. This information appears in
+          # the documentation and can contain details.
     },
   ],
-  "systemParameters": { # ### System parameter configuration # System parameter configuration.
-      #
-      # A system parameter is a special kind of parameter defined by the API
-      # system, not by an individual API. It is typically mapped to an HTTP header
-      # and/or a URL query parameter. This configuration specifies which methods
-      # change the names of the system parameters.
-    "rules": [ # Define system parameters.
-        #
-        # The parameters defined here will override the default parameters
-        # implemented by the system. If this field is missing from the service
-        # config, default system parameters will be used. Default system parameters
-        # and names is implementation-dependent.
-        #
-        # Example: define api key for all methods
-        #
-        #     system_parameters
-        #       rules:
-        #         - selector: "*"
-        #           parameters:
-        #             - name: api_key
-        #               url_query_parameter: api_key
-        #
-        #
-        # Example: define 2 api key names for a specific method.
-        #
-        #     system_parameters
-        #       rules:
-        #         - selector: "/ListShelves"
-        #           parameters:
-        #             - name: api_key
-        #               http_header: Api-Key1
-        #             - name: api_key
-        #               http_header: Api-Key2
-        #
-        # **NOTE:** All service configuration rules follow "last one wins" order.
-      { # Define a system parameter rule mapping system parameter definitions to
-          # methods.
-        "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
-            # For a given method call, only one of them should be used. If multiple
-            # names are used the behavior is implementation-dependent.
-            # If none of the specified names are present the behavior is
-            # parameter-dependent.
-          { # Define a parameter's name and location. The parameter may be passed as either
-              # an HTTP header or a URL query parameter, and if both are passed the behavior
-              # is implementation-dependent.
-            "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
-                # sensitive.
-            "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
-            "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
-                # insensitive.
-          },
-        ],
-        "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-            # methods in all APIs.
-            #
-            # Refer to selector for syntax details.
-      },
-    ],
-  },
+  "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+      # by the client for tracking purpose. If empty, the server may choose to
+      # generate one instead.
   "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
     "rules": [ # A list of API backend rules that apply to individual API methods.
         #
@@ -336,10 +280,65 @@
       },
     ],
   },
-  "title": "A String", # The product title associated with this service.
-  "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-      # by the client for tracking purpose. If empty, the server may choose to
-      # generate one instead.
+  "systemParameters": { # ### System parameter configuration # System parameter configuration.
+      #
+      # A system parameter is a special kind of parameter defined by the API
+      # system, not by an individual API. It is typically mapped to an HTTP header
+      # and/or a URL query parameter. This configuration specifies which methods
+      # change the names of the system parameters.
+    "rules": [ # Define system parameters.
+        #
+        # The parameters defined here will override the default parameters
+        # implemented by the system. If this field is missing from the service
+        # config, default system parameters will be used. Default system parameters
+        # and names is implementation-dependent.
+        #
+        # Example: define api key for all methods
+        #
+        #     system_parameters
+        #       rules:
+        #         - selector: "*"
+        #           parameters:
+        #             - name: api_key
+        #               url_query_parameter: api_key
+        #
+        #
+        # Example: define 2 api key names for a specific method.
+        #
+        #     system_parameters
+        #       rules:
+        #         - selector: "/ListShelves"
+        #           parameters:
+        #             - name: api_key
+        #               http_header: Api-Key1
+        #             - name: api_key
+        #               http_header: Api-Key2
+        #
+        # **NOTE:** All service configuration rules follow "last one wins" order.
+      { # Define a system parameter rule mapping system parameter definitions to
+          # methods.
+        "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+            # For a given method call, only one of them should be used. If multiple
+            # names are used the behavior is implementation-dependent.
+            # If none of the specified names are present the behavior is
+            # parameter-dependent.
+          { # Define a parameter's name and location. The parameter may be passed as either
+              # an HTTP header or a URL query parameter, and if both are passed the behavior
+              # is implementation-dependent.
+            "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                # sensitive.
+            "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                # insensitive.
+            "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+          },
+        ],
+        "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+            # methods in all APIs.
+            #
+            # Refer to selector for syntax details.
+      },
+    ],
+  },
   "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
       #
       # Example for an API targeted for external use:
@@ -392,6 +391,13 @@
               #      canonical_scopes: https://www.googleapis.com/auth/calendar,
               #                        https://www.googleapis.com/auth/calendar.read
         },
+        "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+            # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+            #
+            # For requests without credentials, if the service control environment is
+            # specified, each incoming request **must** be associated with a service
+            # consumer. This can be done by passing an API key that belongs to a consumer
+            # project.
         "requirements": [ # Requirements for additional authentication providers.
           { # User-defined authentication requirements, including support for
               # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -418,13 +424,6 @@
                 #                bookstore_web.apps.googleusercontent.com
           },
         ],
-        "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-            # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-            #
-            # For requests without credentials, if the service control environment is
-            # specified, each incoming request **must** be associated with a service
-            # consumer. This can be done by passing an API key that belongs to a consumer
-            # project.
         "selector": "A String", # Selects the methods to which this rule applies.
             #
             # Refer to selector for syntax details.
@@ -433,15 +432,6 @@
     "providers": [ # Defines a set of authentication providers that a service supports.
       { # Configuration for an anthentication provider, including support for
           # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
-        "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
-            # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
-            # Optional if the key set document:
-            #  - can be retrieved from
-            #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
-            #    of the issuer.
-            #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
-            #
-            # Example: https://www.googleapis.com/oauth2/v1/certs
         "audiences": "A String", # The list of JWT
             # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
             # that are allowed to access. A JWT containing any of these audiences will
@@ -455,6 +445,15 @@
             #
             #     audiences: bookstore_android.apps.googleusercontent.com,
             #                bookstore_web.apps.googleusercontent.com
+        "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+            # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+            # Optional if the key set document:
+            #  - can be retrieved from
+            #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+            #    of the issuer.
+            #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+            #
+            # Example: https://www.googleapis.com/oauth2/v1/certs
         "id": "A String", # The unique identifier of the auth provider. It will be referred to by
             # `AuthRequirement.provider_id`.
             #
@@ -742,29 +741,35 @@
             # body. NOTE: the referred field must not be a repeated field and must be
             # present at the top-level of request message type.
         "get": "A String", # Used for listing and getting information about resources.
-        "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
-            # [][google.bytestream.RestByteStream] as an API to your
-            # configuration.
-            # [][google.bytestream.RestByteStream] as an API to your
-            # configuration.
+        "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+            # For media support, add instead [][google.bytestream.RestByteStream] as an
+            # API to your configuration.
+            # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+            # your configuration for Bytestream methods.
           "enabled": True or False, # Whether download is enabled.
+          "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+              #
+              # Specify name of the download service if one is used for download.
         },
         "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
             # not contain an `additional_bindings` field themselves (that is,
             # the nesting may only be one level deep).
           # Object with schema name: HttpRule
         ],
-        "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
+        "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+            # Bytestream, add instead
             # [][google.bytestream.RestByteStream] as an API to your
-            # configuration.
-            # [][google.bytestream.RestByteStream] as an API to your
-            # configuration.
+            # configuration for Bytestream methods.
+            # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+            # your configuration for Bytestream methods.
           "enabled": True or False, # Whether upload is enabled.
+          "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+              #
+              # Specify name of the upload service if one is used for upload.
         },
-        "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
-          "path": "A String", # The path matched by this custom verb.
-          "kind": "A String", # The name of this custom HTTP verb.
-        },
+        "selector": "A String", # Selects methods to which this rule applies.
+            #
+            # Refer to selector for syntax details.
         "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
             # response. Other response fields are ignored. This field is optional. When
             # not set, the response message will be used as HTTP body of response.
@@ -773,9 +778,10 @@
         "put": "A String", # Used for updating a resource.
         "patch": "A String", # Used for updating a resource.
         "post": "A String", # Used for creating a resource.
-        "selector": "A String", # Selects methods to which this rule applies.
-            #
-            # Refer to selector for syntax details.
+        "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+          "path": "A String", # The path matched by this custom verb.
+          "kind": "A String", # The name of this custom HTTP verb.
+        },
         "delete": "A String", # Used for deleting a resource.
       },
     ],
@@ -1019,7 +1025,14 @@
         # existing data unusable.
       "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
           # Use sentence case without an ending period, for example "Request count".
-      "description": "A String", # A detailed description of the metric, which can be used in documentation.
+      "name": "A String", # The resource name of the metric descriptor. Depending on the
+          # implementation, the name typically includes: (1) the parent resource name
+          # that defines the scope of the metric type or of its data; and (2) the
+          # metric's URL-encoded type, which also appears in the `type` field of this
+          # descriptor. For example, following is the resource name of a custom
+          # metric within the GCP project `my-project-id`:
+          #
+          #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
       "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
           # Some combinations of `metric_kind` and `value_type` might not be supported.
       "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
@@ -1037,7 +1050,7 @@
         },
       ],
       "type": "A String", # The metric type, including its DNS name prefix. The type is not
-          # URL-encoded.  All user-defined metric types have the DNS name
+          # URL-encoded.  All user-defined custom metric types have the DNS name
           # `custom.googleapis.com`.  Metric types should use a natural hierarchical
           # grouping. For example:
           #
@@ -1107,14 +1120,7 @@
           #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
           # * `NAME` is a sequence of non-blank printable ASCII characters not
           #    containing '{' or '}'.
-      "name": "A String", # The resource name of the metric descriptor. Depending on the
-          # implementation, the name typically includes: (1) the parent resource name
-          # that defines the scope of the metric type or of its data; and (2) the
-          # metric's URL-encoded type, which also appears in the `type` field of this
-          # descriptor. For example, following is the resource name of a custom
-          # metric within the GCP project 123456789:
-          #
-          #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+      "description": "A String", # A detailed description of the metric, which can be used in documentation.
     },
   ],
   "enums": [ # A list of all enum types included in this API service.  Enums
@@ -1125,32 +1131,12 @@
       #     enums:
       #     - name: google.someapi.v1.SomeEnum
     { # Enum type definition.
+      "syntax": "A String", # The source syntax.
       "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
           # protobuf element, like the file in which it is defined.
         "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
             # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
       },
-      "enumvalue": [ # Enum value definitions.
-        { # Enum value definition.
-          "number": 42, # Enum value number.
-          "options": [ # Protocol buffer options.
-            { # A protocol buffer option, which can be attached to a message, field,
-                # enumeration, etc.
-              "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                  # For custom options, it should be the fully-qualified name. For example,
-                  # `"google.api.http"`.
-              "value": { # The option's value packed in an Any message. If the value is a primitive,
-                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                  # should be used. If the value is an enum, it should be stored as an int32
-                  # value using the google.protobuf.Int32Value type.
-                "a_key": "", # Properties of the object. Contains field @type with type URL.
-              },
-            },
-          ],
-          "name": "A String", # Enum value name.
-        },
-      ],
       "options": [ # Protocol buffer options.
         { # A protocol buffer option, which can be attached to a message, field,
             # enumeration, etc.
@@ -1167,7 +1153,27 @@
         },
       ],
       "name": "A String", # Enum type name.
-      "syntax": "A String", # The source syntax.
+      "enumvalue": [ # Enum value definitions.
+        { # Enum value definition.
+          "options": [ # Protocol buffer options.
+            { # A protocol buffer option, which can be attached to a message, field,
+                # enumeration, etc.
+              "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                  # For custom options, it should be the fully-qualified name. For example,
+                  # `"google.api.http"`.
+              "value": { # The option's value packed in an Any message. If the value is a primitive,
+                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                  # should be used. If the value is an enum, it should be stored as an int32
+                  # value using the google.protobuf.Int32Value type.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            },
+          ],
+          "number": 42, # Enum value number.
+          "name": "A String", # Enum value name.
+        },
+      ],
     },
   ],
   "types": [ # A list of all proto message types included in this API service.
@@ -1183,12 +1189,6 @@
         "A String",
       ],
       "name": "A String", # The fully qualified message name.
-      "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-          # protobuf element, like the file in which it is defined.
-        "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-            # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-      },
-      "syntax": "A String", # The source syntax.
       "fields": [ # The list of fields.
         { # A single field of a message type.
           "kind": "A String", # The field type.
@@ -1219,6 +1219,12 @@
           "packed": True or False, # Whether to use alternative packed wire representation.
         },
       ],
+      "syntax": "A String", # The source syntax.
+      "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+          # protobuf element, like the file in which it is defined.
+        "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+            # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+      },
       "options": [ # The protocol buffer options.
         { # A protocol buffer option, which can be attached to a message, field,
             # enumeration, etc.
@@ -1372,19 +1378,7 @@
             # is used.
       },
     ],
-    "overview": "A String", # Declares a single overview page. For example:
-        # <pre><code>documentation:
-        #   summary: ...
-        #   overview: &#40;== include overview.md ==&#41;
-        # </code></pre>
-        # This is a shortcut for the following declaration (using pages style):
-        # <pre><code>documentation:
-        #   summary: ...
-        #   pages:
-        #   - name: Overview
-        #     content: &#40;== include overview.md ==&#41;
-        # </code></pre>
-        # Note: you cannot specify both `overview` field and `pages` field.
+    "documentationRootUrl": "A String", # The URL to the root of documentation.
     "summary": "A String", # A short summary of what the service does. Can only be provided by
         # plain text.
     "pages": [ # The top level pages for the documentation set.
@@ -1412,7 +1406,26 @@
             # `Java`.
       },
     ],
-    "documentationRootUrl": "A String", # The URL to the root of documentation.
+    "overview": "A String", # Declares a single overview page. For example:
+        # <pre><code>documentation:
+        #   summary: ...
+        #   overview: &#40;== include overview.md ==&#41;
+        # </code></pre>
+        # This is a shortcut for the following declaration (using pages style):
+        # <pre><code>documentation:
+        #   summary: ...
+        #   pages:
+        #   - name: Overview
+        #     content: &#40;== include overview.md ==&#41;
+        # </code></pre>
+        # Note: you cannot specify both `overview` field and `pages` field.
+  },
+  "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+    "sourceFiles": [ # All files used during config generation.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
   },
   "systemTypes": [ # A list of all proto message types included in this API service.
       # It serves similar purpose as [google.api.Service.types], except that
@@ -1424,12 +1437,6 @@
         "A String",
       ],
       "name": "A String", # The fully qualified message name.
-      "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-          # protobuf element, like the file in which it is defined.
-        "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-            # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-      },
-      "syntax": "A String", # The source syntax.
       "fields": [ # The list of fields.
         { # A single field of a message type.
           "kind": "A String", # The field type.
@@ -1460,6 +1467,12 @@
           "packed": True or False, # Whether to use alternative packed wire representation.
         },
       ],
+      "syntax": "A String", # The source syntax.
+      "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+          # protobuf element, like the file in which it is defined.
+        "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+            # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+      },
       "options": [ # The protocol buffer options.
         { # A protocol buffer option, which can be attached to a message, field,
             # enumeration, etc.
@@ -1511,6 +1524,7 @@
       },
     ],
   },
+  "title": "A String", # The product title associated with this service.
   "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
       # with the same name as the service is automatically generated to service all
       # defined APIs.
@@ -1552,6 +1566,22 @@
       ],
     },
   ],
+  "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+      # only be used by whitelisted users.
+    "authorization": { # Configuration of authorization. # Authorization configuration.
+        #
+        # This section determines the authorization provider, if unspecified, then no
+        # authorization check will be done.
+        #
+        # Example:
+        #
+        #     experimental:
+        #       authorization:
+        #         provider: firebaserules.googleapis.com
+      "provider": "A String", # The name of the authorization provider, such as
+          # firebaserules.googleapis.com.
+    },
+  },
 }
 
   x__xgafv: string, V1 error format.
@@ -1618,14 +1648,14 @@
             # displayed in user interfaces. It should be a Title Cased Noun Phrase,
             # without any article or other determiners. For example,
             # `"Google Cloud SQL Database"`.
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might
-            # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
             # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
             # {type} is the value of the `type` field in this object and
             # {project_id} is a project ID that provides API-specific context for
             # accessing the type.  APIs that do not use project information can use the
             # resource name format `"monitoredResourceDescriptors/{type}"`.
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might
+            # be used in documentation.
       },
     ],
     "logs": [ # Defines the logs used by this service.
@@ -1648,73 +1678,17 @@
         ],
         "displayName": "A String", # The human-readable name for this log. This information appears on
             # the user interface and should be concise.
-        "description": "A String", # A human-readable description of this log. This information appears in
-            # the documentation and can contain details.
         "name": "A String", # The name of the log. It must be less than 512 characters long and can
             # include the following characters: upper- and lower-case alphanumeric
             # characters [A-Za-z0-9], and punctuation characters including
             # slash, underscore, hyphen, period [/_-.].
+        "description": "A String", # A human-readable description of this log. This information appears in
+            # the documentation and can contain details.
       },
     ],
-    "systemParameters": { # ### System parameter configuration # System parameter configuration.
-        #
-        # A system parameter is a special kind of parameter defined by the API
-        # system, not by an individual API. It is typically mapped to an HTTP header
-        # and/or a URL query parameter. This configuration specifies which methods
-        # change the names of the system parameters.
-      "rules": [ # Define system parameters.
-          #
-          # The parameters defined here will override the default parameters
-          # implemented by the system. If this field is missing from the service
-          # config, default system parameters will be used. Default system parameters
-          # and names is implementation-dependent.
-          #
-          # Example: define api key for all methods
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "*"
-          #           parameters:
-          #             - name: api_key
-          #               url_query_parameter: api_key
-          #
-          #
-          # Example: define 2 api key names for a specific method.
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "/ListShelves"
-          #           parameters:
-          #             - name: api_key
-          #               http_header: Api-Key1
-          #             - name: api_key
-          #               http_header: Api-Key2
-          #
-          # **NOTE:** All service configuration rules follow "last one wins" order.
-        { # Define a system parameter rule mapping system parameter definitions to
-            # methods.
-          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
-              # For a given method call, only one of them should be used. If multiple
-              # names are used the behavior is implementation-dependent.
-              # If none of the specified names are present the behavior is
-              # parameter-dependent.
-            { # Define a parameter's name and location. The parameter may be passed as either
-                # an HTTP header or a URL query parameter, and if both are passed the behavior
-                # is implementation-dependent.
-              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
-                  # sensitive.
-              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
-              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
-                  # insensitive.
-            },
-          ],
-          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-              # methods in all APIs.
-              #
-              # Refer to selector for syntax details.
-        },
-      ],
-    },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -1795,10 +1769,65 @@
         },
       ],
     },
-    "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
+    "systemParameters": { # ### System parameter configuration # System parameter configuration.
+        #
+        # A system parameter is a special kind of parameter defined by the API
+        # system, not by an individual API. It is typically mapped to an HTTP header
+        # and/or a URL query parameter. This configuration specifies which methods
+        # change the names of the system parameters.
+      "rules": [ # Define system parameters.
+          #
+          # The parameters defined here will override the default parameters
+          # implemented by the system. If this field is missing from the service
+          # config, default system parameters will be used. Default system parameters
+          # and names is implementation-dependent.
+          #
+          # Example: define api key for all methods
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "*"
+          #           parameters:
+          #             - name: api_key
+          #               url_query_parameter: api_key
+          #
+          #
+          # Example: define 2 api key names for a specific method.
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "/ListShelves"
+          #           parameters:
+          #             - name: api_key
+          #               http_header: Api-Key1
+          #             - name: api_key
+          #               http_header: Api-Key2
+          #
+          # **NOTE:** All service configuration rules follow "last one wins" order.
+        { # Define a system parameter rule mapping system parameter definitions to
+            # methods.
+          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+              # For a given method call, only one of them should be used. If multiple
+              # names are used the behavior is implementation-dependent.
+              # If none of the specified names are present the behavior is
+              # parameter-dependent.
+            { # Define a parameter's name and location. The parameter may be passed as either
+                # an HTTP header or a URL query parameter, and if both are passed the behavior
+                # is implementation-dependent.
+              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                  # sensitive.
+              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                  # insensitive.
+              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+            },
+          ],
+          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+              # methods in all APIs.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+    },
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1851,6 +1880,13 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -1877,13 +1913,6 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -1892,15 +1921,6 @@
       "providers": [ # Defines a set of authentication providers that a service supports.
         { # Configuration for an anthentication provider, including support for
             # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
-          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
-              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
-              # Optional if the key set document:
-              #  - can be retrieved from
-              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
-              #    of the issuer.
-              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
-              #
-              # Example: https://www.googleapis.com/oauth2/v1/certs
           "audiences": "A String", # The list of JWT
               # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
               # that are allowed to access. A JWT containing any of these audiences will
@@ -1914,6 +1934,15 @@
               #
               #     audiences: bookstore_android.apps.googleusercontent.com,
               #                bookstore_web.apps.googleusercontent.com
+          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+              # Optional if the key set document:
+              #  - can be retrieved from
+              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+              #    of the issuer.
+              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+              #
+              # Example: https://www.googleapis.com/oauth2/v1/certs
           "id": "A String", # The unique identifier of the auth provider. It will be referred to by
               # `AuthRequirement.provider_id`.
               #
@@ -2201,29 +2230,35 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether download is enabled.
+            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
           },
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
+          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+              # configuration for Bytestream methods.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether upload is enabled.
+            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the upload service if one is used for upload.
           },
-          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
-            "path": "A String", # The path matched by this custom verb.
-            "kind": "A String", # The name of this custom HTTP verb.
-          },
+          "selector": "A String", # Selects methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
           "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
               # response. Other response fields are ignored. This field is optional. When
               # not set, the response message will be used as HTTP body of response.
@@ -2232,9 +2267,10 @@
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
-          "selector": "A String", # Selects methods to which this rule applies.
-              #
-              # Refer to selector for syntax details.
+          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+            "path": "A String", # The path matched by this custom verb.
+            "kind": "A String", # The name of this custom HTTP verb.
+          },
           "delete": "A String", # Used for deleting a resource.
         },
       ],
@@ -2478,7 +2514,14 @@
           # existing data unusable.
         "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
             # Use sentence case without an ending period, for example "Request count".
-        "description": "A String", # A detailed description of the metric, which can be used in documentation.
+        "name": "A String", # The resource name of the metric descriptor. Depending on the
+            # implementation, the name typically includes: (1) the parent resource name
+            # that defines the scope of the metric type or of its data; and (2) the
+            # metric's URL-encoded type, which also appears in the `type` field of this
+            # descriptor. For example, following is the resource name of a custom
+            # metric within the GCP project `my-project-id`:
+            #
+            #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
         "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
             # Some combinations of `metric_kind` and `value_type` might not be supported.
         "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
@@ -2496,7 +2539,7 @@
           },
         ],
         "type": "A String", # The metric type, including its DNS name prefix. The type is not
-            # URL-encoded.  All user-defined metric types have the DNS name
+            # URL-encoded.  All user-defined custom metric types have the DNS name
             # `custom.googleapis.com`.  Metric types should use a natural hierarchical
             # grouping. For example:
             #
@@ -2566,14 +2609,7 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "name": "A String", # The resource name of the metric descriptor. Depending on the
-            # implementation, the name typically includes: (1) the parent resource name
-            # that defines the scope of the metric type or of its data; and (2) the
-            # metric's URL-encoded type, which also appears in the `type` field of this
-            # descriptor. For example, following is the resource name of a custom
-            # metric within the GCP project 123456789:
-            #
-            #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+        "description": "A String", # A detailed description of the metric, which can be used in documentation.
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -2584,32 +2620,12 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
+        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-            "name": "A String", # Enum value name.
-          },
-        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2626,7 +2642,27 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "syntax": "A String", # The source syntax.
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "number": 42, # Enum value number.
+            "name": "A String", # Enum value name.
+          },
+        ],
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -2642,12 +2678,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -2678,6 +2708,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2831,19 +2867,7 @@
               # is used.
         },
       ],
-      "overview": "A String", # Declares a single overview page. For example:
-          # <pre><code>documentation:
-          #   summary: ...
-          #   overview: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # This is a shortcut for the following declaration (using pages style):
-          # <pre><code>documentation:
-          #   summary: ...
-          #   pages:
-          #   - name: Overview
-          #     content: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # Note: you cannot specify both `overview` field and `pages` field.
+      "documentationRootUrl": "A String", # The URL to the root of documentation.
       "summary": "A String", # A short summary of what the service does. Can only be provided by
           # plain text.
       "pages": [ # The top level pages for the documentation set.
@@ -2871,7 +2895,26 @@
               # `Java`.
         },
       ],
-      "documentationRootUrl": "A String", # The URL to the root of documentation.
+      "overview": "A String", # Declares a single overview page. For example:
+          # <pre><code>documentation:
+          #   summary: ...
+          #   overview: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # This is a shortcut for the following declaration (using pages style):
+          # <pre><code>documentation:
+          #   summary: ...
+          #   pages:
+          #   - name: Overview
+          #     content: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # Note: you cannot specify both `overview` field and `pages` field.
+    },
+    "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+      "sourceFiles": [ # All files used during config generation.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
     },
     "systemTypes": [ # A list of all proto message types included in this API service.
         # It serves similar purpose as [google.api.Service.types], except that
@@ -2883,12 +2926,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -2919,6 +2956,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2970,6 +3013,7 @@
         },
       ],
     },
+    "title": "A String", # The product title associated with this service.
     "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
         # with the same name as the service is automatically generated to service all
         # defined APIs.
@@ -3011,11 +3055,27 @@
         ],
       },
     ],
+    "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+        # only be used by whitelisted users.
+      "authorization": { # Configuration of authorization. # Authorization configuration.
+          #
+          # This section determines the authorization provider, if unspecified, then no
+          # authorization check will be done.
+          #
+          # Example:
+          #
+          #     experimental:
+          #       authorization:
+          #         provider: firebaserules.googleapis.com
+        "provider": "A String", # The name of the authorization provider, such as
+            # firebaserules.googleapis.com.
+      },
+    },
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(serviceName=None, configId, x__xgafv=None)</code>
+    <code class="details" id="get">get(serviceName=None, configId, x__xgafv=None, view=None)</code>
   <pre>Gets a service configuration (version) for a managed service.
 
 Args:
@@ -3026,6 +3086,8 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  view: string, Specifies which parts of the Service Config should be returned in the
+response.
 
 Returns:
   An object of the form:
@@ -3086,14 +3148,14 @@
             # displayed in user interfaces. It should be a Title Cased Noun Phrase,
             # without any article or other determiners. For example,
             # `"Google Cloud SQL Database"`.
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might
-            # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
             # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
             # {type} is the value of the `type` field in this object and
             # {project_id} is a project ID that provides API-specific context for
             # accessing the type.  APIs that do not use project information can use the
             # resource name format `"monitoredResourceDescriptors/{type}"`.
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might
+            # be used in documentation.
       },
     ],
     "logs": [ # Defines the logs used by this service.
@@ -3116,73 +3178,17 @@
         ],
         "displayName": "A String", # The human-readable name for this log. This information appears on
             # the user interface and should be concise.
-        "description": "A String", # A human-readable description of this log. This information appears in
-            # the documentation and can contain details.
         "name": "A String", # The name of the log. It must be less than 512 characters long and can
             # include the following characters: upper- and lower-case alphanumeric
             # characters [A-Za-z0-9], and punctuation characters including
             # slash, underscore, hyphen, period [/_-.].
+        "description": "A String", # A human-readable description of this log. This information appears in
+            # the documentation and can contain details.
       },
     ],
-    "systemParameters": { # ### System parameter configuration # System parameter configuration.
-        #
-        # A system parameter is a special kind of parameter defined by the API
-        # system, not by an individual API. It is typically mapped to an HTTP header
-        # and/or a URL query parameter. This configuration specifies which methods
-        # change the names of the system parameters.
-      "rules": [ # Define system parameters.
-          #
-          # The parameters defined here will override the default parameters
-          # implemented by the system. If this field is missing from the service
-          # config, default system parameters will be used. Default system parameters
-          # and names is implementation-dependent.
-          #
-          # Example: define api key for all methods
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "*"
-          #           parameters:
-          #             - name: api_key
-          #               url_query_parameter: api_key
-          #
-          #
-          # Example: define 2 api key names for a specific method.
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "/ListShelves"
-          #           parameters:
-          #             - name: api_key
-          #               http_header: Api-Key1
-          #             - name: api_key
-          #               http_header: Api-Key2
-          #
-          # **NOTE:** All service configuration rules follow "last one wins" order.
-        { # Define a system parameter rule mapping system parameter definitions to
-            # methods.
-          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
-              # For a given method call, only one of them should be used. If multiple
-              # names are used the behavior is implementation-dependent.
-              # If none of the specified names are present the behavior is
-              # parameter-dependent.
-            { # Define a parameter's name and location. The parameter may be passed as either
-                # an HTTP header or a URL query parameter, and if both are passed the behavior
-                # is implementation-dependent.
-              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
-                  # sensitive.
-              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
-              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
-                  # insensitive.
-            },
-          ],
-          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-              # methods in all APIs.
-              #
-              # Refer to selector for syntax details.
-        },
-      ],
-    },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -3263,10 +3269,65 @@
         },
       ],
     },
-    "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
+    "systemParameters": { # ### System parameter configuration # System parameter configuration.
+        #
+        # A system parameter is a special kind of parameter defined by the API
+        # system, not by an individual API. It is typically mapped to an HTTP header
+        # and/or a URL query parameter. This configuration specifies which methods
+        # change the names of the system parameters.
+      "rules": [ # Define system parameters.
+          #
+          # The parameters defined here will override the default parameters
+          # implemented by the system. If this field is missing from the service
+          # config, default system parameters will be used. Default system parameters
+          # and names is implementation-dependent.
+          #
+          # Example: define api key for all methods
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "*"
+          #           parameters:
+          #             - name: api_key
+          #               url_query_parameter: api_key
+          #
+          #
+          # Example: define 2 api key names for a specific method.
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "/ListShelves"
+          #           parameters:
+          #             - name: api_key
+          #               http_header: Api-Key1
+          #             - name: api_key
+          #               http_header: Api-Key2
+          #
+          # **NOTE:** All service configuration rules follow "last one wins" order.
+        { # Define a system parameter rule mapping system parameter definitions to
+            # methods.
+          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+              # For a given method call, only one of them should be used. If multiple
+              # names are used the behavior is implementation-dependent.
+              # If none of the specified names are present the behavior is
+              # parameter-dependent.
+            { # Define a parameter's name and location. The parameter may be passed as either
+                # an HTTP header or a URL query parameter, and if both are passed the behavior
+                # is implementation-dependent.
+              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                  # sensitive.
+              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                  # insensitive.
+              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+            },
+          ],
+          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+              # methods in all APIs.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+    },
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -3319,6 +3380,13 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -3345,13 +3413,6 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -3360,15 +3421,6 @@
       "providers": [ # Defines a set of authentication providers that a service supports.
         { # Configuration for an anthentication provider, including support for
             # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
-          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
-              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
-              # Optional if the key set document:
-              #  - can be retrieved from
-              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
-              #    of the issuer.
-              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
-              #
-              # Example: https://www.googleapis.com/oauth2/v1/certs
           "audiences": "A String", # The list of JWT
               # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
               # that are allowed to access. A JWT containing any of these audiences will
@@ -3382,6 +3434,15 @@
               #
               #     audiences: bookstore_android.apps.googleusercontent.com,
               #                bookstore_web.apps.googleusercontent.com
+          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+              # Optional if the key set document:
+              #  - can be retrieved from
+              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+              #    of the issuer.
+              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+              #
+              # Example: https://www.googleapis.com/oauth2/v1/certs
           "id": "A String", # The unique identifier of the auth provider. It will be referred to by
               # `AuthRequirement.provider_id`.
               #
@@ -3669,29 +3730,35 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether download is enabled.
+            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
           },
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
+          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+              # configuration for Bytestream methods.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether upload is enabled.
+            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the upload service if one is used for upload.
           },
-          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
-            "path": "A String", # The path matched by this custom verb.
-            "kind": "A String", # The name of this custom HTTP verb.
-          },
+          "selector": "A String", # Selects methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
           "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
               # response. Other response fields are ignored. This field is optional. When
               # not set, the response message will be used as HTTP body of response.
@@ -3700,9 +3767,10 @@
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
-          "selector": "A String", # Selects methods to which this rule applies.
-              #
-              # Refer to selector for syntax details.
+          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+            "path": "A String", # The path matched by this custom verb.
+            "kind": "A String", # The name of this custom HTTP verb.
+          },
           "delete": "A String", # Used for deleting a resource.
         },
       ],
@@ -3946,7 +4014,14 @@
           # existing data unusable.
         "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
             # Use sentence case without an ending period, for example "Request count".
-        "description": "A String", # A detailed description of the metric, which can be used in documentation.
+        "name": "A String", # The resource name of the metric descriptor. Depending on the
+            # implementation, the name typically includes: (1) the parent resource name
+            # that defines the scope of the metric type or of its data; and (2) the
+            # metric's URL-encoded type, which also appears in the `type` field of this
+            # descriptor. For example, following is the resource name of a custom
+            # metric within the GCP project `my-project-id`:
+            #
+            #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
         "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
             # Some combinations of `metric_kind` and `value_type` might not be supported.
         "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
@@ -3964,7 +4039,7 @@
           },
         ],
         "type": "A String", # The metric type, including its DNS name prefix. The type is not
-            # URL-encoded.  All user-defined metric types have the DNS name
+            # URL-encoded.  All user-defined custom metric types have the DNS name
             # `custom.googleapis.com`.  Metric types should use a natural hierarchical
             # grouping. For example:
             #
@@ -4034,14 +4109,7 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "name": "A String", # The resource name of the metric descriptor. Depending on the
-            # implementation, the name typically includes: (1) the parent resource name
-            # that defines the scope of the metric type or of its data; and (2) the
-            # metric's URL-encoded type, which also appears in the `type` field of this
-            # descriptor. For example, following is the resource name of a custom
-            # metric within the GCP project 123456789:
-            #
-            #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+        "description": "A String", # A detailed description of the metric, which can be used in documentation.
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -4052,32 +4120,12 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
+        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-            "name": "A String", # Enum value name.
-          },
-        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -4094,7 +4142,27 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "syntax": "A String", # The source syntax.
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "number": 42, # Enum value number.
+            "name": "A String", # Enum value name.
+          },
+        ],
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -4110,12 +4178,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -4146,6 +4208,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -4299,19 +4367,7 @@
               # is used.
         },
       ],
-      "overview": "A String", # Declares a single overview page. For example:
-          # <pre><code>documentation:
-          #   summary: ...
-          #   overview: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # This is a shortcut for the following declaration (using pages style):
-          # <pre><code>documentation:
-          #   summary: ...
-          #   pages:
-          #   - name: Overview
-          #     content: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # Note: you cannot specify both `overview` field and `pages` field.
+      "documentationRootUrl": "A String", # The URL to the root of documentation.
       "summary": "A String", # A short summary of what the service does. Can only be provided by
           # plain text.
       "pages": [ # The top level pages for the documentation set.
@@ -4339,7 +4395,26 @@
               # `Java`.
         },
       ],
-      "documentationRootUrl": "A String", # The URL to the root of documentation.
+      "overview": "A String", # Declares a single overview page. For example:
+          # <pre><code>documentation:
+          #   summary: ...
+          #   overview: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # This is a shortcut for the following declaration (using pages style):
+          # <pre><code>documentation:
+          #   summary: ...
+          #   pages:
+          #   - name: Overview
+          #     content: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # Note: you cannot specify both `overview` field and `pages` field.
+    },
+    "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+      "sourceFiles": [ # All files used during config generation.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
     },
     "systemTypes": [ # A list of all proto message types included in this API service.
         # It serves similar purpose as [google.api.Service.types], except that
@@ -4351,12 +4426,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -4387,6 +4456,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -4438,6 +4513,7 @@
         },
       ],
     },
+    "title": "A String", # The product title associated with this service.
     "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
         # with the same name as the service is automatically generated to service all
         # defined APIs.
@@ -4479,6 +4555,22 @@
         ],
       },
     ],
+    "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+        # only be used by whitelisted users.
+      "authorization": { # Configuration of authorization. # Authorization configuration.
+          #
+          # This section determines the authorization provider, if unspecified, then no
+          # authorization check will be done.
+          #
+          # Example:
+          #
+          #     experimental:
+          #       authorization:
+          #         provider: firebaserules.googleapis.com
+        "provider": "A String", # The name of the authorization provider, such as
+            # firebaserules.googleapis.com.
+      },
+    },
   }</pre>
 </div>
 
@@ -4559,14 +4651,14 @@
                 # displayed in user interfaces. It should be a Title Cased Noun Phrase,
                 # without any article or other determiners. For example,
                 # `"Google Cloud SQL Database"`.
-            "description": "A String", # Optional. A detailed description of the monitored resource type that might
-                # be used in documentation.
             "name": "A String", # Optional. The resource name of the monitored resource descriptor:
                 # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
                 # {type} is the value of the `type` field in this object and
                 # {project_id} is a project ID that provides API-specific context for
                 # accessing the type.  APIs that do not use project information can use the
                 # resource name format `"monitoredResourceDescriptors/{type}"`.
+            "description": "A String", # Optional. A detailed description of the monitored resource type that might
+                # be used in documentation.
           },
         ],
         "logs": [ # Defines the logs used by this service.
@@ -4589,73 +4681,17 @@
             ],
             "displayName": "A String", # The human-readable name for this log. This information appears on
                 # the user interface and should be concise.
-            "description": "A String", # A human-readable description of this log. This information appears in
-                # the documentation and can contain details.
             "name": "A String", # The name of the log. It must be less than 512 characters long and can
                 # include the following characters: upper- and lower-case alphanumeric
                 # characters [A-Za-z0-9], and punctuation characters including
                 # slash, underscore, hyphen, period [/_-.].
+            "description": "A String", # A human-readable description of this log. This information appears in
+                # the documentation and can contain details.
           },
         ],
-        "systemParameters": { # ### System parameter configuration # System parameter configuration.
-            #
-            # A system parameter is a special kind of parameter defined by the API
-            # system, not by an individual API. It is typically mapped to an HTTP header
-            # and/or a URL query parameter. This configuration specifies which methods
-            # change the names of the system parameters.
-          "rules": [ # Define system parameters.
-              #
-              # The parameters defined here will override the default parameters
-              # implemented by the system. If this field is missing from the service
-              # config, default system parameters will be used. Default system parameters
-              # and names is implementation-dependent.
-              #
-              # Example: define api key for all methods
-              #
-              #     system_parameters
-              #       rules:
-              #         - selector: "*"
-              #           parameters:
-              #             - name: api_key
-              #               url_query_parameter: api_key
-              #
-              #
-              # Example: define 2 api key names for a specific method.
-              #
-              #     system_parameters
-              #       rules:
-              #         - selector: "/ListShelves"
-              #           parameters:
-              #             - name: api_key
-              #               http_header: Api-Key1
-              #             - name: api_key
-              #               http_header: Api-Key2
-              #
-              # **NOTE:** All service configuration rules follow "last one wins" order.
-            { # Define a system parameter rule mapping system parameter definitions to
-                # methods.
-              "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
-                  # For a given method call, only one of them should be used. If multiple
-                  # names are used the behavior is implementation-dependent.
-                  # If none of the specified names are present the behavior is
-                  # parameter-dependent.
-                { # Define a parameter's name and location. The parameter may be passed as either
-                    # an HTTP header or a URL query parameter, and if both are passed the behavior
-                    # is implementation-dependent.
-                  "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
-                      # sensitive.
-                  "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
-                  "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
-                      # insensitive.
-                },
-              ],
-              "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-                  # methods in all APIs.
-                  #
-                  # Refer to selector for syntax details.
-            },
-          ],
-        },
+        "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+            # by the client for tracking purpose. If empty, the server may choose to
+            # generate one instead.
         "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
           "rules": [ # A list of API backend rules that apply to individual API methods.
               #
@@ -4736,10 +4772,65 @@
             },
           ],
         },
-        "title": "A String", # The product title associated with this service.
-        "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-            # by the client for tracking purpose. If empty, the server may choose to
-            # generate one instead.
+        "systemParameters": { # ### System parameter configuration # System parameter configuration.
+            #
+            # A system parameter is a special kind of parameter defined by the API
+            # system, not by an individual API. It is typically mapped to an HTTP header
+            # and/or a URL query parameter. This configuration specifies which methods
+            # change the names of the system parameters.
+          "rules": [ # Define system parameters.
+              #
+              # The parameters defined here will override the default parameters
+              # implemented by the system. If this field is missing from the service
+              # config, default system parameters will be used. Default system parameters
+              # and names is implementation-dependent.
+              #
+              # Example: define api key for all methods
+              #
+              #     system_parameters
+              #       rules:
+              #         - selector: "*"
+              #           parameters:
+              #             - name: api_key
+              #               url_query_parameter: api_key
+              #
+              #
+              # Example: define 2 api key names for a specific method.
+              #
+              #     system_parameters
+              #       rules:
+              #         - selector: "/ListShelves"
+              #           parameters:
+              #             - name: api_key
+              #               http_header: Api-Key1
+              #             - name: api_key
+              #               http_header: Api-Key2
+              #
+              # **NOTE:** All service configuration rules follow "last one wins" order.
+            { # Define a system parameter rule mapping system parameter definitions to
+                # methods.
+              "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+                  # For a given method call, only one of them should be used. If multiple
+                  # names are used the behavior is implementation-dependent.
+                  # If none of the specified names are present the behavior is
+                  # parameter-dependent.
+                { # Define a parameter's name and location. The parameter may be passed as either
+                    # an HTTP header or a URL query parameter, and if both are passed the behavior
+                    # is implementation-dependent.
+                  "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                      # sensitive.
+                  "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                      # insensitive.
+                  "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+                },
+              ],
+              "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                  # methods in all APIs.
+                  #
+                  # Refer to selector for syntax details.
+            },
+          ],
+        },
         "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
             #
             # Example for an API targeted for external use:
@@ -4792,6 +4883,13 @@
                     #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                     #                        https://www.googleapis.com/auth/calendar.read
               },
+              "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                  # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                  #
+                  # For requests without credentials, if the service control environment is
+                  # specified, each incoming request **must** be associated with a service
+                  # consumer. This can be done by passing an API key that belongs to a consumer
+                  # project.
               "requirements": [ # Requirements for additional authentication providers.
                 { # User-defined authentication requirements, including support for
                     # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -4818,13 +4916,6 @@
                       #                bookstore_web.apps.googleusercontent.com
                 },
               ],
-              "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-                  # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-                  #
-                  # For requests without credentials, if the service control environment is
-                  # specified, each incoming request **must** be associated with a service
-                  # consumer. This can be done by passing an API key that belongs to a consumer
-                  # project.
               "selector": "A String", # Selects the methods to which this rule applies.
                   #
                   # Refer to selector for syntax details.
@@ -4833,15 +4924,6 @@
           "providers": [ # Defines a set of authentication providers that a service supports.
             { # Configuration for an anthentication provider, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
-              "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
-                  # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
-                  # Optional if the key set document:
-                  #  - can be retrieved from
-                  #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
-                  #    of the issuer.
-                  #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
-                  #
-                  # Example: https://www.googleapis.com/oauth2/v1/certs
               "audiences": "A String", # The list of JWT
                   # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
                   # that are allowed to access. A JWT containing any of these audiences will
@@ -4855,6 +4937,15 @@
                   #
                   #     audiences: bookstore_android.apps.googleusercontent.com,
                   #                bookstore_web.apps.googleusercontent.com
+              "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+                  # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+                  # Optional if the key set document:
+                  #  - can be retrieved from
+                  #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+                  #    of the issuer.
+                  #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+                  #
+                  # Example: https://www.googleapis.com/oauth2/v1/certs
               "id": "A String", # The unique identifier of the auth provider. It will be referred to by
                   # `AuthRequirement.provider_id`.
                   #
@@ -5142,29 +5233,35 @@
                   # body. NOTE: the referred field must not be a repeated field and must be
                   # present at the top-level of request message type.
               "get": "A String", # Used for listing and getting information about resources.
-              "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
-                  # [][google.bytestream.RestByteStream] as an API to your
-                  # configuration.
-                  # [][google.bytestream.RestByteStream] as an API to your
-                  # configuration.
+              "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                  # For media support, add instead [][google.bytestream.RestByteStream] as an
+                  # API to your configuration.
+                  # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                  # your configuration for Bytestream methods.
                 "enabled": True or False, # Whether download is enabled.
+                "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                    #
+                    # Specify name of the download service if one is used for download.
               },
               "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
                   # not contain an `additional_bindings` field themselves (that is,
                   # the nesting may only be one level deep).
                 # Object with schema name: HttpRule
               ],
-              "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
+              "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+                  # Bytestream, add instead
                   # [][google.bytestream.RestByteStream] as an API to your
-                  # configuration.
-                  # [][google.bytestream.RestByteStream] as an API to your
-                  # configuration.
+                  # configuration for Bytestream methods.
+                  # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                  # your configuration for Bytestream methods.
                 "enabled": True or False, # Whether upload is enabled.
+                "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                    #
+                    # Specify name of the upload service if one is used for upload.
               },
-              "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
-                "path": "A String", # The path matched by this custom verb.
-                "kind": "A String", # The name of this custom HTTP verb.
-              },
+              "selector": "A String", # Selects methods to which this rule applies.
+                  #
+                  # Refer to selector for syntax details.
               "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
                   # response. Other response fields are ignored. This field is optional. When
                   # not set, the response message will be used as HTTP body of response.
@@ -5173,9 +5270,10 @@
               "put": "A String", # Used for updating a resource.
               "patch": "A String", # Used for updating a resource.
               "post": "A String", # Used for creating a resource.
-              "selector": "A String", # Selects methods to which this rule applies.
-                  #
-                  # Refer to selector for syntax details.
+              "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+                "path": "A String", # The path matched by this custom verb.
+                "kind": "A String", # The name of this custom HTTP verb.
+              },
               "delete": "A String", # Used for deleting a resource.
             },
           ],
@@ -5419,7 +5517,14 @@
               # existing data unusable.
             "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
                 # Use sentence case without an ending period, for example "Request count".
-            "description": "A String", # A detailed description of the metric, which can be used in documentation.
+            "name": "A String", # The resource name of the metric descriptor. Depending on the
+                # implementation, the name typically includes: (1) the parent resource name
+                # that defines the scope of the metric type or of its data; and (2) the
+                # metric's URL-encoded type, which also appears in the `type` field of this
+                # descriptor. For example, following is the resource name of a custom
+                # metric within the GCP project `my-project-id`:
+                #
+                #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
             "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
                 # Some combinations of `metric_kind` and `value_type` might not be supported.
             "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
@@ -5437,7 +5542,7 @@
               },
             ],
             "type": "A String", # The metric type, including its DNS name prefix. The type is not
-                # URL-encoded.  All user-defined metric types have the DNS name
+                # URL-encoded.  All user-defined custom metric types have the DNS name
                 # `custom.googleapis.com`.  Metric types should use a natural hierarchical
                 # grouping. For example:
                 #
@@ -5507,14 +5612,7 @@
                 #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
                 # * `NAME` is a sequence of non-blank printable ASCII characters not
                 #    containing '{' or '}'.
-            "name": "A String", # The resource name of the metric descriptor. Depending on the
-                # implementation, the name typically includes: (1) the parent resource name
-                # that defines the scope of the metric type or of its data; and (2) the
-                # metric's URL-encoded type, which also appears in the `type` field of this
-                # descriptor. For example, following is the resource name of a custom
-                # metric within the GCP project 123456789:
-                #
-                #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+            "description": "A String", # A detailed description of the metric, which can be used in documentation.
           },
         ],
         "enums": [ # A list of all enum types included in this API service.  Enums
@@ -5525,32 +5623,12 @@
             #     enums:
             #     - name: google.someapi.v1.SomeEnum
           { # Enum type definition.
+            "syntax": "A String", # The source syntax.
             "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
                 # protobuf element, like the file in which it is defined.
               "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
                   # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
             },
-            "enumvalue": [ # Enum value definitions.
-              { # Enum value definition.
-                "number": 42, # Enum value number.
-                "options": [ # Protocol buffer options.
-                  { # A protocol buffer option, which can be attached to a message, field,
-                      # enumeration, etc.
-                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                        # For custom options, it should be the fully-qualified name. For example,
-                        # `"google.api.http"`.
-                    "value": { # The option's value packed in an Any message. If the value is a primitive,
-                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                        # should be used. If the value is an enum, it should be stored as an int32
-                        # value using the google.protobuf.Int32Value type.
-                      "a_key": "", # Properties of the object. Contains field @type with type URL.
-                    },
-                  },
-                ],
-                "name": "A String", # Enum value name.
-              },
-            ],
             "options": [ # Protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
@@ -5567,7 +5645,27 @@
               },
             ],
             "name": "A String", # Enum type name.
-            "syntax": "A String", # The source syntax.
+            "enumvalue": [ # Enum value definitions.
+              { # Enum value definition.
+                "options": [ # Protocol buffer options.
+                  { # A protocol buffer option, which can be attached to a message, field,
+                      # enumeration, etc.
+                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                        # For custom options, it should be the fully-qualified name. For example,
+                        # `"google.api.http"`.
+                    "value": { # The option's value packed in an Any message. If the value is a primitive,
+                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                        # should be used. If the value is an enum, it should be stored as an int32
+                        # value using the google.protobuf.Int32Value type.
+                      "a_key": "", # Properties of the object. Contains field @type with type URL.
+                    },
+                  },
+                ],
+                "number": 42, # Enum value number.
+                "name": "A String", # Enum value name.
+              },
+            ],
           },
         ],
         "types": [ # A list of all proto message types included in this API service.
@@ -5583,12 +5681,6 @@
               "A String",
             ],
             "name": "A String", # The fully qualified message name.
-            "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-                # protobuf element, like the file in which it is defined.
-              "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-                  # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-            },
-            "syntax": "A String", # The source syntax.
             "fields": [ # The list of fields.
               { # A single field of a message type.
                 "kind": "A String", # The field type.
@@ -5619,6 +5711,12 @@
                 "packed": True or False, # Whether to use alternative packed wire representation.
               },
             ],
+            "syntax": "A String", # The source syntax.
+            "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                # protobuf element, like the file in which it is defined.
+              "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                  # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+            },
             "options": [ # The protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
@@ -5772,19 +5870,7 @@
                   # is used.
             },
           ],
-          "overview": "A String", # Declares a single overview page. For example:
-              # <pre><code>documentation:
-              #   summary: ...
-              #   overview: &#40;== include overview.md ==&#41;
-              # </code></pre>
-              # This is a shortcut for the following declaration (using pages style):
-              # <pre><code>documentation:
-              #   summary: ...
-              #   pages:
-              #   - name: Overview
-              #     content: &#40;== include overview.md ==&#41;
-              # </code></pre>
-              # Note: you cannot specify both `overview` field and `pages` field.
+          "documentationRootUrl": "A String", # The URL to the root of documentation.
           "summary": "A String", # A short summary of what the service does. Can only be provided by
               # plain text.
           "pages": [ # The top level pages for the documentation set.
@@ -5812,7 +5898,26 @@
                   # `Java`.
             },
           ],
-          "documentationRootUrl": "A String", # The URL to the root of documentation.
+          "overview": "A String", # Declares a single overview page. For example:
+              # <pre><code>documentation:
+              #   summary: ...
+              #   overview: &#40;== include overview.md ==&#41;
+              # </code></pre>
+              # This is a shortcut for the following declaration (using pages style):
+              # <pre><code>documentation:
+              #   summary: ...
+              #   pages:
+              #   - name: Overview
+              #     content: &#40;== include overview.md ==&#41;
+              # </code></pre>
+              # Note: you cannot specify both `overview` field and `pages` field.
+        },
+        "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+          "sourceFiles": [ # All files used during config generation.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
         },
         "systemTypes": [ # A list of all proto message types included in this API service.
             # It serves similar purpose as [google.api.Service.types], except that
@@ -5824,12 +5929,6 @@
               "A String",
             ],
             "name": "A String", # The fully qualified message name.
-            "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-                # protobuf element, like the file in which it is defined.
-              "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-                  # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-            },
-            "syntax": "A String", # The source syntax.
             "fields": [ # The list of fields.
               { # A single field of a message type.
                 "kind": "A String", # The field type.
@@ -5860,6 +5959,12 @@
                 "packed": True or False, # Whether to use alternative packed wire representation.
               },
             ],
+            "syntax": "A String", # The source syntax.
+            "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                # protobuf element, like the file in which it is defined.
+              "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                  # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+            },
             "options": [ # The protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
@@ -5911,6 +6016,7 @@
             },
           ],
         },
+        "title": "A String", # The product title associated with this service.
         "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
             # with the same name as the service is automatically generated to service all
             # defined APIs.
@@ -5952,6 +6058,22 @@
             ],
           },
         ],
+        "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+            # only be used by whitelisted users.
+          "authorization": { # Configuration of authorization. # Authorization configuration.
+              #
+              # This section determines the authorization provider, if unspecified, then no
+              # authorization check will be done.
+              #
+              # Example:
+              #
+              #     experimental:
+              #       authorization:
+              #         provider: firebaserules.googleapis.com
+            "provider": "A String", # The name of the authorization provider, such as
+                # firebaserules.googleapis.com.
+          },
+        },
       },
     ],
   }</pre>
@@ -6025,22 +6147,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -6104,6 +6210,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index efcad15..aaa8355 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -92,10 +92,10 @@
 <p class="firstline">Deletes a managed service. This method will change the service to the</p>
 <p class="toc_element">
   <code><a href="#disable">disable(serviceName=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Disable a managed service for a project.</p>
+<p class="firstline">Disables a service for a project, so it can no longer be</p>
 <p class="toc_element">
   <code><a href="#enable">enable(serviceName=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Enable a managed service for a project with default setting.</p>
+<p class="firstline">Enables a service for a project, so it can be used</p>
 <p class="toc_element">
   <code><a href="#generateConfigReport">generateConfigReport(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Generates and returns a report (errors, warnings and changes from</p>
@@ -103,13 +103,13 @@
   <code><a href="#get">get(serviceName=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a managed service. Authentication is required unless the service is</p>
 <p class="toc_element">
-  <code><a href="#getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None, view=None)</a></code></p>
 <p class="firstline">Gets a service configuration (version) for a managed service.</p>
 <p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(producerProjectId=None, pageSize=None, pageToken=None, consumerId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists managed services.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -158,22 +158,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -237,6 +221,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -268,22 +268,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -347,12 +331,30 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="disable">disable(serviceName=None, body, x__xgafv=None)</code>
-  <pre>Disable a managed service for a project.
+  <pre>Disables a service for a project, so it can no longer be
+be used for the project. It prevents accidental usage that may cause
+unexpected billing charges or security leaks.
 
 Operation<response: DisableServiceResponse>
 
@@ -390,22 +392,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -469,18 +455,34 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="enable">enable(serviceName=None, body, x__xgafv=None)</code>
-  <pre>Enable a managed service for a project with default setting.
+  <pre>Enables a service for a project, so it can be used
+for the project. See
+[Cloud Auth Guide](https://cloud.google.com/docs/authentication) for
+more information.
 
 Operation<response: EnableServiceResponse>
 
-google.rpc.Status errors may contain a
-google.rpc.PreconditionFailure error detail.
-
 Args:
   serviceName: string, Name of the service to enable. Specifying an unknown service name will
 cause the request to fail. (required)
@@ -515,22 +517,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -594,6 +580,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -690,9 +692,9 @@
         # report
         # belongs to.
       { # Represents a diagnostic message (error or warning)
-        "kind": "A String", # The kind of diagnostic information provided.
         "message": "A String", # Message describing the error or warning.
         "location": "A String", # File name and line number of the error or warning.
+        "kind": "A String", # The kind of diagnostic information provided.
       },
     ],
   }</pre>
@@ -723,7 +725,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None)</code>
+    <code class="details" id="getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None, view=None)</code>
   <pre>Gets a service configuration (version) for a managed service.
 
 Args:
@@ -734,6 +736,8 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  view: string, Specifies which parts of the Service Config should be returned in the
+response.
 
 Returns:
   An object of the form:
@@ -794,14 +798,14 @@
             # displayed in user interfaces. It should be a Title Cased Noun Phrase,
             # without any article or other determiners. For example,
             # `"Google Cloud SQL Database"`.
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might
-            # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
             # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
             # {type} is the value of the `type` field in this object and
             # {project_id} is a project ID that provides API-specific context for
             # accessing the type.  APIs that do not use project information can use the
             # resource name format `"monitoredResourceDescriptors/{type}"`.
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might
+            # be used in documentation.
       },
     ],
     "logs": [ # Defines the logs used by this service.
@@ -824,73 +828,17 @@
         ],
         "displayName": "A String", # The human-readable name for this log. This information appears on
             # the user interface and should be concise.
-        "description": "A String", # A human-readable description of this log. This information appears in
-            # the documentation and can contain details.
         "name": "A String", # The name of the log. It must be less than 512 characters long and can
             # include the following characters: upper- and lower-case alphanumeric
             # characters [A-Za-z0-9], and punctuation characters including
             # slash, underscore, hyphen, period [/_-.].
+        "description": "A String", # A human-readable description of this log. This information appears in
+            # the documentation and can contain details.
       },
     ],
-    "systemParameters": { # ### System parameter configuration # System parameter configuration.
-        #
-        # A system parameter is a special kind of parameter defined by the API
-        # system, not by an individual API. It is typically mapped to an HTTP header
-        # and/or a URL query parameter. This configuration specifies which methods
-        # change the names of the system parameters.
-      "rules": [ # Define system parameters.
-          #
-          # The parameters defined here will override the default parameters
-          # implemented by the system. If this field is missing from the service
-          # config, default system parameters will be used. Default system parameters
-          # and names is implementation-dependent.
-          #
-          # Example: define api key for all methods
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "*"
-          #           parameters:
-          #             - name: api_key
-          #               url_query_parameter: api_key
-          #
-          #
-          # Example: define 2 api key names for a specific method.
-          #
-          #     system_parameters
-          #       rules:
-          #         - selector: "/ListShelves"
-          #           parameters:
-          #             - name: api_key
-          #               http_header: Api-Key1
-          #             - name: api_key
-          #               http_header: Api-Key2
-          #
-          # **NOTE:** All service configuration rules follow "last one wins" order.
-        { # Define a system parameter rule mapping system parameter definitions to
-            # methods.
-          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
-              # For a given method call, only one of them should be used. If multiple
-              # names are used the behavior is implementation-dependent.
-              # If none of the specified names are present the behavior is
-              # parameter-dependent.
-            { # Define a parameter's name and location. The parameter may be passed as either
-                # an HTTP header or a URL query parameter, and if both are passed the behavior
-                # is implementation-dependent.
-              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
-                  # sensitive.
-              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
-              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
-                  # insensitive.
-            },
-          ],
-          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
-              # methods in all APIs.
-              #
-              # Refer to selector for syntax details.
-        },
-      ],
-    },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -971,10 +919,65 @@
         },
       ],
     },
-    "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
+    "systemParameters": { # ### System parameter configuration # System parameter configuration.
+        #
+        # A system parameter is a special kind of parameter defined by the API
+        # system, not by an individual API. It is typically mapped to an HTTP header
+        # and/or a URL query parameter. This configuration specifies which methods
+        # change the names of the system parameters.
+      "rules": [ # Define system parameters.
+          #
+          # The parameters defined here will override the default parameters
+          # implemented by the system. If this field is missing from the service
+          # config, default system parameters will be used. Default system parameters
+          # and names is implementation-dependent.
+          #
+          # Example: define api key for all methods
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "*"
+          #           parameters:
+          #             - name: api_key
+          #               url_query_parameter: api_key
+          #
+          #
+          # Example: define 2 api key names for a specific method.
+          #
+          #     system_parameters
+          #       rules:
+          #         - selector: "/ListShelves"
+          #           parameters:
+          #             - name: api_key
+          #               http_header: Api-Key1
+          #             - name: api_key
+          #               http_header: Api-Key2
+          #
+          # **NOTE:** All service configuration rules follow "last one wins" order.
+        { # Define a system parameter rule mapping system parameter definitions to
+            # methods.
+          "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+              # For a given method call, only one of them should be used. If multiple
+              # names are used the behavior is implementation-dependent.
+              # If none of the specified names are present the behavior is
+              # parameter-dependent.
+            { # Define a parameter's name and location. The parameter may be passed as either
+                # an HTTP header or a URL query parameter, and if both are passed the behavior
+                # is implementation-dependent.
+              "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                  # sensitive.
+              "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                  # insensitive.
+              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+            },
+          ],
+          "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+              # methods in all APIs.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+    },
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1027,6 +1030,13 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -1053,13 +1063,6 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -1068,15 +1071,6 @@
       "providers": [ # Defines a set of authentication providers that a service supports.
         { # Configuration for an anthentication provider, including support for
             # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
-          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
-              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
-              # Optional if the key set document:
-              #  - can be retrieved from
-              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
-              #    of the issuer.
-              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
-              #
-              # Example: https://www.googleapis.com/oauth2/v1/certs
           "audiences": "A String", # The list of JWT
               # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
               # that are allowed to access. A JWT containing any of these audiences will
@@ -1090,6 +1084,15 @@
               #
               #     audiences: bookstore_android.apps.googleusercontent.com,
               #                bookstore_web.apps.googleusercontent.com
+          "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+              # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+              # Optional if the key set document:
+              #  - can be retrieved from
+              #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+              #    of the issuer.
+              #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+              #
+              # Example: https://www.googleapis.com/oauth2/v1/certs
           "id": "A String", # The unique identifier of the auth provider. It will be referred to by
               # `AuthRequirement.provider_id`.
               #
@@ -1377,29 +1380,35 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether download is enabled.
+            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
           },
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
+          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
-              # [][google.bytestream.RestByteStream] as an API to your
-              # configuration.
+              # configuration for Bytestream methods.
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
             "enabled": True or False, # Whether upload is enabled.
+            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the upload service if one is used for upload.
           },
-          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
-            "path": "A String", # The path matched by this custom verb.
-            "kind": "A String", # The name of this custom HTTP verb.
-          },
+          "selector": "A String", # Selects methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
           "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
               # response. Other response fields are ignored. This field is optional. When
               # not set, the response message will be used as HTTP body of response.
@@ -1408,9 +1417,10 @@
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
-          "selector": "A String", # Selects methods to which this rule applies.
-              #
-              # Refer to selector for syntax details.
+          "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+            "path": "A String", # The path matched by this custom verb.
+            "kind": "A String", # The name of this custom HTTP verb.
+          },
           "delete": "A String", # Used for deleting a resource.
         },
       ],
@@ -1654,7 +1664,14 @@
           # existing data unusable.
         "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
             # Use sentence case without an ending period, for example "Request count".
-        "description": "A String", # A detailed description of the metric, which can be used in documentation.
+        "name": "A String", # The resource name of the metric descriptor. Depending on the
+            # implementation, the name typically includes: (1) the parent resource name
+            # that defines the scope of the metric type or of its data; and (2) the
+            # metric's URL-encoded type, which also appears in the `type` field of this
+            # descriptor. For example, following is the resource name of a custom
+            # metric within the GCP project `my-project-id`:
+            #
+            #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
         "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
             # Some combinations of `metric_kind` and `value_type` might not be supported.
         "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
@@ -1672,7 +1689,7 @@
           },
         ],
         "type": "A String", # The metric type, including its DNS name prefix. The type is not
-            # URL-encoded.  All user-defined metric types have the DNS name
+            # URL-encoded.  All user-defined custom metric types have the DNS name
             # `custom.googleapis.com`.  Metric types should use a natural hierarchical
             # grouping. For example:
             #
@@ -1742,14 +1759,7 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "name": "A String", # The resource name of the metric descriptor. Depending on the
-            # implementation, the name typically includes: (1) the parent resource name
-            # that defines the scope of the metric type or of its data; and (2) the
-            # metric's URL-encoded type, which also appears in the `type` field of this
-            # descriptor. For example, following is the resource name of a custom
-            # metric within the GCP project 123456789:
-            #
-            #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+        "description": "A String", # A detailed description of the metric, which can be used in documentation.
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -1760,32 +1770,12 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
+        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-            "name": "A String", # Enum value name.
-          },
-        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -1802,7 +1792,27 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "syntax": "A String", # The source syntax.
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "number": 42, # Enum value number.
+            "name": "A String", # Enum value name.
+          },
+        ],
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -1818,12 +1828,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -1854,6 +1858,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2007,19 +2017,7 @@
               # is used.
         },
       ],
-      "overview": "A String", # Declares a single overview page. For example:
-          # <pre><code>documentation:
-          #   summary: ...
-          #   overview: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # This is a shortcut for the following declaration (using pages style):
-          # <pre><code>documentation:
-          #   summary: ...
-          #   pages:
-          #   - name: Overview
-          #     content: &#40;== include overview.md ==&#41;
-          # </code></pre>
-          # Note: you cannot specify both `overview` field and `pages` field.
+      "documentationRootUrl": "A String", # The URL to the root of documentation.
       "summary": "A String", # A short summary of what the service does. Can only be provided by
           # plain text.
       "pages": [ # The top level pages for the documentation set.
@@ -2047,7 +2045,26 @@
               # `Java`.
         },
       ],
-      "documentationRootUrl": "A String", # The URL to the root of documentation.
+      "overview": "A String", # Declares a single overview page. For example:
+          # <pre><code>documentation:
+          #   summary: ...
+          #   overview: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # This is a shortcut for the following declaration (using pages style):
+          # <pre><code>documentation:
+          #   summary: ...
+          #   pages:
+          #   - name: Overview
+          #     content: &#40;== include overview.md ==&#41;
+          # </code></pre>
+          # Note: you cannot specify both `overview` field and `pages` field.
+    },
+    "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+      "sourceFiles": [ # All files used during config generation.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
     },
     "systemTypes": [ # A list of all proto message types included in this API service.
         # It serves similar purpose as [google.api.Service.types], except that
@@ -2059,12 +2076,6 @@
           "A String",
         ],
         "name": "A String", # The fully qualified message name.
-        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
-            # protobuf element, like the file in which it is defined.
-          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
-              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
-        },
-        "syntax": "A String", # The source syntax.
         "fields": [ # The list of fields.
           { # A single field of a message type.
             "kind": "A String", # The field type.
@@ -2095,6 +2106,12 @@
             "packed": True or False, # Whether to use alternative packed wire representation.
           },
         ],
+        "syntax": "A String", # The source syntax.
+        "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+            # protobuf element, like the file in which it is defined.
+          "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+              # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+        },
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2146,6 +2163,7 @@
         },
       ],
     },
+    "title": "A String", # The product title associated with this service.
     "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
         # with the same name as the service is automatically generated to service all
         # defined APIs.
@@ -2187,6 +2205,22 @@
         ],
       },
     ],
+    "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+        # only be used by whitelisted users.
+      "authorization": { # Configuration of authorization. # Authorization configuration.
+          #
+          # This section determines the authorization provider, if unspecified, then no
+          # authorization check will be done.
+          #
+          # Example:
+          #
+          #     experimental:
+          #       authorization:
+          #         provider: firebaserules.googleapis.com
+        "provider": "A String", # The name of the authorization provider, such as
+            # firebaserules.googleapis.com.
+      },
+    },
   }</pre>
 </div>
 
@@ -2198,8 +2232,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -2245,23 +2278,81 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access".
-        # "data access": generally refers to data reads/writes and admin reads.
-        # "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always
-        # enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service.
-          # Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
             # Next ID: 4
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
                 # Follows the same format of Binding.members.
               "A String",
             ],
@@ -2399,12 +2490,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(producerProjectId=None, pageSize=None, pageToken=None, consumerId=None, x__xgafv=None)</code>
   <pre>Lists managed services.
 
-If called without any authentication, it returns only the public services.
-If called with authentication, it returns all services that the caller has
-"servicemanagement.services.get" permission for.
+Returns all public services. For authenticated users, also returns all
+services the calling user has "servicemanagement.services.get" permission
+for.
 
 **BETA:** If the caller specifies the `consumer_id`, it returns only the
 services enabled on the consumer. The `consumer_id` must have the format
@@ -2413,13 +2504,13 @@
 Args:
   producerProjectId: string, Include services produced by the specified project.
   pageSize: integer, Requested size of the next page of data.
+  pageToken: string, Token identifying which result to start with; returned by a previous list
+call.
   consumerId: string, Include services consumed by the specified consumer.
 
 The Google Service Management implementation accepts the following
 forms:
 - project:<project_id>
-  pageToken: string, Token identifying which result to start with; returned by a previous list
-call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -2429,7 +2520,6 @@
   An object of the form:
 
     { # Response message for `ListServices` method.
-    "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated query.
     "services": [ # The returned services will only have the name field set.
       { # The full representation of a Service that is managed by
           # Google Service Management.
@@ -2438,6 +2528,7 @@
         "producerProjectId": "A String", # ID of the project that produces and owns this service.
       },
     ],
+    "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated query.
   }</pre>
 </div>
 
@@ -2462,8 +2553,7 @@
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -2502,23 +2592,81 @@
         #
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
-      "auditConfigs": [ # Specifies audit logging configs for "data access".
-          # "data access": generally refers to data reads/writes and admin reads.
-          # "admin activity": generally refers to admin writes.
-          #
-          # Note: `AuditConfig` doesn't apply to "admin activity", which always
-          # enables audit logging.
-        { # Provides the configuration for non-admin_activity logging for a service.
-            # Controls exemptions and specific log sub-types.
-          "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-              # logging for the `service` specified above.
-              # Follows the same format of Binding.members.
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # The configuration determines which permission types are logged, and what
+            # identities, if any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
             "A String",
           ],
-          "auditLogConfigs": [ # The configuration for each type of logging
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
               # Next ID: 4
-            { # Provides the configuration for a sub-type of logging.
-              "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
                   # Follows the same format of Binding.members.
                 "A String",
               ],
@@ -2654,8 +2802,8 @@
       "iamOwned": True or False,
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, a default
-        # mask is used:
+        # the fields in the mask will be modified. If no mask is provided, the
+        # following default mask is used:
         # paths: "bindings, etag"
         # This field is only used by Cloud IAM.
   }
@@ -2699,23 +2847,81 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies audit logging configs for "data access".
-        # "data access": generally refers to data reads/writes and admin reads.
-        # "admin activity": generally refers to admin writes.
-        #
-        # Note: `AuditConfig` doesn't apply to "admin activity", which always
-        # enables audit logging.
-      { # Provides the configuration for non-admin_activity logging for a service.
-          # Controls exemptions and specific log sub-types.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
-        "auditLogConfigs": [ # The configuration for each type of logging
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
             # Next ID: 4
-          { # Provides the configuration for a sub-type of logging.
-            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
                 # Follows the same format of Binding.members.
               "A String",
             ],
@@ -2858,10 +3064,13 @@
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
 
+Note: This operation is designed to be used for building permission-aware
+UIs and command-line tools, not for authorization checking. This operation
+may "fail open" without warning.
+
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
-`resource` is usually specified as a path. For example, a Project
-resource is specified as `projects/{project}`. (required)
+See the operation documentation for the appropriate value for this field. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -2918,22 +3127,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -2997,6 +3190,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/servicemanagement_v1.services.rollouts.html b/docs/dyn/servicemanagement_v1.services.rollouts.html
index 28e89a5..d183d56 100644
--- a/docs/dyn/servicemanagement_v1.services.rollouts.html
+++ b/docs/dyn/servicemanagement_v1.services.rollouts.html
@@ -112,14 +112,6 @@
     "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
         # the system will automatically rollback to the current Rollout
         # version. Readonly.
-    "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
-        #  and '-' are allowed.
-        # 
-        # If not specified by client, the server will generate one. The generated id
-        # will have the form of <date><revision number>, where "date" is the create
-        # date in ISO 8601 format.  "revision number" is a monotonically increasing
-        # positive number that is reset every day for each service.
-        # An example of the generated rollout_id is '2016-02-16r1'
     "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
         # traffic percentage.
         # different
@@ -156,12 +148,20 @@
         "a_key": 3.14,
       },
     },
+    "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
+        #  and '-' are allowed.
+        # 
+        # If not specified by client, the server will generate one. The generated id
+        # will have the form of <date><revision number>, where "date" is the create
+        # date in ISO 8601 format.  "revision number" is a monotonically increasing
+        # positive number that is reset every day for each service.
+        # An example of the generated rollout_id is '2016-02-16r1'
+    "serviceName": "A String", # The name of the service associated with this Rollout.
     "createdBy": "A String", # The user who created the Rollout. Readonly.
     "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
         # Readonly.
         # used by the system generated rollout to delete a service.
     },
-    "serviceName": "A String", # The name of the service associated with this Rollout.
     "createTime": "A String", # Creation time of the rollout. Readonly.
   }
 
@@ -181,22 +181,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -260,6 +244,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -285,14 +285,6 @@
       "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
           # the system will automatically rollback to the current Rollout
           # version. Readonly.
-      "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
-          #  and '-' are allowed.
-          #
-          # If not specified by client, the server will generate one. The generated id
-          # will have the form of <date><revision number>, where "date" is the create
-          # date in ISO 8601 format.  "revision number" is a monotonically increasing
-          # positive number that is reset every day for each service.
-          # An example of the generated rollout_id is '2016-02-16r1'
       "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
           # traffic percentage.
           # different
@@ -329,12 +321,20 @@
           "a_key": 3.14,
         },
       },
+      "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
+          #  and '-' are allowed.
+          #
+          # If not specified by client, the server will generate one. The generated id
+          # will have the form of <date><revision number>, where "date" is the create
+          # date in ISO 8601 format.  "revision number" is a monotonically increasing
+          # positive number that is reset every day for each service.
+          # An example of the generated rollout_id is '2016-02-16r1'
+      "serviceName": "A String", # The name of the service associated with this Rollout.
       "createdBy": "A String", # The user who created the Rollout. Readonly.
       "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
           # Readonly.
           # used by the system generated rollout to delete a service.
       },
-      "serviceName": "A String", # The name of the service associated with this Rollout.
       "createTime": "A String", # Creation time of the rollout. Readonly.
     }</pre>
 </div>
@@ -366,14 +366,6 @@
           "status": "A String", # The status of this rollout. Readonly. In case of a failed rollout,
               # the system will automatically rollback to the current Rollout
               # version. Readonly.
-          "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
-              #  and '-' are allowed.
-              #
-              # If not specified by client, the server will generate one. The generated id
-              # will have the form of <date><revision number>, where "date" is the create
-              # date in ISO 8601 format.  "revision number" is a monotonically increasing
-              # positive number that is reset every day for each service.
-              # An example of the generated rollout_id is '2016-02-16r1'
           "trafficPercentStrategy": { # Strategy that specifies how Google Service Control should select # Google Service Control selects service configurations based on
               # traffic percentage.
               # different
@@ -410,12 +402,20 @@
               "a_key": 3.14,
             },
           },
+          "rolloutId": "A String", # Optional unique identifier of this Rollout. Only lower case letters, digits
+              #  and '-' are allowed.
+              #
+              # If not specified by client, the server will generate one. The generated id
+              # will have the form of <date><revision number>, where "date" is the create
+              # date in ISO 8601 format.  "revision number" is a monotonically increasing
+              # positive number that is reset every day for each service.
+              # An example of the generated rollout_id is '2016-02-16r1'
+          "serviceName": "A String", # The name of the service associated with this Rollout.
           "createdBy": "A String", # The user who created the Rollout. Readonly.
           "deleteServiceStrategy": { # Strategy used to delete a service. This strategy is a placeholder only # The strategy associated with a rollout to delete a `ManagedService`.
               # Readonly.
               # used by the system generated rollout to delete a service.
           },
-          "serviceName": "A String", # The name of the service associated with this Rollout.
           "createTime": "A String", # Creation time of the rollout. Readonly.
         },
     ],
diff --git a/docs/dyn/serviceuser_v1.html b/docs/dyn/serviceuser_v1.html
new file mode 100644
index 0000000..684a000
--- /dev/null
+++ b/docs/dyn/serviceuser_v1.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="serviceuser_v1.html">Google Service User API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="serviceuser_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="serviceuser_v1.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/serviceuser_v1.projects.html b/docs/dyn/serviceuser_v1.projects.html
new file mode 100644
index 0000000..6bacf98
--- /dev/null
+++ b/docs/dyn/serviceuser_v1.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="serviceuser_v1.html">Google Service User API</a> . <a href="serviceuser_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="serviceuser_v1.projects.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/serviceuser_v1.projects.services.html b/docs/dyn/serviceuser_v1.projects.services.html
new file mode 100644
index 0000000..e74f34b
--- /dev/null
+++ b/docs/dyn/serviceuser_v1.projects.services.html
@@ -0,0 +1,1856 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="serviceuser_v1.html">Google Service User API</a> . <a href="serviceuser_v1.projects.html">projects</a> . <a href="serviceuser_v1.projects.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#disable">disable(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Disable a service so it can no longer be used with a</p>
+<p class="toc_element">
+  <code><a href="#enable">enable(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enable a service so it can be used with a project.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List enabled services for the specified consumer.</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="disable">disable(name=None, body, x__xgafv=None)</code>
+  <pre>Disable a service so it can no longer be used with a
+project. This prevents unintended usage that may cause unexpected billing
+charges or security leaks.
+
+Operation<response: google.protobuf.Empty>
+
+Args:
+  name: string, Name of the consumer and the service to disable for that consumer.
+
+The Service User implementation accepts the following forms for consumer:
+- "project:<project_id>"
+
+A valid path would be:
+- /v1/projects/my-project/services/servicemanagement.googleapis.com:disable (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for DisableService method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enable">enable(name=None, body, x__xgafv=None)</code>
+  <pre>Enable a service so it can be used with a project.
+See [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for
+more information.
+
+Operation<response: google.protobuf.Empty>
+
+Args:
+  name: string, Name of the consumer and the service to enable for that consumer.
+
+A valid path would be:
+- /v1/projects/my-project/services/servicemanagement.googleapis.com:enable (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for EnableService method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>List enabled services for the specified consumer.
+
+Args:
+  parent: string, List enabled services for the specified parent.
+
+An example valid parent would be:
+- projects/my-project (required)
+  pageSize: integer, Requested size of the next page of data.
+  pageToken: string, Token identifying which result to start with; returned by a previous list
+call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `ListEnabledServices` method.
+    "services": [ # Services enabled for the specified parent.
+      { # The published version of a Service that is managed by
+          # Google Service Management.
+        "name": "A String", # The resource name of the service.
+            #
+            # A valid name would be:
+            # - services/serviceuser.googleapis.com
+        "service": { # `Service` is the root object of Google service configuration schema. It # The service's published configuration.
+            # describes basic information about a service, such as the name and the
+            # title, and delegates other aspects to sub-sections. Each sub-section is
+            # either a proto message or a repeated proto message that configures a
+            # specific aspect, such as auth. See each proto message definition for details.
+            #
+            # Example:
+            #
+            #     type: google.api.Service
+            #     config_version: 3
+            #     name: calendar.googleapis.com
+            #     title: Google Calendar API
+            #     apis:
+            #     - name: google.calendar.v3.Calendar
+            #     authentication:
+            #       providers:
+            #       - id: google_calendar_auth
+            #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+            #         issuer: https://securetoken.google.com
+            #       rules:
+            #       - selector: "*"
+            #         requirements:
+            #           provider_id: google_calendar_auth
+          "control": { # Selects and configures the service controller used by the service.  The # Configuration for the service control plane.
+              # service controller handles features like abuse, quota, billing, logging,
+              # monitoring, etc.
+            "environment": "A String", # The service control environment to use. If empty, no control plane
+                # feature (like quota and billing) will be enabled.
+          },
+          "monitoredResources": [ # Defines the monitored resources used by this service. This is required
+              # by the Service.monitoring and Service.logging configurations.
+            { # An object that describes the schema of a MonitoredResource object using a
+                # type name and a set of labels.  For example, the monitored resource
+                # descriptor for Google Compute Engine VM instances has a type of
+                # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
+                # `"zone"` to identify particular VM instances.
+                #
+                # Different APIs can support different monitored resource types. APIs generally
+                # provide a `list` method that returns the monitored resource descriptors used
+                # by the API.
+              "type": "A String", # Required. The monitored resource type. For example, the type
+                  # `"cloudsql_database"` represents databases in Google Cloud SQL.
+                  # The maximum length of this value is 256 characters.
+              "labels": [ # Required. A set of labels used to describe instances of this monitored
+                  # resource type. For example, an individual Google Cloud SQL database is
+                  # identified by values for the labels `"database_id"` and `"zone"`.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
+                  # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+                  # without any article or other determiners. For example,
+                  # `"Google Cloud SQL Database"`.
+              "name": "A String", # Optional. The resource name of the monitored resource descriptor:
+                  # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
+                  # {type} is the value of the `type` field in this object and
+                  # {project_id} is a project ID that provides API-specific context for
+                  # accessing the type.  APIs that do not use project information can use the
+                  # resource name format `"monitoredResourceDescriptors/{type}"`.
+              "description": "A String", # Optional. A detailed description of the monitored resource type that might
+                  # be used in documentation.
+            },
+          ],
+          "logs": [ # Defines the logs used by this service.
+            { # A description of a log type. Example in YAML format:
+                #
+                #     - name: library.googleapis.com/activity_history
+                #       description: The history of borrowing and returning library items.
+                #       display_name: Activity
+                #       labels:
+                #       - key: /customer_id
+                #         description: Identifier of a library customer
+              "labels": [ # The set of labels that are available to describe a specific log entry.
+                  # Runtime requests that contain labels not specified here are
+                  # considered invalid.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "displayName": "A String", # The human-readable name for this log. This information appears on
+                  # the user interface and should be concise.
+              "name": "A String", # The name of the log. It must be less than 512 characters long and can
+                  # include the following characters: upper- and lower-case alphanumeric
+                  # characters [A-Za-z0-9], and punctuation characters including
+                  # slash, underscore, hyphen, period [/_-.].
+              "description": "A String", # A human-readable description of this log. This information appears in
+                  # the documentation and can contain details.
+            },
+          ],
+          "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+              # by the client for tracking purpose. If empty, the server may choose to
+              # generate one instead.
+          "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
+            "rules": [ # A list of API backend rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A backend rule provides configuration for an individual API element.
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+                "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
+                    # default depends on the deployment context.
+                "address": "A String", # The address of the API backend.
+              },
+            ],
+          },
+          "monitoring": { # Monitoring configuration of the service. # Monitoring configuration.
+              #
+              # The example below shows how to configure monitored resources and metrics
+              # for monitoring. In the example, a monitored resource and two metrics are
+              # defined. The `library.googleapis.com/book/returned_count` metric is sent
+              # to both producer and consumer projects, whereas the
+              # `library.googleapis.com/book/overdue_count` metric is only sent to the
+              # consumer project.
+              #
+              #     monitored_resources:
+              #     - type: library.googleapis.com/branch
+              #       labels:
+              #       - key: /city
+              #         description: The city where the library branch is located in.
+              #       - key: /name
+              #         description: The name of the branch.
+              #     metrics:
+              #     - name: library.googleapis.com/book/returned_count
+              #       metric_kind: DELTA
+              #       value_type: INT64
+              #       labels:
+              #       - key: /customer_id
+              #     - name: library.googleapis.com/book/overdue_count
+              #       metric_kind: GAUGE
+              #       value_type: INT64
+              #       labels:
+              #       - key: /customer_id
+              #     monitoring:
+              #       producer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         metrics:
+              #         - library.googleapis.com/book/returned_count
+              #       consumer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         metrics:
+              #         - library.googleapis.com/book/returned_count
+              #         - library.googleapis.com/book/overdue_count
+            "producerDestinations": [ # Monitoring configurations for sending metrics to the producer project.
+                # There can be multiple producer destinations, each one must have a
+                # different monitored resource type. A metric can be used in at most
+                # one producer destination.
+              { # Configuration of a specific monitoring destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in
+                    # Service.monitored_resources section.
+                "metrics": [ # Names of the metrics to report to this monitoring destination.
+                    # Each name must be defined in Service.metrics section.
+                  "A String",
+                ],
+              },
+            ],
+            "consumerDestinations": [ # Monitoring configurations for sending metrics to the consumer project.
+                # There can be multiple consumer destinations, each one must have a
+                # different monitored resource type. A metric can be used in at most
+                # one consumer destination.
+              { # Configuration of a specific monitoring destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in
+                    # Service.monitored_resources section.
+                "metrics": [ # Names of the metrics to report to this monitoring destination.
+                    # Each name must be defined in Service.metrics section.
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "systemParameters": { # ### System parameter configuration # System parameter configuration.
+              #
+              # A system parameter is a special kind of parameter defined by the API
+              # system, not by an individual API. It is typically mapped to an HTTP header
+              # and/or a URL query parameter. This configuration specifies which methods
+              # change the names of the system parameters.
+            "rules": [ # Define system parameters.
+                #
+                # The parameters defined here will override the default parameters
+                # implemented by the system. If this field is missing from the service
+                # config, default system parameters will be used. Default system parameters
+                # and names is implementation-dependent.
+                #
+                # Example: define api key for all methods
+                #
+                #     system_parameters
+                #       rules:
+                #         - selector: "*"
+                #           parameters:
+                #             - name: api_key
+                #               url_query_parameter: api_key
+                #
+                #
+                # Example: define 2 api key names for a specific method.
+                #
+                #     system_parameters
+                #       rules:
+                #         - selector: "/ListShelves"
+                #           parameters:
+                #             - name: api_key
+                #               http_header: Api-Key1
+                #             - name: api_key
+                #               http_header: Api-Key2
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Define a system parameter rule mapping system parameter definitions to
+                  # methods.
+                "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+                    # For a given method call, only one of them should be used. If multiple
+                    # names are used the behavior is implementation-dependent.
+                    # If none of the specified names are present the behavior is
+                    # parameter-dependent.
+                  { # Define a parameter's name and location. The parameter may be passed as either
+                      # an HTTP header or a URL query parameter, and if both are passed the behavior
+                      # is implementation-dependent.
+                    "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                        # sensitive.
+                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+                    "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                        # insensitive.
+                  },
+                ],
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
+              #
+              # Example for an API targeted for external use:
+              #
+              #     name: calendar.googleapis.com
+              #     authentication:
+              #       providers:
+              #       - id: google_calendar_auth
+              #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+              #         issuer: https://securetoken.google.com
+              #       rules:
+              #       - selector: "*"
+              #         requirements:
+              #           provider_id: google_calendar_auth
+            "rules": [ # A list of authentication rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Authentication rules for the service.
+                  #
+                  # By default, if a method has any authentication requirements, every request
+                  # must include a valid credential matching one of the requirements.
+                  # It's an error to include more than one kind of credential in a single
+                  # request.
+                  #
+                  # If a method doesn't have any auth requirements, request credentials will be
+                  # ignored.
+                "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+                    # there are scopes defined for "Read-only access to Google Calendar" and
+                    # "Access to Cloud Platform". Users can consent to a scope for an application,
+                    # giving it permission to access that data on their behalf.
+                    #
+                    # OAuth scope specifications should be fairly coarse grained; a user will need
+                    # to see and understand the text description of what your scope means.
+                    #
+                    # In most cases: use one or at most two OAuth scopes for an entire family of
+                    # products. If your product has multiple APIs, you should probably be sharing
+                    # the OAuth scope across all of those APIs.
+                    #
+                    # When you need finer grained OAuth consent screens: talk with your product
+                    # management about how developers will use them in practice.
+                    #
+                    # Please note that even though each of the canonical scopes is enough for a
+                    # request to be accepted and passed to the backend, a request can still fail
+                    # due to the backend requiring additional scopes or permissions.
+                  "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
+                      # OAuth token containing any of these scopes will be accepted.
+                      #
+                      # Example:
+                      #
+                      #      canonical_scopes: https://www.googleapis.com/auth/calendar,
+                      #                        https://www.googleapis.com/auth/calendar.read
+                },
+                "requirements": [ # Requirements for additional authentication providers.
+                  { # User-defined authentication requirements, including support for
+                      # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                    "providerId": "A String", # id from authentication provider.
+                        #
+                        # Example:
+                        #
+                        #     provider_id: bookstore_auth
+                    "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
+                        # implemented and accepted in all the runtime components.
+                        #
+                        # The list of JWT
+                        # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                        # that are allowed to access. A JWT containing any of these audiences will
+                        # be accepted. When this setting is absent, only JWTs with audience
+                        # "https://Service_name/API_name"
+                        # will be accepted. For example, if no audiences are in the setting,
+                        # LibraryService API will only accept JWTs with the following audience
+                        # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                        #
+                        # Example:
+                        #
+                        #     audiences: bookstore_android.apps.googleusercontent.com,
+                        #                bookstore_web.apps.googleusercontent.com
+                  },
+                ],
+                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                    #
+                    # For requests without credentials, if the service control environment is
+                    # specified, each incoming request **must** be associated with a service
+                    # consumer. This can be done by passing an API key that belongs to a consumer
+                    # project.
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "providers": [ # Defines a set of authentication providers that a service supports.
+              { # Configuration for an anthentication provider, including support for
+                  # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                "audiences": "A String", # The list of JWT
+                    # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                    # that are allowed to access. A JWT containing any of these audiences will
+                    # be accepted. When this setting is absent, only JWTs with audience
+                    # "https://Service_name/API_name"
+                    # will be accepted. For example, if no audiences are in the setting,
+                    # LibraryService API will only accept JWTs with the following audience
+                    # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                    #
+                    # Example:
+                    #
+                    #     audiences: bookstore_android.apps.googleusercontent.com,
+                    #                bookstore_web.apps.googleusercontent.com
+                "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+                    # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+                    # Optional if the key set document:
+                    #  - can be retrieved from
+                    #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+                    #    of the issuer.
+                    #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+                    #
+                    # Example: https://www.googleapis.com/oauth2/v1/certs
+                "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+                    # `AuthRequirement.provider_id`.
+                    #
+                    # Example: "bookstore_auth".
+                "issuer": "A String", # Identifies the principal that issued the JWT. See
+                    # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
+                    # Usually a URL or an email address.
+                    #
+                    # Example: https://securetoken.google.com
+                    # Example: 1234567-compute@developer.gserviceaccount.com
+              },
+            ],
+          },
+          "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+            "rules": [ # A list of usage rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Usage configuration rules for the service.
+                  #
+                  # NOTE: Under development.
+                  #
+                  #
+                  # Use this rule to configure unregistered calls for the service. Unregistered
+                  # calls are calls that do not contain consumer project identity.
+                  # (Example: calls that do not contain an API key).
+                  # By default, API methods do not allow unregistered calls, and each method call
+                  # must be identified by a consumer project identity. Use this rule to
+                  # allow/disallow unregistered calls.
+                  #
+                  # Example of an API that wants to allow unregistered calls for entire service.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "*"
+                  #         allow_unregistered_calls: true
+                  #
+                  # Example of a method that wants to allow unregistered calls.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "google.example.library.v1.LibraryService.CreateBook"
+                  #         allow_unregistered_calls: true
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
+                "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
+              },
+            ],
+            "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
+                # service producer.
+                #
+                # Google Service Management currently only supports
+                # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
+                # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
+                # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
+                # documented in https://cloud.google.com/pubsub/docs/overview.
+            "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+                # service. Each requirement is of the form <service.name>/<requirement-id>;
+                # for example 'serviceusage.googleapis.com/billing-enabled'.
+              "A String",
+            ],
+          },
+          "configVersion": 42, # The version of the service configuration. The config version may
+              # influence interpretation of the configuration, for example, to
+              # determine defaults. This is documented together with applicable
+              # options. The current default for the config version itself is `3`.
+          "producerProjectId": "A String", # The id of the Google developer project that owns the service.
+              # Members of this project can manage the service configuration,
+              # manage consumption of the service, etc.
+          "http": { # Defines the HTTP configuration for a service. It contains a list of # HTTP configuration.
+              # HttpRule, each specifying the mapping of an RPC method
+              # to one or more HTTP REST API methods.
+            "rules": [ # A list of HTTP configuration rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # `HttpRule` defines the mapping of an RPC method to one or more HTTP
+                  # REST APIs.  The mapping determines what portions of the request
+                  # message are populated from the path, query parameters, or body of
+                  # the HTTP request.  The mapping is typically specified as an
+                  # `google.api.http` annotation, see "google/api/annotations.proto"
+                  # for details.
+                  #
+                  # The mapping consists of a field specifying the path template and
+                  # method kind.  The path template can refer to fields in the request
+                  # message, as in the example below which describes a REST GET
+                  # operation on a resource collection of messages:
+                  #
+                  #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
+                  #       }
+                  #     }
+                  #     message GetMessageRequest {
+                  #       message SubMessage {
+                  #         string subfield = 1;
+                  #       }
+                  #       string message_id = 1; // mapped to the URL
+                  #       SubMessage sub = 2;    // `sub.subfield` is url-mapped
+                  #     }
+                  #     message Message {
+                  #       string text = 1; // content of the resource
+                  #     }
+                  #
+                  # The same http annotation can alternatively be expressed inside the
+                  # `GRPC API Configuration` YAML file.
+                  #
+                  #     http:
+                  #       rules:
+                  #         - selector: <proto_package_name>.Messaging.GetMessage
+                  #           get: /v1/messages/{message_id}/{sub.subfield}
+                  #
+                  # This definition enables an automatic, bidrectional mapping of HTTP
+                  # JSON to RPC. Example:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456/foo`  | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
+                  #
+                  # In general, not only fields but also field paths can be referenced
+                  # from a path pattern. Fields mapped to the path pattern cannot be
+                  # repeated and must have a primitive (non-message) type.
+                  #
+                  # Any fields in the request message which are not bound by the path
+                  # pattern automatically become (optional) HTTP query
+                  # parameters. Assume the following definition of the request message:
+                  #
+                  #
+                  #     message GetMessageRequest {
+                  #       message SubMessage {
+                  #         string subfield = 1;
+                  #       }
+                  #       string message_id = 1; // mapped to the URL
+                  #       int64 revision = 2;    // becomes a parameter
+                  #       SubMessage sub = 3;    // `sub.subfield` becomes a parameter
+                  #     }
+                  #
+                  #
+                  # This enables a HTTP JSON to RPC mapping as below:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
+                  #
+                  # Note that fields which are mapped to HTTP parameters must have a
+                  # primitive type or a repeated primitive type. Message types are not
+                  # allowed. In the case of a repeated type, the parameter can be
+                  # repeated in the URL, as in `...?param=A&param=B`.
+                  #
+                  # For HTTP method kinds which allow a request body, the `body` field
+                  # specifies the mapping. Consider a REST update method on the
+                  # message resource collection:
+                  #
+                  #
+                  #     service Messaging {
+                  #       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           put: "/v1/messages/{message_id}"
+                  #           body: "message"
+                  #         };
+                  #       }
+                  #     }
+                  #     message UpdateMessageRequest {
+                  #       string message_id = 1; // mapped to the URL
+                  #       Message message = 2;   // mapped to the body
+                  #     }
+                  #
+                  #
+                  # The following HTTP JSON to RPC mapping is enabled, where the
+                  # representation of the JSON in the request body is determined by
+                  # protos JSON encoding:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
+                  #
+                  # The special name `*` can be used in the body mapping to define that
+                  # every field not bound by the path template should be mapped to the
+                  # request body.  This enables the following alternative definition of
+                  # the update method:
+                  #
+                  #     service Messaging {
+                  #       rpc UpdateMessage(Message) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           put: "/v1/messages/{message_id}"
+                  #           body: "*"
+                  #         };
+                  #       }
+                  #     }
+                  #     message Message {
+                  #       string message_id = 1;
+                  #       string text = 2;
+                  #     }
+                  #
+                  #
+                  # The following HTTP JSON to RPC mapping is enabled:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
+                  #
+                  # Note that when using `*` in the body mapping, it is not possible to
+                  # have HTTP parameters, as all fields not bound by the path end in
+                  # the body. This makes this option more rarely used in practice of
+                  # defining REST APIs. The common usage of `*` is in custom methods
+                  # which don't use the URL at all for transferring data.
+                  #
+                  # It is possible to define multiple HTTP methods for one RPC by using
+                  # the `additional_bindings` option. Example:
+                  #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           get: "/v1/messages/{message_id}"
+                  #           additional_bindings {
+                  #             get: "/v1/users/{user_id}/messages/{message_id}"
+                  #           }
+                  #         };
+                  #       }
+                  #     }
+                  #     message GetMessageRequest {
+                  #       string message_id = 1;
+                  #       string user_id = 2;
+                  #     }
+                  #
+                  #
+                  # This enables the following two alternative HTTP JSON to RPC
+                  # mappings:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
+                  # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
+                  #
+                  # # Rules for HTTP mapping
+                  #
+                  # The rules for mapping HTTP path, query parameters, and body fields
+                  # to the request message are as follows:
+                  #
+                  # 1. The `body` field specifies either `*` or a field path, or is
+                  #    omitted. If omitted, it assumes there is no HTTP body.
+                  # 2. Leaf fields (recursive expansion of nested messages in the
+                  #    request) can be classified into three types:
+                  #     (a) Matched in the URL template.
+                  #     (b) Covered by body (if body is `*`, everything except (a) fields;
+                  #         else everything under the body field)
+                  #     (c) All other fields.
+                  # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
+                  # 4. Any body sent with an HTTP request can contain only (b) fields.
+                  #
+                  # The syntax of the path template is as follows:
+                  #
+                  #     Template = "/" Segments [ Verb ] ;
+                  #     Segments = Segment { "/" Segment } ;
+                  #     Segment  = "*" | "**" | LITERAL | Variable ;
+                  #     Variable = "{" FieldPath [ "=" Segments ] "}" ;
+                  #     FieldPath = IDENT { "." IDENT } ;
+                  #     Verb     = ":" LITERAL ;
+                  #
+                  # The syntax `*` matches a single path segment. It follows the semantics of
+                  # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
+                  # Expansion.
+                  #
+                  # The syntax `**` matches zero or more path segments. It follows the semantics
+                  # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
+                  # Expansion. NOTE: it must be the last segment in the path except the Verb.
+                  #
+                  # The syntax `LITERAL` matches literal text in the URL path.
+                  #
+                  # The syntax `Variable` matches the entire path as specified by its template;
+                  # this nested template must not contain further variables. If a variable
+                  # matches a single path segment, its template may be omitted, e.g. `{var}`
+                  # is equivalent to `{var=*}`.
+                  #
+                  # NOTE: the field paths in variables and in the `body` must not refer to
+                  # repeated fields or map fields.
+                  #
+                  # Use CustomHttpPattern to specify any HTTP method that is not included in the
+                  # `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
+                  # a given URL path rule. The wild-card rule is useful for services that provide
+                  # content to Web (HTML) clients.
+                "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
+                    # `*` for mapping all fields not captured by the path pattern to the HTTP
+                    # body. NOTE: the referred field must not be a repeated field and must be
+                    # present at the top-level of request message type.
+                "selector": "A String", # Selects methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+                "get": "A String", # Used for listing and getting information about resources.
+                "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                    # For media support, add instead [][google.bytestream.RestByteStream] as an
+                    # API to your configuration.
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "enabled": True or False, # Whether download is enabled.
+                  "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the download service if one is used for download.
+                },
+                "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
+                    # not contain an `additional_bindings` field themselves (that is,
+                    # the nesting may only be one level deep).
+                  # Object with schema name: HttpRule
+                ],
+                "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+                    # Bytestream, add instead
+                    # [][google.bytestream.RestByteStream] as an API to your
+                    # configuration for Bytestream methods.
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "enabled": True or False, # Whether upload is enabled.
+                  "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the upload service if one is used for upload.
+                },
+                "patch": "A String", # Used for updating a resource.
+                "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
+                    # response. Other response fields are ignored. This field is optional. When
+                    # not set, the response message will be used as HTTP body of response.
+                    # NOTE: the referred field must be not a repeated field and must be present
+                    # at the top-level of response message type.
+                "put": "A String", # Used for updating a resource.
+                "post": "A String", # Used for creating a resource.
+                "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+                  "path": "A String", # The path matched by this custom verb.
+                  "kind": "A String", # The name of this custom HTTP verb.
+                },
+                "delete": "A String", # Used for deleting a resource.
+              },
+            ],
+          },
+          "apis": [ # A list of API interfaces exported by this service. Only the `name` field
+              # of the google.protobuf.Api needs to be provided by the configuration
+              # author, as the remaining fields will be derived from the IDL during the
+              # normalization process. It is an error to specify an API interface here
+              # which cannot be resolved against the associated IDL files.
+            { # Api is a light-weight descriptor for a protocol buffer service.
+              "name": "A String", # The fully qualified name of this api, including package name
+                  # followed by the api's simple name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+                  # message.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "mixins": [ # Included APIs. See Mixin.
+                { # Declares an API to be included in this API. The including API must
+                    # redeclare all the methods from the included API, but documentation
+                    # and options are inherited as follows:
+                    #
+                    # - If after comment and whitespace stripping, the documentation
+                    #   string of the redeclared method is empty, it will be inherited
+                    #   from the original method.
+                    #
+                    # - Each annotation belonging to the service config (http,
+                    #   visibility) which is not set in the redeclared method will be
+                    #   inherited.
+                    #
+                    # - If an http annotation is inherited, the path pattern will be
+                    #   modified as follows. Any version prefix will be replaced by the
+                    #   version of the including API plus the root path if specified.
+                    #
+                    # Example of a simple mixin:
+                    #
+                    #     package google.acl.v1;
+                    #     service AccessControl {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v1/{resource=**}:getAcl";
+                    #       }
+                    #     }
+                    #
+                    #     package google.storage.v2;
+                    #     service Storage {
+                    #       //       rpc GetAcl(GetAclRequest) returns (Acl);
+                    #
+                    #       // Get a data record.
+                    #       rpc GetData(GetDataRequest) returns (Data) {
+                    #         option (google.api.http).get = "/v2/{resource=**}";
+                    #       }
+                    #     }
+                    #
+                    # Example of a mixin configuration:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #
+                    # The mixin construct implies that all methods in `AccessControl` are
+                    # also declared with same name and request/response types in
+                    # `Storage`. A documentation generator or annotation processor will
+                    # see the effective `Storage.GetAcl` method after inherting
+                    # documentation and annotations as follows:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                    #
+                    # Note how the version in the path pattern changed from `v1` to `v2`.
+                    #
+                    # If the `root` field in the mixin is specified, it should be a
+                    # relative path under which inherited HTTP paths are placed. Example:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #         root: acls
+                    #
+                    # This implies the following inherited HTTP annotation:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                  "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+                      # are rooted.
+                  "name": "A String", # The fully qualified name of the API which is included.
+                },
+              ],
+              "syntax": "A String", # The source syntax of the service.
+              "version": "A String", # A version string for this api. If specified, must have the form
+                  # `major-version.minor-version`, as in `1.10`. If the minor version
+                  # is omitted, it defaults to zero. If the entire version field is
+                  # empty, the major version is derived from the package name, as
+                  # outlined below. If the field is not empty, the version in the
+                  # package name will be verified to be consistent with what is
+                  # provided here.
+                  #
+                  # The versioning schema uses [semantic
+                  # versioning](http://semver.org) where the major version number
+                  # indicates a breaking change and the minor version an additive,
+                  # non-breaking change. Both version numbers are signals to users
+                  # what to expect from different versions, and should be carefully
+                  # chosen based on the product plan.
+                  #
+                  # The major version is also reflected in the package name of the
+                  # API, which must end in `v<major-version>`, as in
+                  # `google.feature.v1`. For major versions 0 and 1, the suffix can
+                  # be omitted. Zero major versions must only be used for
+                  # experimental, none-GA apis.
+              "options": [ # Any metadata attached to the API.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+              "methods": [ # The methods of this api, in unspecified order.
+                { # Method represents a method of an api.
+                  "name": "A String", # The simple name of this method.
+                  "requestStreaming": True or False, # If true, the request is streamed.
+                  "responseTypeUrl": "A String", # The URL of the output message type.
+                  "requestTypeUrl": "A String", # A URL of the input message type.
+                  "responseStreaming": True or False, # If true, the response is streamed.
+                  "syntax": "A String", # The source syntax of this method.
+                  "options": [ # Any metadata attached to the method.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+          "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
+              # specific protobuf types that can appear in error detail lists of
+              # error responses.
+              #
+              # Example:
+              #
+              #     custom_error:
+              #       types:
+              #       - google.foo.v1.CustomError
+              #       - google.foo.v1.AnotherError
+            "rules": [ # The list of custom error rules that apply to individual API messages.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A custom error rule.
+                "isErrorType": True or False, # Mark this message as possible payload in error response.  Otherwise,
+                    # objects of this type will be filtered when they appear in error payload.
+                "selector": "A String", # Selects messages to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "types": [ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
+              "A String",
+            ],
+          },
+          "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
+              # elements.  Restrictions are specified using visibility labels
+              # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
+              #
+              # Users and projects can have access to more than one visibility label. The
+              # effective visibility for multiple labels is the union of each label's
+              # elements, plus any unrestricted elements.
+              #
+              # If an element and its parents have no restrictions, visibility is
+              # unconditionally granted.
+              #
+              # Example:
+              #
+              #     visibility:
+              #       rules:
+              #       - selector: google.calendar.Calendar.EnhancedSearch
+              #         restriction: TRUSTED_TESTER
+              #       - selector: google.calendar.Calendar.Delegate
+              #         restriction: GOOGLE_INTERNAL
+              #
+              # Here, all methods are publicly visible except for the restricted methods
+              # EnhancedSearch and Delegate.
+            "rules": [ # A list of visibility rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A visibility rule provides visibility configuration for an individual API
+                  # element.
+                "restriction": "A String", # A comma-separated list of visibility labels that apply to the `selector`.
+                    # Any of the listed labels can be used to grant the visibility.
+                    #
+                    # If a rule has multiple labels, removing one of the labels but not all of
+                    # them can break clients.
+                    #
+                    # Example:
+                    #
+                    #     visibility:
+                    #       rules:
+                    #       - selector: google.calendar.Calendar.EnhancedSearch
+                    #         restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
+                    #
+                    # Removing GOOGLE_INTERNAL from this restriction will break clients that
+                    # rely on this method and only had access to it through GOOGLE_INTERNAL.
+                "selector": "A String", # Selects methods, messages, fields, enums, etc. to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "metrics": [ # Defines the metrics used by this service.
+            { # Defines a metric type and its schema. Once a metric descriptor is created,
+                # deleting or altering it stops data collection and makes the metric type's
+                # existing data unusable.
+              "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
+                  # Use sentence case without an ending period, for example "Request count".
+              "description": "A String", # A detailed description of the metric, which can be used in documentation.
+              "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
+                  # Some combinations of `metric_kind` and `value_type` might not be supported.
+              "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
+                  # Some combinations of `metric_kind` and `value_type` might not be supported.
+              "labels": [ # The set of labels that can be used to describe a specific
+                  # instance of this metric type. For example, the
+                  # `appengine.googleapis.com/http/server/response_latencies` metric
+                  # type has a label for the HTTP response code, `response_code`, so
+                  # you can look at latencies for successful responses or just
+                  # for responses that failed.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "type": "A String", # The metric type, including its DNS name prefix. The type is not
+                  # URL-encoded.  All user-defined custom metric types have the DNS name
+                  # `custom.googleapis.com`.  Metric types should use a natural hierarchical
+                  # grouping. For example:
+                  #
+                  #     "custom.googleapis.com/invoice/paid/amount"
+                  #     "appengine.googleapis.com/http/server/response_latencies"
+              "unit": "A String", # The unit in which the metric value is reported. It is only applicable
+                  # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
+                  # supported units are a subset of [The Unified Code for Units of
+                  # Measure](http://unitsofmeasure.org/ucum.html) standard:
+                  #
+                  # **Basic units (UNIT)**
+                  #
+                  # * `bit`   bit
+                  # * `By`    byte
+                  # * `s`     second
+                  # * `min`   minute
+                  # * `h`     hour
+                  # * `d`     day
+                  #
+                  # **Prefixes (PREFIX)**
+                  #
+                  # * `k`     kilo    (10**3)
+                  # * `M`     mega    (10**6)
+                  # * `G`     giga    (10**9)
+                  # * `T`     tera    (10**12)
+                  # * `P`     peta    (10**15)
+                  # * `E`     exa     (10**18)
+                  # * `Z`     zetta   (10**21)
+                  # * `Y`     yotta   (10**24)
+                  # * `m`     milli   (10**-3)
+                  # * `u`     micro   (10**-6)
+                  # * `n`     nano    (10**-9)
+                  # * `p`     pico    (10**-12)
+                  # * `f`     femto   (10**-15)
+                  # * `a`     atto    (10**-18)
+                  # * `z`     zepto   (10**-21)
+                  # * `y`     yocto   (10**-24)
+                  # * `Ki`    kibi    (2**10)
+                  # * `Mi`    mebi    (2**20)
+                  # * `Gi`    gibi    (2**30)
+                  # * `Ti`    tebi    (2**40)
+                  #
+                  # **Grammar**
+                  #
+                  # The grammar includes the dimensionless unit `1`, such as `1/s`.
+                  #
+                  # The grammar also includes these connectors:
+                  #
+                  # * `/`    division (as an infix operator, e.g. `1/s`).
+                  # * `.`    multiplication (as an infix operator, e.g. `GBy.d`)
+                  #
+                  # The grammar for a unit is as follows:
+                  #
+                  #     Expression = Component { "." Component } { "/" Component } ;
+                  #
+                  #     Component = [ PREFIX ] UNIT [ Annotation ]
+                  #               | Annotation
+                  #               | "1"
+                  #               ;
+                  #
+                  #     Annotation = "{" NAME "}" ;
+                  #
+                  # Notes:
+                  #
+                  # * `Annotation` is just a comment if it follows a `UNIT` and is
+                  #    equivalent to `1` if it is used alone. For examples,
+                  #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
+                  # * `NAME` is a sequence of non-blank printable ASCII characters not
+                  #    containing '{' or '}'.
+              "name": "A String", # The resource name of the metric descriptor. Depending on the
+                  # implementation, the name typically includes: (1) the parent resource name
+                  # that defines the scope of the metric type or of its data; and (2) the
+                  # metric's URL-encoded type, which also appears in the `type` field of this
+                  # descriptor. For example, following is the resource name of a custom
+                  # metric within the GCP project `my-project-id`:
+                  #
+                  #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+            },
+          ],
+          "enums": [ # A list of all enum types included in this API service.  Enums
+              # referenced directly or indirectly by the `apis` are automatically
+              # included.  Enums which are not referenced but shall be included
+              # should be listed here by name. Example:
+              #
+              #     enums:
+              #     - name: google.someapi.v1.SomeEnum
+            { # Enum type definition.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "enumvalue": [ # Enum value definitions.
+                { # Enum value definition.
+                  "options": [ # Protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
+                },
+              ],
+              "options": [ # Protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+              "name": "A String", # Enum type name.
+              "syntax": "A String", # The source syntax.
+            },
+          ],
+          "types": [ # A list of all proto message types included in this API service.
+              # Types referenced directly or indirectly by the `apis` are
+              # automatically included.  Messages which are not referenced but
+              # shall be included, such as types used by the `google.protobuf.Any` type,
+              # should be listed here by name. Example:
+              #
+              #     types:
+              #     - name: google.protobuf.Int32
+            { # A protocol buffer message type.
+              "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
+                "A String",
+              ],
+              "name": "A String", # The fully qualified message name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "syntax": "A String", # The source syntax.
+              "fields": [ # The list of fields.
+                { # A single field of a message type.
+                  "kind": "A String", # The field type.
+                  "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
+                      # types. The first type has index 1; zero means the type is not in the list.
+                  "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
+                      # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+                  "name": "A String", # The field name.
+                  "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
+                  "jsonName": "A String", # The field JSON name.
+                  "number": 42, # The field number.
+                  "cardinality": "A String", # The field cardinality.
+                  "options": [ # The protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "packed": True or False, # Whether to use alternative packed wire representation.
+                },
+              ],
+              "options": [ # The protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+            },
+          ],
+          "logging": { # Logging configuration of the service. # Logging configuration.
+              #
+              # The following example shows how to configure logs to be sent to the
+              # producer and consumer projects. In the example, the `activity_history`
+              # log is sent to both the producer and consumer projects, whereas the
+              # `purchase_history` log is only sent to the producer project.
+              #
+              #     monitored_resources:
+              #     - type: library.googleapis.com/branch
+              #       labels:
+              #       - key: /city
+              #         description: The city where the library branch is located in.
+              #       - key: /name
+              #         description: The name of the branch.
+              #     logs:
+              #     - name: activity_history
+              #       labels:
+              #       - key: /customer_id
+              #     - name: purchase_history
+              #     logging:
+              #       producer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         logs:
+              #         - activity_history
+              #         - purchase_history
+              #       consumer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         logs:
+              #         - activity_history
+            "producerDestinations": [ # Logging configurations for sending logs to the producer project.
+                # There can be multiple producer destinations, each one must have a
+                # different monitored resource type. A log can be used in at most
+                # one producer destination.
+              { # Configuration of a specific logging destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
+                    # Service.monitored_resources section.
+                "logs": [ # Names of the logs to be sent to this destination. Each name must
+                    # be defined in the Service.logs section. If the log name is
+                    # not a domain scoped name, it will be automatically prefixed with
+                    # the service name followed by "/".
+                  "A String",
+                ],
+              },
+            ],
+            "consumerDestinations": [ # Logging configurations for sending logs to the consumer project.
+                # There can be multiple consumer destinations, each one must have a
+                # different monitored resource type. A log can be used in at most
+                # one consumer destination.
+              { # Configuration of a specific logging destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
+                    # Service.monitored_resources section.
+                "logs": [ # Names of the logs to be sent to this destination. Each name must
+                    # be defined in the Service.logs section. If the log name is
+                    # not a domain scoped name, it will be automatically prefixed with
+                    # the service name followed by "/".
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "name": "A String", # The DNS address at which this service is available,
+              # e.g. `calendar.googleapis.com`.
+          "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation.
+              #
+              # Example:
+              # <pre><code>documentation:
+              #   summary: >
+              #     The Google Calendar API gives access
+              #     to most calendar features.
+              #   pages:
+              #   - name: Overview
+              #     content: &#40;== include google/foo/overview.md ==&#41;
+              #   - name: Tutorial
+              #     content: &#40;== include google/foo/tutorial.md ==&#41;
+              #     subpages;
+              #     - name: Java
+              #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
+              #   rules:
+              #   - selector: google.calendar.Calendar.Get
+              #     description: >
+              #       ...
+              #   - selector: google.calendar.Calendar.Put
+              #     description: >
+              #       ...
+              # </code></pre>
+              # Documentation is provided in markdown syntax. In addition to
+              # standard markdown features, definition lists, tables and fenced
+              # code blocks are supported. Section headers can be provided and are
+              # interpreted relative to the section nesting of the context where
+              # a documentation fragment is embedded.
+              #
+              # Documentation from the IDL is merged with documentation defined
+              # via the config at normalization time, where documentation provided
+              # by config rules overrides IDL provided.
+              #
+              # A number of constructs specific to the API platform are supported
+              # in documentation text.
+              #
+              # In order to reference a proto element, the following
+              # notation can be used:
+              # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+              # To override the display text used for the link, this can be used:
+              # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+              # Text can be excluded from doc using the following notation:
+              # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+              # Comments can be made conditional using a visibility label. The below
+              # text will be only rendered if the `BETA` label is available:
+              # <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
+              # A few directives are available in documentation. Note that
+              # directives must appear on a single line to be properly
+              # identified. The `include` directive includes a markdown file from
+              # an external source:
+              # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+              # The `resource_for` directive marks a message to be the resource of
+              # a collection in REST view. If it is not specified, tools attempt
+              # to infer the resource from the operations in a collection:
+              # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+              # The directive `suppress_warning` does not directly affect documentation
+              # and is documented together with service config validation.
+            "rules": [ # A list of documentation rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A documentation rule provides information about individual API elements.
+                "description": "A String", # Description of the selected API(s).
+                "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if an
+                    # element is marked as `deprecated`.
+                "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                    # qualified name of the element which may end in "*", indicating a wildcard.
+                    # Wildcards are only allowed at the end and for a whole component of the
+                    # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
+                    # specify a default for all applicable elements, the whole pattern "*"
+                    # is used.
+              },
+            ],
+            "documentationRootUrl": "A String", # The URL to the root of documentation.
+            "overview": "A String", # Declares a single overview page. For example:
+                # <pre><code>documentation:
+                #   summary: ...
+                #   overview: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # This is a shortcut for the following declaration (using pages style):
+                # <pre><code>documentation:
+                #   summary: ...
+                #   pages:
+                #   - name: Overview
+                #     content: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # Note: you cannot specify both `overview` field and `pages` field.
+            "pages": [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent
+                  # nested documentation set structure.
+                "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
+                    # to include content from a Markdown file.
+                "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                    # honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                "name": "A String", # The name of the page. It will be used as an identity of the page to
+                    # generate URI of the page, text of the link to this page in navigation,
+                    # etc. The full page name (start from the root page name to this page
+                    # concatenated with `.`) can be used as reference to the page in your
+                    # documentation. For example:
+                    # <pre><code>pages:
+                    # - name: Tutorial
+                    #   content: &#40;== include tutorial.md ==&#41;
+                    #   subpages:
+                    #   - name: Java
+                    #     content: &#40;== include tutorial_java.md ==&#41;
+                    # </code></pre>
+                    # You can reference `Java` page using Markdown reference link syntax:
+                    # `Java`.
+              },
+            ],
+            "summary": "A String", # A short summary of what the service does. Can only be provided by
+                # plain text.
+          },
+          "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+            "sourceFiles": [ # All files used during config generation.
+              {
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+          },
+          "systemTypes": [ # A list of all proto message types included in this API service.
+              # It serves similar purpose as [google.api.Service.types], except that
+              # these types are not needed by user-defined APIs. Therefore, they will not
+              # show up in the generated discovery doc. This field should only be used
+              # to define system APIs in ESF.
+            { # A protocol buffer message type.
+              "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
+                "A String",
+              ],
+              "name": "A String", # The fully qualified message name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "syntax": "A String", # The source syntax.
+              "fields": [ # The list of fields.
+                { # A single field of a message type.
+                  "kind": "A String", # The field type.
+                  "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
+                      # types. The first type has index 1; zero means the type is not in the list.
+                  "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
+                      # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+                  "name": "A String", # The field name.
+                  "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
+                  "jsonName": "A String", # The field JSON name.
+                  "number": 42, # The field number.
+                  "cardinality": "A String", # The field cardinality.
+                  "options": [ # The protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "packed": True or False, # Whether to use alternative packed wire representation.
+                },
+              ],
+              "options": [ # The protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+            },
+          ],
+          "context": { # `Context` defines which contexts an API requests. # Context configuration.
+              #
+              # Example:
+              #
+              #     context:
+              #       rules:
+              #       - selector: "*"
+              #         requested:
+              #         - google.rpc.context.ProjectContext
+              #         - google.rpc.context.OriginContext
+              #
+              # The above specifies that all methods in the API request
+              # `google.rpc.context.ProjectContext` and
+              # `google.rpc.context.OriginContext`.
+              #
+              # Available context types are defined in package
+              # `google.rpc.context`.
+            "rules": [ # A list of RPC context rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A context rule provides information about the context for an individual API
+                  # element.
+                "requested": [ # A list of full type names of requested contexts.
+                  "A String",
+                ],
+                "provided": [ # A list of full type names of provided contexts.
+                  "A String",
+                ],
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "title": "A String", # The product title associated with this service.
+          "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
+              # with the same name as the service is automatically generated to service all
+              # defined APIs.
+            { # `Endpoint` describes a network endpoint that serves a set of APIs.
+                # A service may expose any number of endpoints, and all endpoints share the
+                # same service configuration, such as quota configuration and monitoring
+                # configuration.
+                #
+                # Example service configuration:
+                #
+                #     name: library-example.googleapis.com
+                #     endpoints:
+                #       # Below entry makes 'google.example.library.v1.Library'
+                #       # API be served from endpoint address library-example.googleapis.com.
+                #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
+                #       # it to decide whether the subsequent cross-origin request is
+                #       # allowed to proceed.
+                #     - name: library-example.googleapis.com
+                #       allow_cors: true
+              "allowCors": True or False, # Allowing
+                  # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
+                  # cross-domain traffic, would allow the backends served from this endpoint to
+                  # receive and respond to HTTP OPTIONS requests. The response will be used by
+                  # the browser to determine whether the subsequent cross-origin request is
+                  # allowed to proceed.
+              "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+                  # please specify multiple google.api.Endpoint for each of the intented
+                  # alias.
+                  #
+                  # Additional names that this endpoint will be hosted on.
+                "A String",
+              ],
+              "features": [ # The list of features enabled on this endpoint.
+                "A String",
+              ],
+              "name": "A String", # The canonical name of this endpoint.
+              "apis": [ # The list of APIs served by this endpoint.
+                "A String",
+              ],
+            },
+          ],
+          "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+              # only be used by whitelisted users.
+            "authorization": { # Configuration of authorization. # Authorization configuration.
+                #
+                # This section determines the authorization provider, if unspecified, then no
+                # authorization check will be done.
+                #
+                # Example:
+                #
+                #     experimental:
+                #       authorization:
+                #         provider: firebaserules.googleapis.com
+              "provider": "A String", # The name of the authorization provider, such as
+                  # firebaserules.googleapis.com.
+            },
+          },
+        },
+      },
+    ],
+    "nextPageToken": "A String", # Token that can be passed to `ListEnabledServices` to resume a paginated
+        # query.
+  }</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/serviceuser_v1.services.html b/docs/dyn/serviceuser_v1.services.html
new file mode 100644
index 0000000..e400f30
--- /dev/null
+++ b/docs/dyn/serviceuser_v1.services.html
@@ -0,0 +1,1613 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="serviceuser_v1.html">Google Service User API</a> . <a href="serviceuser_v1.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#search">search(pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Search available services.</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="search">search(pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Search available services.
+
+When no filter is specified, returns all accessible services. For
+authenticated users, also returns all services the calling user has
+"servicemanagement.services.bind" permission for.
+
+Args:
+  pageSize: integer, Requested size of the next page of data.
+  pageToken: string, Token identifying which result to start with; returned by a previous list
+call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for SearchServices method.
+    "services": [ # Services available publicly or available to the authenticated caller.
+      { # The published version of a Service that is managed by
+          # Google Service Management.
+        "name": "A String", # The resource name of the service.
+            #
+            # A valid name would be:
+            # - services/serviceuser.googleapis.com
+        "service": { # `Service` is the root object of Google service configuration schema. It # The service's published configuration.
+            # describes basic information about a service, such as the name and the
+            # title, and delegates other aspects to sub-sections. Each sub-section is
+            # either a proto message or a repeated proto message that configures a
+            # specific aspect, such as auth. See each proto message definition for details.
+            #
+            # Example:
+            #
+            #     type: google.api.Service
+            #     config_version: 3
+            #     name: calendar.googleapis.com
+            #     title: Google Calendar API
+            #     apis:
+            #     - name: google.calendar.v3.Calendar
+            #     authentication:
+            #       providers:
+            #       - id: google_calendar_auth
+            #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+            #         issuer: https://securetoken.google.com
+            #       rules:
+            #       - selector: "*"
+            #         requirements:
+            #           provider_id: google_calendar_auth
+          "control": { # Selects and configures the service controller used by the service.  The # Configuration for the service control plane.
+              # service controller handles features like abuse, quota, billing, logging,
+              # monitoring, etc.
+            "environment": "A String", # The service control environment to use. If empty, no control plane
+                # feature (like quota and billing) will be enabled.
+          },
+          "monitoredResources": [ # Defines the monitored resources used by this service. This is required
+              # by the Service.monitoring and Service.logging configurations.
+            { # An object that describes the schema of a MonitoredResource object using a
+                # type name and a set of labels.  For example, the monitored resource
+                # descriptor for Google Compute Engine VM instances has a type of
+                # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
+                # `"zone"` to identify particular VM instances.
+                #
+                # Different APIs can support different monitored resource types. APIs generally
+                # provide a `list` method that returns the monitored resource descriptors used
+                # by the API.
+              "type": "A String", # Required. The monitored resource type. For example, the type
+                  # `"cloudsql_database"` represents databases in Google Cloud SQL.
+                  # The maximum length of this value is 256 characters.
+              "labels": [ # Required. A set of labels used to describe instances of this monitored
+                  # resource type. For example, an individual Google Cloud SQL database is
+                  # identified by values for the labels `"database_id"` and `"zone"`.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
+                  # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+                  # without any article or other determiners. For example,
+                  # `"Google Cloud SQL Database"`.
+              "name": "A String", # Optional. The resource name of the monitored resource descriptor:
+                  # `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
+                  # {type} is the value of the `type` field in this object and
+                  # {project_id} is a project ID that provides API-specific context for
+                  # accessing the type.  APIs that do not use project information can use the
+                  # resource name format `"monitoredResourceDescriptors/{type}"`.
+              "description": "A String", # Optional. A detailed description of the monitored resource type that might
+                  # be used in documentation.
+            },
+          ],
+          "logs": [ # Defines the logs used by this service.
+            { # A description of a log type. Example in YAML format:
+                #
+                #     - name: library.googleapis.com/activity_history
+                #       description: The history of borrowing and returning library items.
+                #       display_name: Activity
+                #       labels:
+                #       - key: /customer_id
+                #         description: Identifier of a library customer
+              "labels": [ # The set of labels that are available to describe a specific log entry.
+                  # Runtime requests that contain labels not specified here are
+                  # considered invalid.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "displayName": "A String", # The human-readable name for this log. This information appears on
+                  # the user interface and should be concise.
+              "name": "A String", # The name of the log. It must be less than 512 characters long and can
+                  # include the following characters: upper- and lower-case alphanumeric
+                  # characters [A-Za-z0-9], and punctuation characters including
+                  # slash, underscore, hyphen, period [/_-.].
+              "description": "A String", # A human-readable description of this log. This information appears in
+                  # the documentation and can contain details.
+            },
+          ],
+          "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+              # by the client for tracking purpose. If empty, the server may choose to
+              # generate one instead.
+          "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
+            "rules": [ # A list of API backend rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A backend rule provides configuration for an individual API element.
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+                "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
+                    # default depends on the deployment context.
+                "address": "A String", # The address of the API backend.
+              },
+            ],
+          },
+          "monitoring": { # Monitoring configuration of the service. # Monitoring configuration.
+              #
+              # The example below shows how to configure monitored resources and metrics
+              # for monitoring. In the example, a monitored resource and two metrics are
+              # defined. The `library.googleapis.com/book/returned_count` metric is sent
+              # to both producer and consumer projects, whereas the
+              # `library.googleapis.com/book/overdue_count` metric is only sent to the
+              # consumer project.
+              #
+              #     monitored_resources:
+              #     - type: library.googleapis.com/branch
+              #       labels:
+              #       - key: /city
+              #         description: The city where the library branch is located in.
+              #       - key: /name
+              #         description: The name of the branch.
+              #     metrics:
+              #     - name: library.googleapis.com/book/returned_count
+              #       metric_kind: DELTA
+              #       value_type: INT64
+              #       labels:
+              #       - key: /customer_id
+              #     - name: library.googleapis.com/book/overdue_count
+              #       metric_kind: GAUGE
+              #       value_type: INT64
+              #       labels:
+              #       - key: /customer_id
+              #     monitoring:
+              #       producer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         metrics:
+              #         - library.googleapis.com/book/returned_count
+              #       consumer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         metrics:
+              #         - library.googleapis.com/book/returned_count
+              #         - library.googleapis.com/book/overdue_count
+            "producerDestinations": [ # Monitoring configurations for sending metrics to the producer project.
+                # There can be multiple producer destinations, each one must have a
+                # different monitored resource type. A metric can be used in at most
+                # one producer destination.
+              { # Configuration of a specific monitoring destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in
+                    # Service.monitored_resources section.
+                "metrics": [ # Names of the metrics to report to this monitoring destination.
+                    # Each name must be defined in Service.metrics section.
+                  "A String",
+                ],
+              },
+            ],
+            "consumerDestinations": [ # Monitoring configurations for sending metrics to the consumer project.
+                # There can be multiple consumer destinations, each one must have a
+                # different monitored resource type. A metric can be used in at most
+                # one consumer destination.
+              { # Configuration of a specific monitoring destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in
+                    # Service.monitored_resources section.
+                "metrics": [ # Names of the metrics to report to this monitoring destination.
+                    # Each name must be defined in Service.metrics section.
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "systemParameters": { # ### System parameter configuration # System parameter configuration.
+              #
+              # A system parameter is a special kind of parameter defined by the API
+              # system, not by an individual API. It is typically mapped to an HTTP header
+              # and/or a URL query parameter. This configuration specifies which methods
+              # change the names of the system parameters.
+            "rules": [ # Define system parameters.
+                #
+                # The parameters defined here will override the default parameters
+                # implemented by the system. If this field is missing from the service
+                # config, default system parameters will be used. Default system parameters
+                # and names is implementation-dependent.
+                #
+                # Example: define api key for all methods
+                #
+                #     system_parameters
+                #       rules:
+                #         - selector: "*"
+                #           parameters:
+                #             - name: api_key
+                #               url_query_parameter: api_key
+                #
+                #
+                # Example: define 2 api key names for a specific method.
+                #
+                #     system_parameters
+                #       rules:
+                #         - selector: "/ListShelves"
+                #           parameters:
+                #             - name: api_key
+                #               http_header: Api-Key1
+                #             - name: api_key
+                #               http_header: Api-Key2
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Define a system parameter rule mapping system parameter definitions to
+                  # methods.
+                "parameters": [ # Define parameters. Multiple names may be defined for a parameter.
+                    # For a given method call, only one of them should be used. If multiple
+                    # names are used the behavior is implementation-dependent.
+                    # If none of the specified names are present the behavior is
+                    # parameter-dependent.
+                  { # Define a parameter's name and location. The parameter may be passed as either
+                      # an HTTP header or a URL query parameter, and if both are passed the behavior
+                      # is implementation-dependent.
+                    "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
+                        # sensitive.
+                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
+                    "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
+                        # insensitive.
+                  },
+                ],
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
+              #
+              # Example for an API targeted for external use:
+              #
+              #     name: calendar.googleapis.com
+              #     authentication:
+              #       providers:
+              #       - id: google_calendar_auth
+              #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+              #         issuer: https://securetoken.google.com
+              #       rules:
+              #       - selector: "*"
+              #         requirements:
+              #           provider_id: google_calendar_auth
+            "rules": [ # A list of authentication rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Authentication rules for the service.
+                  #
+                  # By default, if a method has any authentication requirements, every request
+                  # must include a valid credential matching one of the requirements.
+                  # It's an error to include more than one kind of credential in a single
+                  # request.
+                  #
+                  # If a method doesn't have any auth requirements, request credentials will be
+                  # ignored.
+                "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+                    # there are scopes defined for "Read-only access to Google Calendar" and
+                    # "Access to Cloud Platform". Users can consent to a scope for an application,
+                    # giving it permission to access that data on their behalf.
+                    #
+                    # OAuth scope specifications should be fairly coarse grained; a user will need
+                    # to see and understand the text description of what your scope means.
+                    #
+                    # In most cases: use one or at most two OAuth scopes for an entire family of
+                    # products. If your product has multiple APIs, you should probably be sharing
+                    # the OAuth scope across all of those APIs.
+                    #
+                    # When you need finer grained OAuth consent screens: talk with your product
+                    # management about how developers will use them in practice.
+                    #
+                    # Please note that even though each of the canonical scopes is enough for a
+                    # request to be accepted and passed to the backend, a request can still fail
+                    # due to the backend requiring additional scopes or permissions.
+                  "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
+                      # OAuth token containing any of these scopes will be accepted.
+                      #
+                      # Example:
+                      #
+                      #      canonical_scopes: https://www.googleapis.com/auth/calendar,
+                      #                        https://www.googleapis.com/auth/calendar.read
+                },
+                "requirements": [ # Requirements for additional authentication providers.
+                  { # User-defined authentication requirements, including support for
+                      # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                    "providerId": "A String", # id from authentication provider.
+                        #
+                        # Example:
+                        #
+                        #     provider_id: bookstore_auth
+                    "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
+                        # implemented and accepted in all the runtime components.
+                        #
+                        # The list of JWT
+                        # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                        # that are allowed to access. A JWT containing any of these audiences will
+                        # be accepted. When this setting is absent, only JWTs with audience
+                        # "https://Service_name/API_name"
+                        # will be accepted. For example, if no audiences are in the setting,
+                        # LibraryService API will only accept JWTs with the following audience
+                        # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                        #
+                        # Example:
+                        #
+                        #     audiences: bookstore_android.apps.googleusercontent.com,
+                        #                bookstore_web.apps.googleusercontent.com
+                  },
+                ],
+                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                    #
+                    # For requests without credentials, if the service control environment is
+                    # specified, each incoming request **must** be associated with a service
+                    # consumer. This can be done by passing an API key that belongs to a consumer
+                    # project.
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "providers": [ # Defines a set of authentication providers that a service supports.
+              { # Configuration for an anthentication provider, including support for
+                  # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                "audiences": "A String", # The list of JWT
+                    # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                    # that are allowed to access. A JWT containing any of these audiences will
+                    # be accepted. When this setting is absent, only JWTs with audience
+                    # "https://Service_name/API_name"
+                    # will be accepted. For example, if no audiences are in the setting,
+                    # LibraryService API will only accept JWTs with the following audience
+                    # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                    #
+                    # Example:
+                    #
+                    #     audiences: bookstore_android.apps.googleusercontent.com,
+                    #                bookstore_web.apps.googleusercontent.com
+                "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+                    # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+                    # Optional if the key set document:
+                    #  - can be retrieved from
+                    #    [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
+                    #    of the issuer.
+                    #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
+                    #
+                    # Example: https://www.googleapis.com/oauth2/v1/certs
+                "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+                    # `AuthRequirement.provider_id`.
+                    #
+                    # Example: "bookstore_auth".
+                "issuer": "A String", # Identifies the principal that issued the JWT. See
+                    # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
+                    # Usually a URL or an email address.
+                    #
+                    # Example: https://securetoken.google.com
+                    # Example: 1234567-compute@developer.gserviceaccount.com
+              },
+            ],
+          },
+          "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+            "rules": [ # A list of usage rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Usage configuration rules for the service.
+                  #
+                  # NOTE: Under development.
+                  #
+                  #
+                  # Use this rule to configure unregistered calls for the service. Unregistered
+                  # calls are calls that do not contain consumer project identity.
+                  # (Example: calls that do not contain an API key).
+                  # By default, API methods do not allow unregistered calls, and each method call
+                  # must be identified by a consumer project identity. Use this rule to
+                  # allow/disallow unregistered calls.
+                  #
+                  # Example of an API that wants to allow unregistered calls for entire service.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "*"
+                  #         allow_unregistered_calls: true
+                  #
+                  # Example of a method that wants to allow unregistered calls.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "google.example.library.v1.LibraryService.CreateBook"
+                  #         allow_unregistered_calls: true
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
+                "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
+              },
+            ],
+            "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
+                # service producer.
+                #
+                # Google Service Management currently only supports
+                # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
+                # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
+                # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
+                # documented in https://cloud.google.com/pubsub/docs/overview.
+            "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+                # service. Each requirement is of the form <service.name>/<requirement-id>;
+                # for example 'serviceusage.googleapis.com/billing-enabled'.
+              "A String",
+            ],
+          },
+          "configVersion": 42, # The version of the service configuration. The config version may
+              # influence interpretation of the configuration, for example, to
+              # determine defaults. This is documented together with applicable
+              # options. The current default for the config version itself is `3`.
+          "producerProjectId": "A String", # The id of the Google developer project that owns the service.
+              # Members of this project can manage the service configuration,
+              # manage consumption of the service, etc.
+          "http": { # Defines the HTTP configuration for a service. It contains a list of # HTTP configuration.
+              # HttpRule, each specifying the mapping of an RPC method
+              # to one or more HTTP REST API methods.
+            "rules": [ # A list of HTTP configuration rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # `HttpRule` defines the mapping of an RPC method to one or more HTTP
+                  # REST APIs.  The mapping determines what portions of the request
+                  # message are populated from the path, query parameters, or body of
+                  # the HTTP request.  The mapping is typically specified as an
+                  # `google.api.http` annotation, see "google/api/annotations.proto"
+                  # for details.
+                  #
+                  # The mapping consists of a field specifying the path template and
+                  # method kind.  The path template can refer to fields in the request
+                  # message, as in the example below which describes a REST GET
+                  # operation on a resource collection of messages:
+                  #
+                  #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
+                  #       }
+                  #     }
+                  #     message GetMessageRequest {
+                  #       message SubMessage {
+                  #         string subfield = 1;
+                  #       }
+                  #       string message_id = 1; // mapped to the URL
+                  #       SubMessage sub = 2;    // `sub.subfield` is url-mapped
+                  #     }
+                  #     message Message {
+                  #       string text = 1; // content of the resource
+                  #     }
+                  #
+                  # The same http annotation can alternatively be expressed inside the
+                  # `GRPC API Configuration` YAML file.
+                  #
+                  #     http:
+                  #       rules:
+                  #         - selector: <proto_package_name>.Messaging.GetMessage
+                  #           get: /v1/messages/{message_id}/{sub.subfield}
+                  #
+                  # This definition enables an automatic, bidrectional mapping of HTTP
+                  # JSON to RPC. Example:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456/foo`  | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
+                  #
+                  # In general, not only fields but also field paths can be referenced
+                  # from a path pattern. Fields mapped to the path pattern cannot be
+                  # repeated and must have a primitive (non-message) type.
+                  #
+                  # Any fields in the request message which are not bound by the path
+                  # pattern automatically become (optional) HTTP query
+                  # parameters. Assume the following definition of the request message:
+                  #
+                  #
+                  #     message GetMessageRequest {
+                  #       message SubMessage {
+                  #         string subfield = 1;
+                  #       }
+                  #       string message_id = 1; // mapped to the URL
+                  #       int64 revision = 2;    // becomes a parameter
+                  #       SubMessage sub = 3;    // `sub.subfield` becomes a parameter
+                  #     }
+                  #
+                  #
+                  # This enables a HTTP JSON to RPC mapping as below:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
+                  #
+                  # Note that fields which are mapped to HTTP parameters must have a
+                  # primitive type or a repeated primitive type. Message types are not
+                  # allowed. In the case of a repeated type, the parameter can be
+                  # repeated in the URL, as in `...?param=A&param=B`.
+                  #
+                  # For HTTP method kinds which allow a request body, the `body` field
+                  # specifies the mapping. Consider a REST update method on the
+                  # message resource collection:
+                  #
+                  #
+                  #     service Messaging {
+                  #       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           put: "/v1/messages/{message_id}"
+                  #           body: "message"
+                  #         };
+                  #       }
+                  #     }
+                  #     message UpdateMessageRequest {
+                  #       string message_id = 1; // mapped to the URL
+                  #       Message message = 2;   // mapped to the body
+                  #     }
+                  #
+                  #
+                  # The following HTTP JSON to RPC mapping is enabled, where the
+                  # representation of the JSON in the request body is determined by
+                  # protos JSON encoding:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
+                  #
+                  # The special name `*` can be used in the body mapping to define that
+                  # every field not bound by the path template should be mapped to the
+                  # request body.  This enables the following alternative definition of
+                  # the update method:
+                  #
+                  #     service Messaging {
+                  #       rpc UpdateMessage(Message) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           put: "/v1/messages/{message_id}"
+                  #           body: "*"
+                  #         };
+                  #       }
+                  #     }
+                  #     message Message {
+                  #       string message_id = 1;
+                  #       string text = 2;
+                  #     }
+                  #
+                  #
+                  # The following HTTP JSON to RPC mapping is enabled:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
+                  #
+                  # Note that when using `*` in the body mapping, it is not possible to
+                  # have HTTP parameters, as all fields not bound by the path end in
+                  # the body. This makes this option more rarely used in practice of
+                  # defining REST APIs. The common usage of `*` is in custom methods
+                  # which don't use the URL at all for transferring data.
+                  #
+                  # It is possible to define multiple HTTP methods for one RPC by using
+                  # the `additional_bindings` option. Example:
+                  #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http) = {
+                  #           get: "/v1/messages/{message_id}"
+                  #           additional_bindings {
+                  #             get: "/v1/users/{user_id}/messages/{message_id}"
+                  #           }
+                  #         };
+                  #       }
+                  #     }
+                  #     message GetMessageRequest {
+                  #       string message_id = 1;
+                  #       string user_id = 2;
+                  #     }
+                  #
+                  #
+                  # This enables the following two alternative HTTP JSON to RPC
+                  # mappings:
+                  #
+                  # HTTP | RPC
+                  # -----|-----
+                  # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
+                  # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
+                  #
+                  # # Rules for HTTP mapping
+                  #
+                  # The rules for mapping HTTP path, query parameters, and body fields
+                  # to the request message are as follows:
+                  #
+                  # 1. The `body` field specifies either `*` or a field path, or is
+                  #    omitted. If omitted, it assumes there is no HTTP body.
+                  # 2. Leaf fields (recursive expansion of nested messages in the
+                  #    request) can be classified into three types:
+                  #     (a) Matched in the URL template.
+                  #     (b) Covered by body (if body is `*`, everything except (a) fields;
+                  #         else everything under the body field)
+                  #     (c) All other fields.
+                  # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
+                  # 4. Any body sent with an HTTP request can contain only (b) fields.
+                  #
+                  # The syntax of the path template is as follows:
+                  #
+                  #     Template = "/" Segments [ Verb ] ;
+                  #     Segments = Segment { "/" Segment } ;
+                  #     Segment  = "*" | "**" | LITERAL | Variable ;
+                  #     Variable = "{" FieldPath [ "=" Segments ] "}" ;
+                  #     FieldPath = IDENT { "." IDENT } ;
+                  #     Verb     = ":" LITERAL ;
+                  #
+                  # The syntax `*` matches a single path segment. It follows the semantics of
+                  # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
+                  # Expansion.
+                  #
+                  # The syntax `**` matches zero or more path segments. It follows the semantics
+                  # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
+                  # Expansion. NOTE: it must be the last segment in the path except the Verb.
+                  #
+                  # The syntax `LITERAL` matches literal text in the URL path.
+                  #
+                  # The syntax `Variable` matches the entire path as specified by its template;
+                  # this nested template must not contain further variables. If a variable
+                  # matches a single path segment, its template may be omitted, e.g. `{var}`
+                  # is equivalent to `{var=*}`.
+                  #
+                  # NOTE: the field paths in variables and in the `body` must not refer to
+                  # repeated fields or map fields.
+                  #
+                  # Use CustomHttpPattern to specify any HTTP method that is not included in the
+                  # `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
+                  # a given URL path rule. The wild-card rule is useful for services that provide
+                  # content to Web (HTML) clients.
+                "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
+                    # `*` for mapping all fields not captured by the path pattern to the HTTP
+                    # body. NOTE: the referred field must not be a repeated field and must be
+                    # present at the top-level of request message type.
+                "selector": "A String", # Selects methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+                "get": "A String", # Used for listing and getting information about resources.
+                "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                    # For media support, add instead [][google.bytestream.RestByteStream] as an
+                    # API to your configuration.
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "enabled": True or False, # Whether download is enabled.
+                  "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the download service if one is used for download.
+                },
+                "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
+                    # not contain an `additional_bindings` field themselves (that is,
+                    # the nesting may only be one level deep).
+                  # Object with schema name: HttpRule
+                ],
+                "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+                    # Bytestream, add instead
+                    # [][google.bytestream.RestByteStream] as an API to your
+                    # configuration for Bytestream methods.
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "enabled": True or False, # Whether upload is enabled.
+                  "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the upload service if one is used for upload.
+                },
+                "patch": "A String", # Used for updating a resource.
+                "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
+                    # response. Other response fields are ignored. This field is optional. When
+                    # not set, the response message will be used as HTTP body of response.
+                    # NOTE: the referred field must be not a repeated field and must be present
+                    # at the top-level of response message type.
+                "put": "A String", # Used for updating a resource.
+                "post": "A String", # Used for creating a resource.
+                "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
+                  "path": "A String", # The path matched by this custom verb.
+                  "kind": "A String", # The name of this custom HTTP verb.
+                },
+                "delete": "A String", # Used for deleting a resource.
+              },
+            ],
+          },
+          "apis": [ # A list of API interfaces exported by this service. Only the `name` field
+              # of the google.protobuf.Api needs to be provided by the configuration
+              # author, as the remaining fields will be derived from the IDL during the
+              # normalization process. It is an error to specify an API interface here
+              # which cannot be resolved against the associated IDL files.
+            { # Api is a light-weight descriptor for a protocol buffer service.
+              "name": "A String", # The fully qualified name of this api, including package name
+                  # followed by the api's simple name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+                  # message.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "mixins": [ # Included APIs. See Mixin.
+                { # Declares an API to be included in this API. The including API must
+                    # redeclare all the methods from the included API, but documentation
+                    # and options are inherited as follows:
+                    #
+                    # - If after comment and whitespace stripping, the documentation
+                    #   string of the redeclared method is empty, it will be inherited
+                    #   from the original method.
+                    #
+                    # - Each annotation belonging to the service config (http,
+                    #   visibility) which is not set in the redeclared method will be
+                    #   inherited.
+                    #
+                    # - If an http annotation is inherited, the path pattern will be
+                    #   modified as follows. Any version prefix will be replaced by the
+                    #   version of the including API plus the root path if specified.
+                    #
+                    # Example of a simple mixin:
+                    #
+                    #     package google.acl.v1;
+                    #     service AccessControl {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v1/{resource=**}:getAcl";
+                    #       }
+                    #     }
+                    #
+                    #     package google.storage.v2;
+                    #     service Storage {
+                    #       //       rpc GetAcl(GetAclRequest) returns (Acl);
+                    #
+                    #       // Get a data record.
+                    #       rpc GetData(GetDataRequest) returns (Data) {
+                    #         option (google.api.http).get = "/v2/{resource=**}";
+                    #       }
+                    #     }
+                    #
+                    # Example of a mixin configuration:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #
+                    # The mixin construct implies that all methods in `AccessControl` are
+                    # also declared with same name and request/response types in
+                    # `Storage`. A documentation generator or annotation processor will
+                    # see the effective `Storage.GetAcl` method after inherting
+                    # documentation and annotations as follows:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                    #
+                    # Note how the version in the path pattern changed from `v1` to `v2`.
+                    #
+                    # If the `root` field in the mixin is specified, it should be a
+                    # relative path under which inherited HTTP paths are placed. Example:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #         root: acls
+                    #
+                    # This implies the following inherited HTTP annotation:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                  "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+                      # are rooted.
+                  "name": "A String", # The fully qualified name of the API which is included.
+                },
+              ],
+              "syntax": "A String", # The source syntax of the service.
+              "version": "A String", # A version string for this api. If specified, must have the form
+                  # `major-version.minor-version`, as in `1.10`. If the minor version
+                  # is omitted, it defaults to zero. If the entire version field is
+                  # empty, the major version is derived from the package name, as
+                  # outlined below. If the field is not empty, the version in the
+                  # package name will be verified to be consistent with what is
+                  # provided here.
+                  #
+                  # The versioning schema uses [semantic
+                  # versioning](http://semver.org) where the major version number
+                  # indicates a breaking change and the minor version an additive,
+                  # non-breaking change. Both version numbers are signals to users
+                  # what to expect from different versions, and should be carefully
+                  # chosen based on the product plan.
+                  #
+                  # The major version is also reflected in the package name of the
+                  # API, which must end in `v<major-version>`, as in
+                  # `google.feature.v1`. For major versions 0 and 1, the suffix can
+                  # be omitted. Zero major versions must only be used for
+                  # experimental, none-GA apis.
+              "options": [ # Any metadata attached to the API.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+              "methods": [ # The methods of this api, in unspecified order.
+                { # Method represents a method of an api.
+                  "name": "A String", # The simple name of this method.
+                  "requestStreaming": True or False, # If true, the request is streamed.
+                  "responseTypeUrl": "A String", # The URL of the output message type.
+                  "requestTypeUrl": "A String", # A URL of the input message type.
+                  "responseStreaming": True or False, # If true, the response is streamed.
+                  "syntax": "A String", # The source syntax of this method.
+                  "options": [ # Any metadata attached to the method.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+          "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
+              # specific protobuf types that can appear in error detail lists of
+              # error responses.
+              #
+              # Example:
+              #
+              #     custom_error:
+              #       types:
+              #       - google.foo.v1.CustomError
+              #       - google.foo.v1.AnotherError
+            "rules": [ # The list of custom error rules that apply to individual API messages.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A custom error rule.
+                "isErrorType": True or False, # Mark this message as possible payload in error response.  Otherwise,
+                    # objects of this type will be filtered when they appear in error payload.
+                "selector": "A String", # Selects messages to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "types": [ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
+              "A String",
+            ],
+          },
+          "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
+              # elements.  Restrictions are specified using visibility labels
+              # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
+              #
+              # Users and projects can have access to more than one visibility label. The
+              # effective visibility for multiple labels is the union of each label's
+              # elements, plus any unrestricted elements.
+              #
+              # If an element and its parents have no restrictions, visibility is
+              # unconditionally granted.
+              #
+              # Example:
+              #
+              #     visibility:
+              #       rules:
+              #       - selector: google.calendar.Calendar.EnhancedSearch
+              #         restriction: TRUSTED_TESTER
+              #       - selector: google.calendar.Calendar.Delegate
+              #         restriction: GOOGLE_INTERNAL
+              #
+              # Here, all methods are publicly visible except for the restricted methods
+              # EnhancedSearch and Delegate.
+            "rules": [ # A list of visibility rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A visibility rule provides visibility configuration for an individual API
+                  # element.
+                "restriction": "A String", # A comma-separated list of visibility labels that apply to the `selector`.
+                    # Any of the listed labels can be used to grant the visibility.
+                    #
+                    # If a rule has multiple labels, removing one of the labels but not all of
+                    # them can break clients.
+                    #
+                    # Example:
+                    #
+                    #     visibility:
+                    #       rules:
+                    #       - selector: google.calendar.Calendar.EnhancedSearch
+                    #         restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
+                    #
+                    # Removing GOOGLE_INTERNAL from this restriction will break clients that
+                    # rely on this method and only had access to it through GOOGLE_INTERNAL.
+                "selector": "A String", # Selects methods, messages, fields, enums, etc. to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "metrics": [ # Defines the metrics used by this service.
+            { # Defines a metric type and its schema. Once a metric descriptor is created,
+                # deleting or altering it stops data collection and makes the metric type's
+                # existing data unusable.
+              "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
+                  # Use sentence case without an ending period, for example "Request count".
+              "description": "A String", # A detailed description of the metric, which can be used in documentation.
+              "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc.
+                  # Some combinations of `metric_kind` and `value_type` might not be supported.
+              "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
+                  # Some combinations of `metric_kind` and `value_type` might not be supported.
+              "labels": [ # The set of labels that can be used to describe a specific
+                  # instance of this metric type. For example, the
+                  # `appengine.googleapis.com/http/server/response_latencies` metric
+                  # type has a label for the HTTP response code, `response_code`, so
+                  # you can look at latencies for successful responses or just
+                  # for responses that failed.
+                { # A description of a label.
+                  "valueType": "A String", # The type of data that can be assigned to the label.
+                  "description": "A String", # A human-readable description for the label.
+                  "key": "A String", # The label key.
+                },
+              ],
+              "type": "A String", # The metric type, including its DNS name prefix. The type is not
+                  # URL-encoded.  All user-defined custom metric types have the DNS name
+                  # `custom.googleapis.com`.  Metric types should use a natural hierarchical
+                  # grouping. For example:
+                  #
+                  #     "custom.googleapis.com/invoice/paid/amount"
+                  #     "appengine.googleapis.com/http/server/response_latencies"
+              "unit": "A String", # The unit in which the metric value is reported. It is only applicable
+                  # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
+                  # supported units are a subset of [The Unified Code for Units of
+                  # Measure](http://unitsofmeasure.org/ucum.html) standard:
+                  #
+                  # **Basic units (UNIT)**
+                  #
+                  # * `bit`   bit
+                  # * `By`    byte
+                  # * `s`     second
+                  # * `min`   minute
+                  # * `h`     hour
+                  # * `d`     day
+                  #
+                  # **Prefixes (PREFIX)**
+                  #
+                  # * `k`     kilo    (10**3)
+                  # * `M`     mega    (10**6)
+                  # * `G`     giga    (10**9)
+                  # * `T`     tera    (10**12)
+                  # * `P`     peta    (10**15)
+                  # * `E`     exa     (10**18)
+                  # * `Z`     zetta   (10**21)
+                  # * `Y`     yotta   (10**24)
+                  # * `m`     milli   (10**-3)
+                  # * `u`     micro   (10**-6)
+                  # * `n`     nano    (10**-9)
+                  # * `p`     pico    (10**-12)
+                  # * `f`     femto   (10**-15)
+                  # * `a`     atto    (10**-18)
+                  # * `z`     zepto   (10**-21)
+                  # * `y`     yocto   (10**-24)
+                  # * `Ki`    kibi    (2**10)
+                  # * `Mi`    mebi    (2**20)
+                  # * `Gi`    gibi    (2**30)
+                  # * `Ti`    tebi    (2**40)
+                  #
+                  # **Grammar**
+                  #
+                  # The grammar includes the dimensionless unit `1`, such as `1/s`.
+                  #
+                  # The grammar also includes these connectors:
+                  #
+                  # * `/`    division (as an infix operator, e.g. `1/s`).
+                  # * `.`    multiplication (as an infix operator, e.g. `GBy.d`)
+                  #
+                  # The grammar for a unit is as follows:
+                  #
+                  #     Expression = Component { "." Component } { "/" Component } ;
+                  #
+                  #     Component = [ PREFIX ] UNIT [ Annotation ]
+                  #               | Annotation
+                  #               | "1"
+                  #               ;
+                  #
+                  #     Annotation = "{" NAME "}" ;
+                  #
+                  # Notes:
+                  #
+                  # * `Annotation` is just a comment if it follows a `UNIT` and is
+                  #    equivalent to `1` if it is used alone. For examples,
+                  #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
+                  # * `NAME` is a sequence of non-blank printable ASCII characters not
+                  #    containing '{' or '}'.
+              "name": "A String", # The resource name of the metric descriptor. Depending on the
+                  # implementation, the name typically includes: (1) the parent resource name
+                  # that defines the scope of the metric type or of its data; and (2) the
+                  # metric's URL-encoded type, which also appears in the `type` field of this
+                  # descriptor. For example, following is the resource name of a custom
+                  # metric within the GCP project `my-project-id`:
+                  #
+                  #     "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
+            },
+          ],
+          "enums": [ # A list of all enum types included in this API service.  Enums
+              # referenced directly or indirectly by the `apis` are automatically
+              # included.  Enums which are not referenced but shall be included
+              # should be listed here by name. Example:
+              #
+              #     enums:
+              #     - name: google.someapi.v1.SomeEnum
+            { # Enum type definition.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "enumvalue": [ # Enum value definitions.
+                { # Enum value definition.
+                  "options": [ # Protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
+                },
+              ],
+              "options": [ # Protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+              "name": "A String", # Enum type name.
+              "syntax": "A String", # The source syntax.
+            },
+          ],
+          "types": [ # A list of all proto message types included in this API service.
+              # Types referenced directly or indirectly by the `apis` are
+              # automatically included.  Messages which are not referenced but
+              # shall be included, such as types used by the `google.protobuf.Any` type,
+              # should be listed here by name. Example:
+              #
+              #     types:
+              #     - name: google.protobuf.Int32
+            { # A protocol buffer message type.
+              "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
+                "A String",
+              ],
+              "name": "A String", # The fully qualified message name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "syntax": "A String", # The source syntax.
+              "fields": [ # The list of fields.
+                { # A single field of a message type.
+                  "kind": "A String", # The field type.
+                  "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
+                      # types. The first type has index 1; zero means the type is not in the list.
+                  "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
+                      # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+                  "name": "A String", # The field name.
+                  "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
+                  "jsonName": "A String", # The field JSON name.
+                  "number": 42, # The field number.
+                  "cardinality": "A String", # The field cardinality.
+                  "options": [ # The protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "packed": True or False, # Whether to use alternative packed wire representation.
+                },
+              ],
+              "options": [ # The protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+            },
+          ],
+          "logging": { # Logging configuration of the service. # Logging configuration.
+              #
+              # The following example shows how to configure logs to be sent to the
+              # producer and consumer projects. In the example, the `activity_history`
+              # log is sent to both the producer and consumer projects, whereas the
+              # `purchase_history` log is only sent to the producer project.
+              #
+              #     monitored_resources:
+              #     - type: library.googleapis.com/branch
+              #       labels:
+              #       - key: /city
+              #         description: The city where the library branch is located in.
+              #       - key: /name
+              #         description: The name of the branch.
+              #     logs:
+              #     - name: activity_history
+              #       labels:
+              #       - key: /customer_id
+              #     - name: purchase_history
+              #     logging:
+              #       producer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         logs:
+              #         - activity_history
+              #         - purchase_history
+              #       consumer_destinations:
+              #       - monitored_resource: library.googleapis.com/branch
+              #         logs:
+              #         - activity_history
+            "producerDestinations": [ # Logging configurations for sending logs to the producer project.
+                # There can be multiple producer destinations, each one must have a
+                # different monitored resource type. A log can be used in at most
+                # one producer destination.
+              { # Configuration of a specific logging destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
+                    # Service.monitored_resources section.
+                "logs": [ # Names of the logs to be sent to this destination. Each name must
+                    # be defined in the Service.logs section. If the log name is
+                    # not a domain scoped name, it will be automatically prefixed with
+                    # the service name followed by "/".
+                  "A String",
+                ],
+              },
+            ],
+            "consumerDestinations": [ # Logging configurations for sending logs to the consumer project.
+                # There can be multiple consumer destinations, each one must have a
+                # different monitored resource type. A log can be used in at most
+                # one consumer destination.
+              { # Configuration of a specific logging destination (the producer project
+                  # or the consumer project).
+                "monitoredResource": "A String", # The monitored resource type. The type must be defined in the
+                    # Service.monitored_resources section.
+                "logs": [ # Names of the logs to be sent to this destination. Each name must
+                    # be defined in the Service.logs section. If the log name is
+                    # not a domain scoped name, it will be automatically prefixed with
+                    # the service name followed by "/".
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "name": "A String", # The DNS address at which this service is available,
+              # e.g. `calendar.googleapis.com`.
+          "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation.
+              #
+              # Example:
+              # <pre><code>documentation:
+              #   summary: >
+              #     The Google Calendar API gives access
+              #     to most calendar features.
+              #   pages:
+              #   - name: Overview
+              #     content: &#40;== include google/foo/overview.md ==&#41;
+              #   - name: Tutorial
+              #     content: &#40;== include google/foo/tutorial.md ==&#41;
+              #     subpages;
+              #     - name: Java
+              #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
+              #   rules:
+              #   - selector: google.calendar.Calendar.Get
+              #     description: >
+              #       ...
+              #   - selector: google.calendar.Calendar.Put
+              #     description: >
+              #       ...
+              # </code></pre>
+              # Documentation is provided in markdown syntax. In addition to
+              # standard markdown features, definition lists, tables and fenced
+              # code blocks are supported. Section headers can be provided and are
+              # interpreted relative to the section nesting of the context where
+              # a documentation fragment is embedded.
+              #
+              # Documentation from the IDL is merged with documentation defined
+              # via the config at normalization time, where documentation provided
+              # by config rules overrides IDL provided.
+              #
+              # A number of constructs specific to the API platform are supported
+              # in documentation text.
+              #
+              # In order to reference a proto element, the following
+              # notation can be used:
+              # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+              # To override the display text used for the link, this can be used:
+              # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+              # Text can be excluded from doc using the following notation:
+              # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+              # Comments can be made conditional using a visibility label. The below
+              # text will be only rendered if the `BETA` label is available:
+              # <pre><code>&#40;--BETA: comment for BETA users --&#41;</code></pre>
+              # A few directives are available in documentation. Note that
+              # directives must appear on a single line to be properly
+              # identified. The `include` directive includes a markdown file from
+              # an external source:
+              # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+              # The `resource_for` directive marks a message to be the resource of
+              # a collection in REST view. If it is not specified, tools attempt
+              # to infer the resource from the operations in a collection:
+              # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+              # The directive `suppress_warning` does not directly affect documentation
+              # and is documented together with service config validation.
+            "rules": [ # A list of documentation rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A documentation rule provides information about individual API elements.
+                "description": "A String", # Description of the selected API(s).
+                "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if an
+                    # element is marked as `deprecated`.
+                "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                    # qualified name of the element which may end in "*", indicating a wildcard.
+                    # Wildcards are only allowed at the end and for a whole component of the
+                    # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
+                    # specify a default for all applicable elements, the whole pattern "*"
+                    # is used.
+              },
+            ],
+            "documentationRootUrl": "A String", # The URL to the root of documentation.
+            "overview": "A String", # Declares a single overview page. For example:
+                # <pre><code>documentation:
+                #   summary: ...
+                #   overview: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # This is a shortcut for the following declaration (using pages style):
+                # <pre><code>documentation:
+                #   summary: ...
+                #   pages:
+                #   - name: Overview
+                #     content: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # Note: you cannot specify both `overview` field and `pages` field.
+            "pages": [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent
+                  # nested documentation set structure.
+                "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path} ==&#41;</code>
+                    # to include content from a Markdown file.
+                "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                    # honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                "name": "A String", # The name of the page. It will be used as an identity of the page to
+                    # generate URI of the page, text of the link to this page in navigation,
+                    # etc. The full page name (start from the root page name to this page
+                    # concatenated with `.`) can be used as reference to the page in your
+                    # documentation. For example:
+                    # <pre><code>pages:
+                    # - name: Tutorial
+                    #   content: &#40;== include tutorial.md ==&#41;
+                    #   subpages:
+                    #   - name: Java
+                    #     content: &#40;== include tutorial_java.md ==&#41;
+                    # </code></pre>
+                    # You can reference `Java` page using Markdown reference link syntax:
+                    # `Java`.
+              },
+            ],
+            "summary": "A String", # A short summary of what the service does. Can only be provided by
+                # plain text.
+          },
+          "sourceInfo": { # Source information used to create a Service Config # Output only. The source information for this configuration if available.
+            "sourceFiles": [ # All files used during config generation.
+              {
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+          },
+          "systemTypes": [ # A list of all proto message types included in this API service.
+              # It serves similar purpose as [google.api.Service.types], except that
+              # these types are not needed by user-defined APIs. Therefore, they will not
+              # show up in the generated discovery doc. This field should only be used
+              # to define system APIs in ESF.
+            { # A protocol buffer message type.
+              "oneofs": [ # The list of types appearing in `oneof` definitions in this type.
+                "A String",
+              ],
+              "name": "A String", # The fully qualified message name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "syntax": "A String", # The source syntax.
+              "fields": [ # The list of fields.
+                { # A single field of a message type.
+                  "kind": "A String", # The field type.
+                  "oneofIndex": 42, # The index of the field type in `Type.oneofs`, for message or enumeration
+                      # types. The first type has index 1; zero means the type is not in the list.
+                  "typeUrl": "A String", # The field type URL, without the scheme, for message or enumeration
+                      # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+                  "name": "A String", # The field name.
+                  "defaultValue": "A String", # The string value of the default value of this field. Proto2 syntax only.
+                  "jsonName": "A String", # The field JSON name.
+                  "number": 42, # The field number.
+                  "cardinality": "A String", # The field cardinality.
+                  "options": [ # The protocol buffer options.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                  "packed": True or False, # Whether to use alternative packed wire representation.
+                },
+              ],
+              "options": [ # The protocol buffer options.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+            },
+          ],
+          "context": { # `Context` defines which contexts an API requests. # Context configuration.
+              #
+              # Example:
+              #
+              #     context:
+              #       rules:
+              #       - selector: "*"
+              #         requested:
+              #         - google.rpc.context.ProjectContext
+              #         - google.rpc.context.OriginContext
+              #
+              # The above specifies that all methods in the API request
+              # `google.rpc.context.ProjectContext` and
+              # `google.rpc.context.OriginContext`.
+              #
+              # Available context types are defined in package
+              # `google.rpc.context`.
+            "rules": [ # A list of RPC context rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A context rule provides information about the context for an individual API
+                  # element.
+                "requested": [ # A list of full type names of requested contexts.
+                  "A String",
+                ],
+                "provided": [ # A list of full type names of provided contexts.
+                  "A String",
+                ],
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+          },
+          "title": "A String", # The product title associated with this service.
+          "endpoints": [ # Configuration for network endpoints.  If this is empty, then an endpoint
+              # with the same name as the service is automatically generated to service all
+              # defined APIs.
+            { # `Endpoint` describes a network endpoint that serves a set of APIs.
+                # A service may expose any number of endpoints, and all endpoints share the
+                # same service configuration, such as quota configuration and monitoring
+                # configuration.
+                #
+                # Example service configuration:
+                #
+                #     name: library-example.googleapis.com
+                #     endpoints:
+                #       # Below entry makes 'google.example.library.v1.Library'
+                #       # API be served from endpoint address library-example.googleapis.com.
+                #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
+                #       # it to decide whether the subsequent cross-origin request is
+                #       # allowed to proceed.
+                #     - name: library-example.googleapis.com
+                #       allow_cors: true
+              "allowCors": True or False, # Allowing
+                  # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
+                  # cross-domain traffic, would allow the backends served from this endpoint to
+                  # receive and respond to HTTP OPTIONS requests. The response will be used by
+                  # the browser to determine whether the subsequent cross-origin request is
+                  # allowed to proceed.
+              "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+                  # please specify multiple google.api.Endpoint for each of the intented
+                  # alias.
+                  #
+                  # Additional names that this endpoint will be hosted on.
+                "A String",
+              ],
+              "features": [ # The list of features enabled on this endpoint.
+                "A String",
+              ],
+              "name": "A String", # The canonical name of this endpoint.
+              "apis": [ # The list of APIs served by this endpoint.
+                "A String",
+              ],
+            },
+          ],
+          "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
+              # only be used by whitelisted users.
+            "authorization": { # Configuration of authorization. # Authorization configuration.
+                #
+                # This section determines the authorization provider, if unspecified, then no
+                # authorization check will be done.
+                #
+                # Example:
+                #
+                #     experimental:
+                #       authorization:
+                #         provider: firebaserules.googleapis.com
+              "provider": "A String", # The name of the authorization provider, such as
+                  # firebaserules.googleapis.com.
+            },
+          },
+        },
+      },
+    ],
+    "nextPageToken": "A String", # Token that can be passed to `ListAvailableServices` to resume a paginated
+        # query.
+  }</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/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index 0562d26..b38c17f 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -167,10 +167,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -215,12 +215,102 @@
               # A single `"*"` can be used as short-hand for listing every field.
           "objectId": 42, # The ID of the object to moved.
         },
+        "addFilterView": { # Adds a filter view. # Adds a filter view.
+          "filter": { # A filter view. # The filter to add. The filterViewId
+              # field is optional; if one is not set, an id will be randomly generated. (It
+              # is an error to specify the ID of a filter that already exists.)
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hiddenValues -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value will be parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=`).
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+          },
+        },
         "updateConditionalFormatRule": { # Updates a conditional format rule at the given index, # Updates an existing conditional format rule.
             # or moves a conditional format rule to another index.
           "index": 42, # The zero-based index of the rule that should be replaced or moved.
-          "newIndex": 42, # The zero-based new index the rule should end up at.
-          "sheetId": 42, # The sheet of the rule to move.  Required if new_index is set,
-              # unused otherwise.
           "rule": { # A rule describing a conditional format. # The rule that should replace the rule at the given index.
             "ranges": [ # The ranges that will be formatted if the condition is true.
                 # All the ranges must be on the same grid.
@@ -254,10 +344,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -265,7 +355,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -286,6 +375,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -296,7 +386,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -306,8 +396,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -578,6 +668,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -1117,7 +1208,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -1537,6 +1647,9 @@
               },
             },
           },
+          "sheetId": 42, # The sheet of the rule to move.  Required if new_index is set,
+              # unused otherwise.
+          "newIndex": 42, # The zero-based new index the rule should end up at.
         },
         "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range.
             # protectedRangeId.
@@ -1576,10 +1689,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1649,10 +1762,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           },
         },
@@ -1705,10 +1818,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1778,10 +1891,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           },
         },
@@ -1914,10 +2027,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -1929,13 +2042,13 @@
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value. This is only used if formula was set.
+                            # Otherwise, the column name is used.
                         "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                             #
                             # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                             # means this value refers to column `C`, whereas the offset `1` would
                             # refer to column `D`.
-                        "name": "A String", # A name to use for the value. This is only used if formula was set.
-                            # Otherwise, the column name is used.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -2074,7 +2187,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -2084,8 +2197,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -2356,6 +2469,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -2895,7 +3009,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -2903,7 +3036,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -2913,8 +3046,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -3185,6 +3318,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -3724,7 +3858,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -3736,7 +3889,6 @@
                     "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                         # BooleanConditions are used by conditional formatting,
                         # data validation, and the criteria in filters.
-                      "type": "A String", # The type of condition.
                       "values": [ # The values of the condition. The number of supported values depends
                           # on the condition type.  Some support zero values,
                           # others one or two values,
@@ -3757,6 +3909,7 @@
                               # Formulas are supported (and must begin with an `=`).
                         },
                       ],
+                      "type": "A String", # The type of condition.
                     },
                   },
                   "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -3919,10 +4072,10 @@
           "sheetId": 42, # The sheet ID to append the data to.
         },
         "duplicateSheet": { # Duplicates the contents of a sheet. # Duplicates a sheet.
-          "sourceSheetId": 42, # The sheet to duplicate.
+          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
           "insertSheetIndex": 42, # The zero-based index where the new sheet should be inserted.
               # The index of all sheets after this are incremented.
-          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
+          "sourceSheetId": 42, # The sheet to duplicate.
           "newSheetId": 42, # If set, the ID of the new sheet. If not set, an ID is chosen.
               # If set, the ID must not conflict with any existing sheet ID.
               # If set, it must be non-negative.
@@ -4169,10 +4322,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -4226,10 +4379,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -4301,10 +4454,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -4379,10 +4532,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -4579,10 +4732,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -4590,7 +4743,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -4611,6 +4763,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -4621,7 +4774,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -4631,8 +4784,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -4903,6 +5056,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -5442,7 +5596,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -5984,10 +6157,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "values": [ # A list of values to include in the pivot table.
                 { # The definition of how a value in a pivot table should be calculated.
@@ -5999,13 +6172,13 @@
                       # CUSTOM.
                       # If sourceColumnOffset is set, then `CUSTOM`
                       # is not supported.
+                  "name": "A String", # A name to use for the value. This is only used if formula was set.
+                      # Otherwise, the column name is used.
                   "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                       #
                       # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                       # means this value refers to column `C`, whereas the offset `1` would
                       # refer to column `D`.
-                  "name": "A String", # A name to use for the value. This is only used if formula was set.
-                      # Otherwise, the column name is used.
                 },
               ],
               "criteria": { # An optional mapping of filters per source column offset.
@@ -6144,7 +6317,7 @@
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                     # information about the supported patterns.
                 "type": "A String", # The type of the number format.
                     # When writing, this field must be set.
@@ -6154,8 +6327,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
                 "left": 42, # The left padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -6426,6 +6599,7 @@
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
               "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -6965,7 +7139,26 @@
                   "style": "A String", # The style of the border.
                 },
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the counterclockwise
+                    # direction, whereas for RTL they are in the clockwise direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
             },
             "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                 #
@@ -6973,7 +7166,7 @@
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                     # information about the supported patterns.
                 "type": "A String", # The type of the number format.
                     # When writing, this field must be set.
@@ -6983,8 +7176,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
                 "left": 42, # The left padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -7255,6 +7448,7 @@
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
               "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -7794,7 +7988,26 @@
                   "style": "A String", # The style of the border.
                 },
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the counterclockwise
+                    # direction, whereas for RTL they are in the clockwise direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
             },
             "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                 #
@@ -7806,7 +8019,6 @@
               "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -7827,6 +8039,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
             },
             "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -8016,10 +8229,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
         "findReplace": { # Finds and replaces data in cells over a range, sheet, or all sheets. # Finds and replaces occurrences of some text with other text.
@@ -8028,7 +8241,7 @@
           "matchEntireCell": True or False, # True if the find value should match the entire cell.
           "allSheets": True or False, # True to find/replace over all sheets.
           "matchCase": True or False, # True if the search is case sensitive.
-          "sheetId": 42, # The sheet to find/replace over.
+          "find": "A String", # The value to search.
           "range": { # A range on a sheet. # The range to find/replace over.
               # All indexes are zero-based.
               # Indexes are half open, e.g the start index is inclusive
@@ -8059,10 +8272,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "searchByRegex": True or False, # True if the find value is a regex.
               # The regular expression and replacement should follow Java regex rules
@@ -8072,7 +8285,7 @@
               # has `"Google Docs"`, then searching for `"o.* (.*)"` with a replacement of
               # `"$1 Rocks"` would change the contents of the cells to
               # `"GSheets Rocks"` and `"GDocs Rocks"` respectively.
-          "find": "A String", # The value to search.
+          "sheetId": 42, # The sheet to find/replace over.
           "replacement": "A String", # The value to use as the replacement.
         },
         "setBasicFilter": { # Sets the basic filter associated with a sheet. # Sets the basic filter on a sheet.
@@ -8107,10 +8320,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -8131,7 +8344,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -8152,6 +8364,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -8162,6 +8375,7 @@
               # The root 'properties' is implied and should not be specified.
               # A single `"*"` can be used as short-hand for listing every field.
           "properties": { # Properties of a spreadsheet. # The properties to update.
+            "title": "A String", # The title of the spreadsheet.
             "locale": "A String", # The locale of the spreadsheet in one of the following formats:
                 #
                 # * an ISO 639-1 language code such as `en`
@@ -8171,9 +8385,6 @@
                 # * a combination of the ISO language code and country code, such as `en_US`
                 #
                 # Note: when updating this field, not all locales/languages are supported.
-            "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-                # `America/New_York`. If the time zone isn't recognized, this may
-                # be a custom time zone such as `GMT-07:00`.
             "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
             "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
                 # CellData.effectiveFormat will not be set if the
@@ -8182,7 +8393,7 @@
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                     # information about the supported patterns.
                 "type": "A String", # The type of the number format.
                     # When writing, this field must be set.
@@ -8192,8 +8403,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
                 "left": 42, # The left padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -8464,6 +8675,7 @@
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
               "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -9003,16 +9215,50 @@
                   "style": "A String", # The style of the border.
                 },
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the counterclockwise
+                    # direction, whereas for RTL they are in the clockwise direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
             },
-            "title": "A String", # The title of the spreadsheet.
+            "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+                # calculation.  Absence of this field means that circular references will
+                # result in calculation errors.
+                # calculation.
+              "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+                  # less than this threshold value, the calculation rounds stop.
+              "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+                  # rounds to perform.
+            },
+            "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+                # `America/New_York`. If the time zone isn't recognized, this may
+                # be a custom time zone such as `GMT-07:00`.
           },
         },
         "updateCells": { # Updates all cells in a range with new data. # Updates many cells at once.
-          "fields": "A String", # The fields of CellData that should be updated.
-              # At least one field must be specified.
-              # The root is the CellData; 'row.values.' should not be specified.
-              # A single `"*"` can be used as short-hand for listing every field.
+          "start": { # A coordinate in a sheet. # The coordinate to start writing data at.
+              # Any number of rows and columns (including a different number of
+              # columns per row) may be written.
+              # All indexes are zero-based.
+            "rowIndex": 42, # The row index of the coordinate.
+            "columnIndex": 42, # The column index of the coordinate.
+            "sheetId": 42, # The sheet this coordinate is on.
+          },
           "range": { # A range on a sheet. # The range to write data to.
               #
               # If the data in rows does not cover the entire requested range,
@@ -9046,10 +9292,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "rows": [ # The data to write.
             { # Data about each cell in a row.
@@ -9159,10 +9405,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -9174,13 +9420,13 @@
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value. This is only used if formula was set.
+                            # Otherwise, the column name is used.
                         "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                             #
                             # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                             # means this value refers to column `C`, whereas the offset `1` would
                             # refer to column `D`.
-                        "name": "A String", # A name to use for the value. This is only used if formula was set.
-                            # Otherwise, the column name is used.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -9319,7 +9565,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -9329,8 +9575,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -9601,6 +9847,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -10140,7 +10387,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -10148,7 +10414,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -10158,8 +10424,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -10430,6 +10696,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -10969,7 +11236,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -10981,7 +11267,6 @@
                     "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                         # BooleanConditions are used by conditional formatting,
                         # data validation, and the criteria in filters.
-                      "type": "A String", # The type of condition.
                       "values": [ # The values of the condition. The number of supported values depends
                           # on the condition type.  Some support zero values,
                           # others one or two values,
@@ -11002,6 +11287,7 @@
                               # Formulas are supported (and must begin with an `=`).
                         },
                       ],
+                      "type": "A String", # The type of condition.
                     },
                   },
                   "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -11161,14 +11447,10 @@
               ],
             },
           ],
-          "start": { # A coordinate in a sheet. # The coordinate to start writing data at.
-              # Any number of rows and columns (including a different number of
-              # columns per row) may be written.
-              # All indexes are zero-based.
-            "rowIndex": 42, # The row index of the coordinate.
-            "columnIndex": 42, # The column index of the coordinate.
-            "sheetId": 42, # The sheet this coordinate is on.
-          },
+          "fields": "A String", # The fields of CellData that should be updated.
+              # At least one field must be specified.
+              # The root is the CellData; 'row.values.' should not be specified.
+              # A single `"*"` can be used as short-hand for listing every field.
         },
         "autoFill": { # Fills in more data based on existing data. # Automatically fills in more data based on existing data.
           "useAlternateSeries": True or False, # True if we should generate data with the "alternate" series.
@@ -11205,14 +11487,19 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill.
               # This explicitly lists the source of the autofill and where to
               # extend that data.
+            "fillLength": 42, # The number of rows or columns that data should be filled into.
+                # Positive numbers expand beyond the last row or last column
+                # of the source.  Negative numbers expand before the first row
+                # or first column of the source.
+            "dimension": "A String", # The dimension that data should be filled into.
             "source": { # A range on a sheet. # The location of the data to use as the source of the autofill.
                 # All indexes are zero-based.
                 # Indexes are half open, e.g the start index is inclusive
@@ -11243,16 +11530,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "dimension": "A String", # The dimension that data should be filled into.
-            "fillLength": 42, # The number of rows or columns that data should be filled into.
-                # Positive numbers expand beyond the last row or last column
-                # of the source.  Negative numbers expand before the first row
-                # or first column of the source.
           },
         },
         "appendDimension": { # Appends rows or columns to the end of a sheet. # Appends dimensions to the end of a sheet.
@@ -11295,10 +11577,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -12452,10 +12734,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
         "setDataValidation": { # Sets a data validation rule to every cell in the range. # Sets data validation for one or more cells.
@@ -12490,10 +12772,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "rule": { # A data validation rule. # The data validation rule to set on each cell in the range,
               # or empty to clear the data validation in the range.
@@ -12504,7 +12786,6 @@
             "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                 # BooleanConditions are used by conditional formatting,
                 # data validation, and the criteria in filters.
-              "type": "A String", # The type of condition.
               "values": [ # The values of the condition. The number of supported values depends
                   # on the condition type.  Some support zero values,
                   # others one or two values,
@@ -12525,9 +12806,51 @@
                       # Formulas are supported (and must begin with an `=`).
                 },
               ],
+              "type": "A String", # The type of condition.
             },
           },
         },
+        "deleteRange": { # Deletes a range of cells, shifting other cells into the deleted area. # Deletes a range of cells from a sheet, shifting the remaining cells.
+          "range": { # A range on a sheet. # The range of cells to delete.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "shiftDimension": "A String", # The dimension from which deleted cells will be replaced with.
+              # If ROWS, existing cells will be shifted upward to
+              # replace the deleted cells. If COLUMNS, existing cells
+              # will be shifted left to replace the deleted cells.
+        },
         "clearBasicFilter": { # Clears the basic filter, if any exists on the sheet. # Clears the basic filter on a sheet.
           "sheetId": 42, # The sheet ID on which the basic filter should be cleared.
         },
@@ -12566,10 +12889,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -12630,10 +12953,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -12687,10 +13010,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -12762,10 +13085,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -12840,10 +13163,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -13059,10 +13382,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
               # CUSTOM.
@@ -13102,10 +13425,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -14224,108 +14547,55 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "mergeType": "A String", # How the cells should be merged.
         },
         "deleteProtectedRange": { # Deletes the protected range with the given ID. # Deletes a protected range.
           "protectedRangeId": 42, # The ID of the protected range to delete.
         },
-        "addFilterView": { # Adds a filter view. # Adds a filter view.
-          "filter": { # A filter view. # The filter to add. The filterViewId
-              # field is optional; if one is not set, an id will be randomly generated. (It
-              # is an error to specify the ID of a filter that already exists.)
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value will be parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=`).
-                    },
-                  ],
-                },
-              },
-            },
+        "insertRange": { # Inserts cells into a range, shifting the existing cells over or down. # Inserts new cells in a sheet, shifting the existing cells.
+          "range": { # A range on a sheet. # The range to insert new cells into.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
+          "shiftDimension": "A String", # The dimension which will be shifted when inserting cells.
+              # If ROWS, existing cells will be shifted down.
+              # If COLUMNS, existing cells will be shifted right.
         },
         "deleteSheet": { # Deletes the requested sheet. # Deletes a sheet.
           "sheetId": 42, # The ID of the sheet to delete.
@@ -14907,10 +15177,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "innerVertical": { # A border along a cell. # The vertical border to put within the range.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
@@ -15214,10 +15484,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "destination": { # A coordinate in a sheet. # The top-left coordinate where the data should be pasted.
               # All indexes are zero-based.
@@ -15258,10 +15528,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "destination": { # A range on a sheet. # The location to paste to. If the range covers a span that's
               # a multiple of the source's height or width, then the
@@ -15297,10 +15567,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "pasteOrientation": "A String", # How that data should be oriented when pasting.
         },
@@ -15513,10 +15783,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -15586,10 +15856,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -15610,7 +15880,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -15631,6 +15900,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -15695,15 +15965,16 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "name": "A String", # The name of the named range.
         },
       ],
       "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet.
+        "title": "A String", # The title of the spreadsheet.
         "locale": "A String", # The locale of the spreadsheet in one of the following formats:
             #
             # * an ISO 639-1 language code such as `en`
@@ -15713,9 +15984,6 @@
             # * a combination of the ISO language code and country code, such as `en_US`
             #
             # Note: when updating this field, not all locales/languages are supported.
-        "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-            # `America/New_York`. If the time zone isn't recognized, this may
-            # be a custom time zone such as `GMT-07:00`.
         "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
         "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
             # CellData.effectiveFormat will not be set if the
@@ -15724,7 +15992,7 @@
           "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
             "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                 # the user's locale will be used if necessary for the given type.
-                # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                 # information about the supported patterns.
             "type": "A String", # The type of the number format.
                 # When writing, this field must be set.
@@ -15734,8 +16002,8 @@
               # When updating padding, every field must be specified.
             "top": 42, # The top padding of the cell.
             "right": 42, # The right padding of the cell.
-            "bottom": 42, # The bottom padding of the cell.
             "left": 42, # The left padding of the cell.
+            "bottom": 42, # The bottom padding of the cell.
           },
           "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
           "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -16006,6 +16274,7 @@
             "italic": True or False, # True if the text is italicized.
             "underline": True or False, # True if the text is underlined.
           },
+          "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
           "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
           "borders": { # The borders of the cell. # The borders of the cell.
             "top": { # A border along a cell. # The top border of the cell.
@@ -16545,9 +16814,39 @@
               "style": "A String", # The style of the border.
             },
           },
-          "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+          "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+            "angle": 42, # The angle between the standard orientation and the desired orientation.
+                # Measured in degrees. Valid values are between -90 and 90. Positive
+                # angles are angled upwards, negative are angled downwards.
+                #
+                # Note: For LTR text direction positive angles are in the counterclockwise
+                # direction, whereas for RTL they are in the clockwise direction
+            "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                # characters is unchanged.
+                # For example:
+                #
+                #     | V |
+                #     | e |
+                #     | r |
+                #     | t |
+                #     | i |
+                #     | c |
+                #     | a |
+                #     | l |
+          },
         },
-        "title": "A String", # The title of the spreadsheet.
+        "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+            # calculation.  Absence of this field means that circular references will
+            # result in calculation errors.
+            # calculation.
+          "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+              # less than this threshold value, the calculation rounds stop.
+          "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+              # rounds to perform.
+        },
+        "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+            # `America/New_York`. If the time zone isn't recognized, this may
+            # be a custom time zone such as `GMT-07:00`.
       },
       "sheets": [ # The sheets that are part of a spreadsheet.
         { # A sheet in a spreadsheet.
@@ -16585,10 +16884,10 @@
                     # Empty ranges are typically not meaningful and are usually rendered in the
                     # UI as `#REF!`.
                   "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                   "sheetId": 42, # The sheet this range is on.
                   "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                 },
               ],
               "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -16596,7 +16895,6 @@
                     # the format will be applied.
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -16617,6 +16915,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
                 "format": { # The format of a cell. # The format to apply.
                     # Conditional formatting can only apply a subset of formatting:
@@ -16627,7 +16926,7 @@
                   "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                     "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                         # the user's locale will be used if necessary for the given type.
-                        # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                        # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                         # information about the supported patterns.
                     "type": "A String", # The type of the number format.
                         # When writing, this field must be set.
@@ -16637,8 +16936,8 @@
                       # When updating padding, every field must be specified.
                     "top": 42, # The top padding of the cell.
                     "right": 42, # The right padding of the cell.
-                    "bottom": 42, # The bottom padding of the cell.
                     "left": 42, # The left padding of the cell.
+                    "bottom": 42, # The bottom padding of the cell.
                   },
                   "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                   "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -16909,6 +17208,7 @@
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
+                  "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                   "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                   "borders": { # The borders of the cell. # The borders of the cell.
                     "top": { # A border along a cell. # The top border of the cell.
@@ -17448,7 +17748,26 @@
                       "style": "A String", # The style of the border.
                     },
                   },
-                  "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                  "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                    "angle": 42, # The angle between the standard orientation and the desired orientation.
+                        # Measured in degrees. Valid values are between -90 and 90. Positive
+                        # angles are angled upwards, negative are angled downwards.
+                        #
+                        # Note: For LTR text direction positive angles are in the counterclockwise
+                        # direction, whereas for RTL they are in the clockwise direction
+                    "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                        # characters is unchanged.
+                        # For example:
+                        #
+                        #     | V |
+                        #     | e |
+                        #     | r |
+                        #     | t |
+                        #     | i |
+                        #     | c |
+                        #     | a |
+                        #     | l |
+                  },
                 },
               },
               "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -17901,10 +18220,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                   # by-column basis throughout all the columns in the range. At least one of
@@ -19020,10 +19339,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -19057,10 +19376,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -19081,7 +19400,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -19102,6 +19420,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -19181,10 +19500,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19238,10 +19557,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19313,10 +19632,10 @@
                                 # Empty ranges are typically not meaningful and are usually rendered in the
                                 # UI as `#REF!`.
                               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                               "sheetId": 42, # The sheet this range is on.
                               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19391,10 +19710,10 @@
                                 # Empty ranges are typically not meaningful and are usually rendered in the
                                 # UI as `#REF!`.
                               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                               "sheetId": 42, # The sheet this range is on.
                               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19596,10 +19915,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "sortSpecs": [ # The sort order per column. Later specifications are used when values
                   # are equal in the earlier specifications.
@@ -19620,7 +19939,6 @@
                       #  it will still be hidden.)
                       # BooleanConditions are used by conditional formatting,
                       # data validation, and the criteria in filters.
-                    "type": "A String", # The type of condition.
                     "values": [ # The values of the condition. The number of supported values depends
                         # on the condition type.  Some support zero values,
                         # others one or two values,
@@ -19641,6 +19959,7 @@
                             # Formulas are supported (and must begin with an `=`).
                       },
                     ],
+                    "type": "A String", # The type of condition.
                   },
                 },
               },
@@ -19680,10 +19999,10 @@
                     # Empty ranges are typically not meaningful and are usually rendered in the
                     # UI as `#REF!`.
                   "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                   "sheetId": 42, # The sheet this range is on.
                   "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                 },
               ],
               "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -19753,10 +20072,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             },
           ],
@@ -19769,7 +20088,6 @@
               # while the second one will have `startRow 14` (zero-based row 15),
               # and `startColumn 3` (zero-based column D).
             { # Data in the grid, as well as metadata about the dimensions.
-              "startRow": 42, # The first row this GridData refers to, zero-based.
               "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                   # in start_row.
                 { # Properties about a dimension.
@@ -19779,16 +20097,8 @@
                       # This field is read-only.
                 },
               ],
+              "startRow": 42, # The first row this GridData refers to, zero-based.
               "startColumn": 42, # The first column this GridData refers to, zero-based.
-              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                  # in start_column.
-                { # Properties about a dimension.
-                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                      # This field is read-only.
-                },
-              ],
               "rowData": [ # The data in the grid, one entry per row,
                   # starting with the row in startRow.
                   # The values in RowData will correspond to columns starting
@@ -19900,10 +20210,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                         "values": [ # A list of values to include in the pivot table.
                           { # The definition of how a value in a pivot table should be calculated.
@@ -19915,13 +20225,13 @@
                                 # CUSTOM.
                                 # If sourceColumnOffset is set, then `CUSTOM`
                                 # is not supported.
+                            "name": "A String", # A name to use for the value. This is only used if formula was set.
+                                # Otherwise, the column name is used.
                             "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                                 #
                                 # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                                 # means this value refers to column `C`, whereas the offset `1` would
                                 # refer to column `D`.
-                            "name": "A String", # A name to use for the value. This is only used if formula was set.
-                                # Otherwise, the column name is used.
                           },
                         ],
                         "criteria": { # An optional mapping of filters per source column offset.
@@ -20060,7 +20370,7 @@
                         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                               # the user's locale will be used if necessary for the given type.
-                              # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                              # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                               # information about the supported patterns.
                           "type": "A String", # The type of the number format.
                               # When writing, this field must be set.
@@ -20070,8 +20380,8 @@
                             # When updating padding, every field must be specified.
                           "top": 42, # The top padding of the cell.
                           "right": 42, # The right padding of the cell.
-                          "bottom": 42, # The bottom padding of the cell.
                           "left": 42, # The left padding of the cell.
+                          "bottom": 42, # The bottom padding of the cell.
                         },
                         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -20342,6 +20652,7 @@
                           "italic": True or False, # True if the text is italicized.
                           "underline": True or False, # True if the text is underlined.
                         },
+                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                         "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                         "borders": { # The borders of the cell. # The borders of the cell.
                           "top": { # A border along a cell. # The top border of the cell.
@@ -20881,7 +21192,26 @@
                             "style": "A String", # The style of the border.
                           },
                         },
-                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                        "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                          "angle": 42, # The angle between the standard orientation and the desired orientation.
+                              # Measured in degrees. Valid values are between -90 and 90. Positive
+                              # angles are angled upwards, negative are angled downwards.
+                              #
+                              # Note: For LTR text direction positive angles are in the counterclockwise
+                              # direction, whereas for RTL they are in the clockwise direction
+                          "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                              # characters is unchanged.
+                              # For example:
+                              #
+                              #     | V |
+                              #     | e |
+                              #     | r |
+                              #     | t |
+                              #     | i |
+                              #     | c |
+                              #     | a |
+                              #     | l |
+                        },
                       },
                       "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                           #
@@ -20889,7 +21219,7 @@
                         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                               # the user's locale will be used if necessary for the given type.
-                              # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                              # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                               # information about the supported patterns.
                           "type": "A String", # The type of the number format.
                               # When writing, this field must be set.
@@ -20899,8 +21229,8 @@
                             # When updating padding, every field must be specified.
                           "top": 42, # The top padding of the cell.
                           "right": 42, # The right padding of the cell.
-                          "bottom": 42, # The bottom padding of the cell.
                           "left": 42, # The left padding of the cell.
+                          "bottom": 42, # The bottom padding of the cell.
                         },
                         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -21171,6 +21501,7 @@
                           "italic": True or False, # True if the text is italicized.
                           "underline": True or False, # True if the text is underlined.
                         },
+                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                         "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                         "borders": { # The borders of the cell. # The borders of the cell.
                           "top": { # A border along a cell. # The top border of the cell.
@@ -21710,7 +22041,26 @@
                             "style": "A String", # The style of the border.
                           },
                         },
-                        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                        "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                          "angle": 42, # The angle between the standard orientation and the desired orientation.
+                              # Measured in degrees. Valid values are between -90 and 90. Positive
+                              # angles are angled upwards, negative are angled downwards.
+                              #
+                              # Note: For LTR text direction positive angles are in the counterclockwise
+                              # direction, whereas for RTL they are in the clockwise direction
+                          "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                              # characters is unchanged.
+                              # For example:
+                              #
+                              #     | V |
+                              #     | e |
+                              #     | r |
+                              #     | t |
+                              #     | i |
+                              #     | c |
+                              #     | a |
+                              #     | l |
+                        },
                       },
                       "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                           #
@@ -21722,7 +22072,6 @@
                         "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                             # BooleanConditions are used by conditional formatting,
                             # data validation, and the criteria in filters.
-                          "type": "A String", # The type of condition.
                           "values": [ # The values of the condition. The number of supported values depends
                               # on the condition type.  Some support zero values,
                               # others one or two values,
@@ -21743,6 +22092,7 @@
                                   # Formulas are supported (and must begin with an `=`).
                             },
                           ],
+                          "type": "A String", # The type of condition.
                         },
                       },
                       "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -21902,6 +22252,15 @@
                   ],
                 },
               ],
+              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                  # in start_column.
+                { # Properties about a dimension.
+                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                      # This field is read-only.
+                },
+              ],
             },
           ],
           "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -22111,10 +22470,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -22135,7 +22494,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -22156,6 +22514,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -22418,10 +22777,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22475,10 +22834,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22550,10 +22909,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -22628,10 +22987,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -22830,10 +23189,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -22841,7 +23200,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -22862,6 +23220,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -22872,7 +23231,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -22882,8 +23241,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -23154,6 +23513,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -23693,7 +24053,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -24147,10 +24526,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -24158,7 +24537,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -24179,6 +24557,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -24189,7 +24568,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -24199,8 +24578,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -24471,6 +24850,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -25010,7 +25390,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -25633,10 +26032,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -25675,10 +26074,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -25748,10 +26147,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           },
         },
@@ -25789,10 +26188,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -25800,7 +26199,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -25821,6 +26219,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -25831,7 +26230,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -25841,8 +26240,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -26113,6 +26512,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -26652,7 +27052,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -27105,10 +27524,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -28234,10 +28653,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -28258,7 +28677,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -28279,6 +28697,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -28333,15 +28752,16 @@
           # Empty ranges are typically not meaningful and are usually rendered in the
           # UI as `#REF!`.
         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
         "sheetId": 42, # The sheet this range is on.
         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
       },
       "name": "A String", # The name of the named range.
     },
   ],
   "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet.
+    "title": "A String", # The title of the spreadsheet.
     "locale": "A String", # The locale of the spreadsheet in one of the following formats:
         #
         # * an ISO 639-1 language code such as `en`
@@ -28351,9 +28771,6 @@
         # * a combination of the ISO language code and country code, such as `en_US`
         #
         # Note: when updating this field, not all locales/languages are supported.
-    "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-        # `America/New_York`. If the time zone isn't recognized, this may
-        # be a custom time zone such as `GMT-07:00`.
     "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
     "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
         # CellData.effectiveFormat will not be set if the
@@ -28362,7 +28779,7 @@
       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
             # the user's locale will be used if necessary for the given type.
-            # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+            # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
             # information about the supported patterns.
         "type": "A String", # The type of the number format.
             # When writing, this field must be set.
@@ -28372,8 +28789,8 @@
           # When updating padding, every field must be specified.
         "top": 42, # The top padding of the cell.
         "right": 42, # The right padding of the cell.
-        "bottom": 42, # The bottom padding of the cell.
         "left": 42, # The left padding of the cell.
+        "bottom": 42, # The bottom padding of the cell.
       },
       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -28644,6 +29061,7 @@
         "italic": True or False, # True if the text is italicized.
         "underline": True or False, # True if the text is underlined.
       },
+      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
       "borders": { # The borders of the cell. # The borders of the cell.
         "top": { # A border along a cell. # The top border of the cell.
@@ -29183,9 +29601,39 @@
           "style": "A String", # The style of the border.
         },
       },
-      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+      "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+        "angle": 42, # The angle between the standard orientation and the desired orientation.
+            # Measured in degrees. Valid values are between -90 and 90. Positive
+            # angles are angled upwards, negative are angled downwards.
+            #
+            # Note: For LTR text direction positive angles are in the counterclockwise
+            # direction, whereas for RTL they are in the clockwise direction
+        "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+            # characters is unchanged.
+            # For example:
+            #
+            #     | V |
+            #     | e |
+            #     | r |
+            #     | t |
+            #     | i |
+            #     | c |
+            #     | a |
+            #     | l |
+      },
     },
-    "title": "A String", # The title of the spreadsheet.
+    "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+        # calculation.  Absence of this field means that circular references will
+        # result in calculation errors.
+        # calculation.
+      "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+          # less than this threshold value, the calculation rounds stop.
+      "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+          # rounds to perform.
+    },
+    "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+        # `America/New_York`. If the time zone isn't recognized, this may
+        # be a custom time zone such as `GMT-07:00`.
   },
   "sheets": [ # The sheets that are part of a spreadsheet.
     { # A sheet in a spreadsheet.
@@ -29223,10 +29671,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -29234,7 +29682,6 @@
                 # the format will be applied.
                 # BooleanConditions are used by conditional formatting,
                 # data validation, and the criteria in filters.
-              "type": "A String", # The type of condition.
               "values": [ # The values of the condition. The number of supported values depends
                   # on the condition type.  Some support zero values,
                   # others one or two values,
@@ -29255,6 +29702,7 @@
                       # Formulas are supported (and must begin with an `=`).
                 },
               ],
+              "type": "A String", # The type of condition.
             },
             "format": { # The format of a cell. # The format to apply.
                 # Conditional formatting can only apply a subset of formatting:
@@ -29265,7 +29713,7 @@
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                     # information about the supported patterns.
                 "type": "A String", # The type of the number format.
                     # When writing, this field must be set.
@@ -29275,8 +29723,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
                 "left": 42, # The left padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -29547,6 +29995,7 @@
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
               "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
               "borders": { # The borders of the cell. # The borders of the cell.
                 "top": { # A border along a cell. # The top border of the cell.
@@ -30086,7 +30535,26 @@
                   "style": "A String", # The style of the border.
                 },
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the counterclockwise
+                    # direction, whereas for RTL they are in the clockwise direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
             },
           },
           "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -30539,10 +31007,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
               # by-column basis throughout all the columns in the range. At least one of
@@ -31658,10 +32126,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
       ],
       "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -31695,10 +32163,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "sortSpecs": [ # The sort order per column. Later specifications are used when values
             # are equal in the earlier specifications.
@@ -31719,7 +32187,6 @@
                 #  it will still be hidden.)
                 # BooleanConditions are used by conditional formatting,
                 # data validation, and the criteria in filters.
-              "type": "A String", # The type of condition.
               "values": [ # The values of the condition. The number of supported values depends
                   # on the condition type.  Some support zero values,
                   # others one or two values,
@@ -31740,6 +32207,7 @@
                       # Formulas are supported (and must begin with an `=`).
                 },
               ],
+              "type": "A String", # The type of condition.
             },
           },
         },
@@ -31819,10 +32287,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -31876,10 +32344,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -31951,10 +32419,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32029,10 +32497,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32234,10 +32702,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -32258,7 +32726,6 @@
                   #  it will still be hidden.)
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -32279,6 +32746,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
             },
           },
@@ -32318,10 +32786,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -32391,10 +32859,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
       ],
@@ -32407,7 +32875,6 @@
           # while the second one will have `startRow 14` (zero-based row 15),
           # and `startColumn 3` (zero-based column D).
         { # Data in the grid, as well as metadata about the dimensions.
-          "startRow": 42, # The first row this GridData refers to, zero-based.
           "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
               # in start_row.
             { # Properties about a dimension.
@@ -32417,16 +32884,8 @@
                   # This field is read-only.
             },
           ],
+          "startRow": 42, # The first row this GridData refers to, zero-based.
           "startColumn": 42, # The first column this GridData refers to, zero-based.
-          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-              # in start_column.
-            { # Properties about a dimension.
-              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-              "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                  # This field is read-only.
-            },
-          ],
           "rowData": [ # The data in the grid, one entry per row,
               # starting with the row in startRow.
               # The values in RowData will correspond to columns starting
@@ -32538,10 +32997,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -32553,13 +33012,13 @@
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value. This is only used if formula was set.
+                            # Otherwise, the column name is used.
                         "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                             #
                             # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                             # means this value refers to column `C`, whereas the offset `1` would
                             # refer to column `D`.
-                        "name": "A String", # A name to use for the value. This is only used if formula was set.
-                            # Otherwise, the column name is used.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -32698,7 +33157,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -32708,8 +33167,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -32980,6 +33439,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -33519,7 +33979,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
@@ -33527,7 +34006,7 @@
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
-                          # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                          # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                           # information about the supported patterns.
                       "type": "A String", # The type of the number format.
                           # When writing, this field must be set.
@@ -33537,8 +34016,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
                       "left": 42, # The left padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -33809,6 +34288,7 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                     "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                     "borders": { # The borders of the cell. # The borders of the cell.
                       "top": { # A border along a cell. # The top border of the cell.
@@ -34348,7 +34828,26 @@
                         "style": "A String", # The style of the border.
                       },
                     },
-                    "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                    "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                      "angle": 42, # The angle between the standard orientation and the desired orientation.
+                          # Measured in degrees. Valid values are between -90 and 90. Positive
+                          # angles are angled upwards, negative are angled downwards.
+                          #
+                          # Note: For LTR text direction positive angles are in the counterclockwise
+                          # direction, whereas for RTL they are in the clockwise direction
+                      "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                          # characters is unchanged.
+                          # For example:
+                          #
+                          #     | V |
+                          #     | e |
+                          #     | r |
+                          #     | t |
+                          #     | i |
+                          #     | c |
+                          #     | a |
+                          #     | l |
+                    },
                   },
                   "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                       #
@@ -34360,7 +34859,6 @@
                     "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                         # BooleanConditions are used by conditional formatting,
                         # data validation, and the criteria in filters.
-                      "type": "A String", # The type of condition.
                       "values": [ # The values of the condition. The number of supported values depends
                           # on the condition type.  Some support zero values,
                           # others one or two values,
@@ -34381,6 +34879,7 @@
                               # Formulas are supported (and must begin with an `=`).
                         },
                       ],
+                      "type": "A String", # The type of condition.
                     },
                   },
                   "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -34540,6 +35039,15 @@
               ],
             },
           ],
+          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+              # in start_column.
+            { # Properties about a dimension.
+              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+              "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                  # This field is read-only.
+            },
+          ],
         },
       ],
       "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -34750,15 +35258,16 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
     ],
     "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet.
+      "title": "A String", # The title of the spreadsheet.
       "locale": "A String", # The locale of the spreadsheet in one of the following formats:
           #
           # * an ISO 639-1 language code such as `en`
@@ -34768,9 +35277,6 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
-      "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-          # `America/New_York`. If the time zone isn't recognized, this may
-          # be a custom time zone such as `GMT-07:00`.
       "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if the
@@ -34779,7 +35285,7 @@
         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
               # the user's locale will be used if necessary for the given type.
-              # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+              # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
               # information about the supported patterns.
           "type": "A String", # The type of the number format.
               # When writing, this field must be set.
@@ -34789,8 +35295,8 @@
             # When updating padding, every field must be specified.
           "top": 42, # The top padding of the cell.
           "right": 42, # The right padding of the cell.
-          "bottom": 42, # The bottom padding of the cell.
           "left": 42, # The left padding of the cell.
+          "bottom": 42, # The bottom padding of the cell.
         },
         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -35061,6 +35567,7 @@
           "italic": True or False, # True if the text is italicized.
           "underline": True or False, # True if the text is underlined.
         },
+        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
         "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
         "borders": { # The borders of the cell. # The borders of the cell.
           "top": { # A border along a cell. # The top border of the cell.
@@ -35600,9 +36107,39 @@
             "style": "A String", # The style of the border.
           },
         },
-        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+        "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+          "angle": 42, # The angle between the standard orientation and the desired orientation.
+              # Measured in degrees. Valid values are between -90 and 90. Positive
+              # angles are angled upwards, negative are angled downwards.
+              #
+              # Note: For LTR text direction positive angles are in the counterclockwise
+              # direction, whereas for RTL they are in the clockwise direction
+          "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+              # characters is unchanged.
+              # For example:
+              #
+              #     | V |
+              #     | e |
+              #     | r |
+              #     | t |
+              #     | i |
+              #     | c |
+              #     | a |
+              #     | l |
+        },
       },
-      "title": "A String", # The title of the spreadsheet.
+      "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+          # calculation.  Absence of this field means that circular references will
+          # result in calculation errors.
+          # calculation.
+        "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+            # less than this threshold value, the calculation rounds stop.
+        "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+            # rounds to perform.
+      },
+      "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+          # `America/New_York`. If the time zone isn't recognized, this may
+          # be a custom time zone such as `GMT-07:00`.
     },
     "sheets": [ # The sheets that are part of a spreadsheet.
       { # A sheet in a spreadsheet.
@@ -35640,10 +36177,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -35651,7 +36188,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -35672,6 +36208,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -35682,7 +36219,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -35692,8 +36229,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -35964,6 +36501,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -36503,7 +37041,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -36956,10 +37513,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -38075,10 +38632,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -38112,10 +38669,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -38136,7 +38693,6 @@
                   #  it will still be hidden.)
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -38157,6 +38713,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
             },
           },
@@ -38236,10 +38793,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38293,10 +38850,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38368,10 +38925,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -38446,10 +39003,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -38651,10 +39208,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -38675,7 +39232,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -38696,6 +39252,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -38735,10 +39292,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -38808,10 +39365,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           },
         ],
@@ -38824,7 +39381,6 @@
             # while the second one will have `startRow 14` (zero-based row 15),
             # and `startColumn 3` (zero-based column D).
           { # Data in the grid, as well as metadata about the dimensions.
-            "startRow": 42, # The first row this GridData refers to, zero-based.
             "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                 # in start_row.
               { # Properties about a dimension.
@@ -38834,16 +39390,8 @@
                     # This field is read-only.
               },
             ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
             "startColumn": 42, # The first column this GridData refers to, zero-based.
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -38955,10 +39503,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
@@ -38970,13 +39518,13 @@
                               # CUSTOM.
                               # If sourceColumnOffset is set, then `CUSTOM`
                               # is not supported.
+                          "name": "A String", # A name to use for the value. This is only used if formula was set.
+                              # Otherwise, the column name is used.
                           "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                               #
                               # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                               # means this value refers to column `C`, whereas the offset `1` would
                               # refer to column `D`.
-                          "name": "A String", # A name to use for the value. This is only used if formula was set.
-                              # Otherwise, the column name is used.
                         },
                       ],
                       "criteria": { # An optional mapping of filters per source column offset.
@@ -39115,7 +39663,7 @@
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
-                            # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                            # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                             # information about the supported patterns.
                         "type": "A String", # The type of the number format.
                             # When writing, this field must be set.
@@ -39125,8 +39673,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
                         "left": 42, # The left padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -39397,6 +39945,7 @@
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -39936,7 +40485,26 @@
                           "style": "A String", # The style of the border.
                         },
                       },
-                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                      "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                        "angle": 42, # The angle between the standard orientation and the desired orientation.
+                            # Measured in degrees. Valid values are between -90 and 90. Positive
+                            # angles are angled upwards, negative are angled downwards.
+                            #
+                            # Note: For LTR text direction positive angles are in the counterclockwise
+                            # direction, whereas for RTL they are in the clockwise direction
+                        "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                            # characters is unchanged.
+                            # For example:
+                            #
+                            #     | V |
+                            #     | e |
+                            #     | r |
+                            #     | t |
+                            #     | i |
+                            #     | c |
+                            #     | a |
+                            #     | l |
+                      },
                     },
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
@@ -39944,7 +40512,7 @@
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
-                            # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                            # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                             # information about the supported patterns.
                         "type": "A String", # The type of the number format.
                             # When writing, this field must be set.
@@ -39954,8 +40522,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
                         "left": 42, # The left padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -40226,6 +40794,7 @@
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -40765,7 +41334,26 @@
                           "style": "A String", # The style of the border.
                         },
                       },
-                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                      "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                        "angle": 42, # The angle between the standard orientation and the desired orientation.
+                            # Measured in degrees. Valid values are between -90 and 90. Positive
+                            # angles are angled upwards, negative are angled downwards.
+                            #
+                            # Note: For LTR text direction positive angles are in the counterclockwise
+                            # direction, whereas for RTL they are in the clockwise direction
+                        "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                            # characters is unchanged.
+                            # For example:
+                            #
+                            #     | V |
+                            #     | e |
+                            #     | r |
+                            #     | t |
+                            #     | i |
+                            #     | c |
+                            #     | a |
+                            #     | l |
+                      },
                     },
                     "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                         #
@@ -40777,7 +41365,6 @@
                       "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                           # BooleanConditions are used by conditional formatting,
                           # data validation, and the criteria in filters.
-                        "type": "A String", # The type of condition.
                         "values": [ # The values of the condition. The number of supported values depends
                             # on the condition type.  Some support zero values,
                             # others one or two values,
@@ -40798,6 +41385,7 @@
                                 # Formulas are supported (and must begin with an `=`).
                           },
                         ],
+                        "type": "A String", # The type of condition.
                       },
                     },
                     "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -40957,6 +41545,15 @@
                 ],
               },
             ],
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -41197,15 +41794,16 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
     ],
     "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet.
+      "title": "A String", # The title of the spreadsheet.
       "locale": "A String", # The locale of the spreadsheet in one of the following formats:
           #
           # * an ISO 639-1 language code such as `en`
@@ -41215,9 +41813,6 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
-      "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-          # `America/New_York`. If the time zone isn't recognized, this may
-          # be a custom time zone such as `GMT-07:00`.
       "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if the
@@ -41226,7 +41821,7 @@
         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
               # the user's locale will be used if necessary for the given type.
-              # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+              # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
               # information about the supported patterns.
           "type": "A String", # The type of the number format.
               # When writing, this field must be set.
@@ -41236,8 +41831,8 @@
             # When updating padding, every field must be specified.
           "top": 42, # The top padding of the cell.
           "right": 42, # The right padding of the cell.
-          "bottom": 42, # The bottom padding of the cell.
           "left": 42, # The left padding of the cell.
+          "bottom": 42, # The bottom padding of the cell.
         },
         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -41508,6 +42103,7 @@
           "italic": True or False, # True if the text is italicized.
           "underline": True or False, # True if the text is underlined.
         },
+        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
         "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
         "borders": { # The borders of the cell. # The borders of the cell.
           "top": { # A border along a cell. # The top border of the cell.
@@ -42047,9 +42643,39 @@
             "style": "A String", # The style of the border.
           },
         },
-        "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+        "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+          "angle": 42, # The angle between the standard orientation and the desired orientation.
+              # Measured in degrees. Valid values are between -90 and 90. Positive
+              # angles are angled upwards, negative are angled downwards.
+              #
+              # Note: For LTR text direction positive angles are in the counterclockwise
+              # direction, whereas for RTL they are in the clockwise direction
+          "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+              # characters is unchanged.
+              # For example:
+              #
+              #     | V |
+              #     | e |
+              #     | r |
+              #     | t |
+              #     | i |
+              #     | c |
+              #     | a |
+              #     | l |
+        },
       },
-      "title": "A String", # The title of the spreadsheet.
+      "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+          # calculation.  Absence of this field means that circular references will
+          # result in calculation errors.
+          # calculation.
+        "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+            # less than this threshold value, the calculation rounds stop.
+        "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+            # rounds to perform.
+      },
+      "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+          # `America/New_York`. If the time zone isn't recognized, this may
+          # be a custom time zone such as `GMT-07:00`.
     },
     "sheets": [ # The sheets that are part of a spreadsheet.
       { # A sheet in a spreadsheet.
@@ -42087,10 +42713,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -42098,7 +42724,6 @@
                   # the format will be applied.
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -42119,6 +42744,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
               "format": { # The format of a cell. # The format to apply.
                   # Conditional formatting can only apply a subset of formatting:
@@ -42129,7 +42755,7 @@
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                       # information about the supported patterns.
                   "type": "A String", # The type of the number format.
                       # When writing, this field must be set.
@@ -42139,8 +42765,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
                   "left": 42, # The left padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -42411,6 +43037,7 @@
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                 "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                 "borders": { # The borders of the cell. # The borders of the cell.
                   "top": { # A border along a cell. # The top border of the cell.
@@ -42950,7 +43577,26 @@
                     "style": "A String", # The style of the border.
                   },
                 },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the counterclockwise
+                      # direction, whereas for RTL they are in the clockwise direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
               },
             },
             "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
@@ -43403,10 +44049,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -44522,10 +45168,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -44559,10 +45205,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -44583,7 +45229,6 @@
                   #  it will still be hidden.)
                   # BooleanConditions are used by conditional formatting,
                   # data validation, and the criteria in filters.
-                "type": "A String", # The type of condition.
                 "values": [ # The values of the condition. The number of supported values depends
                     # on the condition type.  Some support zero values,
                     # others one or two values,
@@ -44604,6 +45249,7 @@
                         # Formulas are supported (and must begin with an `=`).
                   },
                 ],
+                "type": "A String", # The type of condition.
               },
             },
           },
@@ -44683,10 +45329,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -44740,10 +45386,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -44815,10 +45461,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -44893,10 +45539,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -45098,10 +45744,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -45122,7 +45768,6 @@
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
-                  "type": "A String", # The type of condition.
                   "values": [ # The values of the condition. The number of supported values depends
                       # on the condition type.  Some support zero values,
                       # others one or two values,
@@ -45143,6 +45788,7 @@
                           # Formulas are supported (and must begin with an `=`).
                     },
                   ],
+                  "type": "A String", # The type of condition.
                 },
               },
             },
@@ -45182,10 +45828,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -45255,10 +45901,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           },
         ],
@@ -45271,7 +45917,6 @@
             # while the second one will have `startRow 14` (zero-based row 15),
             # and `startColumn 3` (zero-based column D).
           { # Data in the grid, as well as metadata about the dimensions.
-            "startRow": 42, # The first row this GridData refers to, zero-based.
             "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
                 # in start_row.
               { # Properties about a dimension.
@@ -45281,16 +45926,8 @@
                     # This field is read-only.
               },
             ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
             "startColumn": 42, # The first column this GridData refers to, zero-based.
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -45402,10 +46039,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
@@ -45417,13 +46054,13 @@
                               # CUSTOM.
                               # If sourceColumnOffset is set, then `CUSTOM`
                               # is not supported.
+                          "name": "A String", # A name to use for the value. This is only used if formula was set.
+                              # Otherwise, the column name is used.
                           "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
                               #
                               # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
                               # means this value refers to column `C`, whereas the offset `1` would
                               # refer to column `D`.
-                          "name": "A String", # A name to use for the value. This is only used if formula was set.
-                              # Otherwise, the column name is used.
                         },
                       ],
                       "criteria": { # An optional mapping of filters per source column offset.
@@ -45562,7 +46199,7 @@
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
-                            # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                            # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                             # information about the supported patterns.
                         "type": "A String", # The type of the number format.
                             # When writing, this field must be set.
@@ -45572,8 +46209,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
                         "left": 42, # The left padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -45844,6 +46481,7 @@
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -46383,7 +47021,26 @@
                           "style": "A String", # The style of the border.
                         },
                       },
-                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                      "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                        "angle": 42, # The angle between the standard orientation and the desired orientation.
+                            # Measured in degrees. Valid values are between -90 and 90. Positive
+                            # angles are angled upwards, negative are angled downwards.
+                            #
+                            # Note: For LTR text direction positive angles are in the counterclockwise
+                            # direction, whereas for RTL they are in the clockwise direction
+                        "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                            # characters is unchanged.
+                            # For example:
+                            #
+                            #     | V |
+                            #     | e |
+                            #     | r |
+                            #     | t |
+                            #     | i |
+                            #     | c |
+                            #     | a |
+                            #     | l |
+                      },
                     },
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
@@ -46391,7 +47048,7 @@
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
-                            # See the [Date and Number Formats guide](/sheets/guides/formats) for more
+                            # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more
                             # information about the supported patterns.
                         "type": "A String", # The type of the number format.
                             # When writing, this field must be set.
@@ -46401,8 +47058,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
                         "left": 42, # The left padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -46673,6 +47330,7 @@
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
+                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
                       "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
                       "borders": { # The borders of the cell. # The borders of the cell.
                         "top": { # A border along a cell. # The top border of the cell.
@@ -47212,7 +47870,26 @@
                           "style": "A String", # The style of the border.
                         },
                       },
-                      "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                      "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                        "angle": 42, # The angle between the standard orientation and the desired orientation.
+                            # Measured in degrees. Valid values are between -90 and 90. Positive
+                            # angles are angled upwards, negative are angled downwards.
+                            #
+                            # Note: For LTR text direction positive angles are in the counterclockwise
+                            # direction, whereas for RTL they are in the clockwise direction
+                        "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                            # characters is unchanged.
+                            # For example:
+                            #
+                            #     | V |
+                            #     | e |
+                            #     | r |
+                            #     | t |
+                            #     | i |
+                            #     | c |
+                            #     | a |
+                            #     | l |
+                      },
                     },
                     "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any.
                         #
@@ -47224,7 +47901,6 @@
                       "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
                           # BooleanConditions are used by conditional formatting,
                           # data validation, and the criteria in filters.
-                        "type": "A String", # The type of condition.
                         "values": [ # The values of the condition. The number of supported values depends
                             # on the condition type.  Some support zero values,
                             # others one or two values,
@@ -47245,6 +47921,7 @@
                                 # Formulas are supported (and must begin with an `=`).
                           },
                         ],
+                        "type": "A String", # The type of condition.
                       },
                     },
                     "textFormatRuns": [ # Runs of rich text applied to subsections of the cell.  Runs are only valid
@@ -47404,6 +48081,15 @@
                 ],
               },
             ],
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.
diff --git a/docs/dyn/sheets_v4.spreadsheets.values.html b/docs/dyn/sheets_v4.spreadsheets.values.html
index 3817cd9..afa78ae 100644
--- a/docs/dyn/sheets_v4.spreadsheets.values.html
+++ b/docs/dyn/sheets_v4.spreadsheets.values.html
@@ -81,7 +81,7 @@
   <code><a href="#batchClear">batchClear(spreadsheetId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Clears one or more ranges of values from a spreadsheet.</p>
 <p class="toc_element">
-  <code><a href="#batchGet">batchGet(spreadsheetId, valueRenderOption=None, majorDimension=None, ranges=None, dateTimeRenderOption=None, x__xgafv=None)</a></code></p>
+  <code><a href="#batchGet">batchGet(spreadsheetId, ranges=None, majorDimension=None, dateTimeRenderOption=None, valueRenderOption=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns one or more ranges of values from a spreadsheet.</p>
 <p class="toc_element">
   <code><a href="#batchUpdate">batchUpdate(spreadsheetId, body, x__xgafv=None)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#clear">clear(spreadsheetId, range, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Clears values from a spreadsheet.</p>
 <p class="toc_element">
-  <code><a href="#get">get(spreadsheetId, range, valueRenderOption=None, majorDimension=None, dateTimeRenderOption=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(spreadsheetId, range, majorDimension=None, dateTimeRenderOption=None, valueRenderOption=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a range of values from a spreadsheet.</p>
 <p class="toc_element">
   <code><a href="#update">update(spreadsheetId, range, body, valueInputOption=None, x__xgafv=None, responseValueRenderOption=None, includeValuesInResponse=None, responseDateTimeRenderOption=None)</a></code></p>
@@ -102,9 +102,9 @@
 existing data and find a "table" within that range. Values will be
 appended to the next row of the table, starting with the first column of
 the table. See the
-[guide](/sheets/guides/values#appending_values)
+[guide](/sheets/api/guides/values#appending_values)
 and
-[sample code](/sheets/samples/writing#append_values)
+[sample code](/sheets/api/samples/writing#append_values)
 for specific details of how tables are detected and data is appended.
 
 The caller must specify the spreadsheet ID, range, and
@@ -263,14 +263,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="batchGet">batchGet(spreadsheetId, valueRenderOption=None, majorDimension=None, ranges=None, dateTimeRenderOption=None, x__xgafv=None)</code>
+    <code class="details" id="batchGet">batchGet(spreadsheetId, ranges=None, majorDimension=None, dateTimeRenderOption=None, valueRenderOption=None, x__xgafv=None)</code>
   <pre>Returns one or more ranges of values from a spreadsheet.
 The caller must specify the spreadsheet ID and one or more ranges.
 
 Args:
   spreadsheetId: string, The ID of the spreadsheet to retrieve data from. (required)
-  valueRenderOption: string, How values should be represented in the output.
-The default render option is ValueRenderOption.FORMATTED_VALUE.
+  ranges: string, The A1 notation of the values to retrieve. (repeated)
   majorDimension: string, The major dimension that results should use.
 
 For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
@@ -278,11 +277,12 @@
 `[[1,2],[3,4]]`,
 whereas requesting `range=A1:B2,majorDimension=COLUMNS` will return
 `[[1,3],[2,4]]`.
-  ranges: string, The A1 notation of the values to retrieve. (repeated)
   dateTimeRenderOption: string, How dates, times, and durations should be represented in the output.
 This is ignored if value_render_option is
 FORMATTED_VALUE.
 The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].
+  valueRenderOption: string, How values should be represented in the output.
+The default render option is ValueRenderOption.FORMATTED_VALUE.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -346,13 +346,8 @@
     The object takes the form of:
 
 { # The request for updating more than one range of values in a spreadsheet.
-    "includeValuesInResponse": True or False, # Determines if the update response should include the values
-        # of the cells that were updated. By default, responses
-        # do not include the updated values. The `updatedData` field within
-        # each of the BatchUpdateValuesResponse.responses will contain
-        # the updated values. If the range to write was larger than than the range
-        # actually written, the response will include all values in the requested
-        # range (excluding trailing empty rows and columns).
+    "responseValueRenderOption": "A String", # Determines how values in the response should be rendered.
+        # The default render option is ValueRenderOption.FORMATTED_VALUE.
     "data": [ # The new values to apply to the spreadsheet.
       { # Data within a range of the spreadsheet.
         "range": "A String", # The range the values cover, in A1 notation.
@@ -389,13 +384,18 @@
             # When writing, if this field is not set, it defaults to ROWS.
       },
     ],
-    "responseValueRenderOption": "A String", # Determines how values in the response should be rendered.
-        # The default render option is ValueRenderOption.FORMATTED_VALUE.
-    "valueInputOption": "A String", # How the input data should be interpreted.
     "responseDateTimeRenderOption": "A String", # Determines how dates, times, and durations in the response should be
         # rendered. This is ignored if response_value_render_option is
         # FORMATTED_VALUE.
         # The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].
+    "valueInputOption": "A String", # How the input data should be interpreted.
+    "includeValuesInResponse": True or False, # Determines if the update response should include the values
+        # of the cells that were updated. By default, responses
+        # do not include the updated values. The `updatedData` field within
+        # each of the BatchUpdateValuesResponse.responses will contain
+        # the updated values. If the range to write was larger than than the range
+        # actually written, the response will include all values in the requested
+        # range (excluding trailing empty rows and columns).
   }
 
   x__xgafv: string, V1 error format.
@@ -453,11 +453,11 @@
         "updatedCells": 42, # The number of cells updated.
       },
     ],
-    "totalUpdatedCells": 42, # The total number of cells updated.
     "totalUpdatedColumns": 42, # The total number of columns where at least one cell in the column was
         # updated.
-    "totalUpdatedRows": 42, # The total number of rows where at least one cell in the row was updated.
+    "totalUpdatedCells": 42, # The total number of cells updated.
     "spreadsheetId": "A String", # The spreadsheet the updates were applied to.
+    "totalUpdatedRows": 42, # The total number of rows where at least one cell in the row was updated.
     "totalUpdatedSheets": 42, # The total number of sheets where at least one cell in the sheet was
         # updated.
   }</pre>
@@ -497,15 +497,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(spreadsheetId, range, valueRenderOption=None, majorDimension=None, dateTimeRenderOption=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(spreadsheetId, range, majorDimension=None, dateTimeRenderOption=None, valueRenderOption=None, x__xgafv=None)</code>
   <pre>Returns a range of values from a spreadsheet.
 The caller must specify the spreadsheet ID and a range.
 
 Args:
   spreadsheetId: string, The ID of the spreadsheet to retrieve data from. (required)
   range: string, The A1 notation of the values to retrieve. (required)
-  valueRenderOption: string, How values should be represented in the output.
-The default render option is ValueRenderOption.FORMATTED_VALUE.
   majorDimension: string, The major dimension that results should use.
 
 For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`,
@@ -517,6 +515,8 @@
 This is ignored if value_render_option is
 FORMATTED_VALUE.
 The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].
+  valueRenderOption: string, How values should be represented in the output.
+The default render option is ValueRenderOption.FORMATTED_VALUE.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/slides_v1.presentations.html b/docs/dyn/slides_v1.presentations.html
index 95b1c7b..b9b50f2 100644
--- a/docs/dyn/slides_v1.presentations.html
+++ b/docs/dyn/slides_v1.presentations.html
@@ -152,11 +152,12 @@
               # grapheme cluster.
         },
         "insertTableRows": { # Inserts rows into a table. # Inserts rows into a table.
-          "number": 42, # The number of rows to be inserted. Maximum 20 per request.
           "insertBelow": True or False, # Whether to insert new rows below the reference cell location.
               #
               # - `True`: insert below the cell.
               # - `False`: insert above the cell.
+          "tableObjectId": "A String", # The table to insert rows into.
+          "number": 42, # The number of rows to be inserted. Maximum 20 per request.
           "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which rows will be inserted.
               #
               # A new row will be inserted above (or below) the row where the reference
@@ -165,7 +166,6 @@
             "rowIndex": 42, # The 0-based row index.
             "columnIndex": 42, # The 0-based column index.
           },
-          "tableObjectId": "A String", # The table to insert rows into.
         },
         "createVideo": { # Creates a video. # Creates a video.
           "source": "A String", # The video source.
@@ -208,6 +208,10 @@
               },
             },
           },
+          "id": "A String", # The video source's unique identifier for this video.
+              #
+              # e.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0,
+              # the ID is 7U3axjORYZ0.
           "objectId": "A String", # A user-supplied object ID.
               #
               # If you specify an ID, it must be unique among all pages and page elements
@@ -218,10 +222,6 @@
               # The length of the ID must not be less than 5 or greater than 50.
               #
               # If you don't specify an ID, a unique one is generated.
-          "id": "A String", # The video source's unique identifier for this video.
-              #
-              # e.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0,
-              # the ID is 7U3axjORYZ0.
         },
         "deleteTableRow": { # Deletes a row from a table. # Deletes a row from a table.
           "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which a row will be deleted.
@@ -253,14 +253,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -284,6 +276,14 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
@@ -294,7 +294,11 @@
             "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                 # This property is read-only.
               "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                  # stops. This property is read-only.
+                  # stops.
+                  #
+                  # The colors in the gradient will replace the corresponding colors at
+                  # the same position in the color palette and apply to the image. This
+                  # property is read-only.
                 { # A color and position in a gradient band.
                   "color": { # A themeable solid color value. # The color of the gradient stop.
                     "themeColor": "A String", # An opaque theme color.
@@ -304,19 +308,24 @@
                       "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                     },
                   },
-                  "position": 3.14, # The relative position of the color stop in the gradient band measured
-                      # in percentage. The value should be in the interval [0.0, 1.0].
                   "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                       # fully opaque.
+                  "position": 3.14, # The relative position of the color stop in the gradient band measured
+                      # in percentage. The value should be in the interval [0.0, 1.0].
                 },
               ],
+              "name": "A String", # The name of the recolor effect.
+                  #
+                  # The name is determined from the `recolor_stops` by matching the gradient
+                  # against the colors in the page's current color scheme. This property is
+                  # read-only.
             },
             "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -349,12 +358,12 @@
                   # object's original width.
               "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                   # Rotation angle is applied after the offset.
-              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                  # above the original bounding rectangle bottom edge, relative to the object's
-                  # original height.
               "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                   # to the left of the original bounding rectangle right edge, relative to the
                   # object's original width.
+              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                  # above the original bounding rectangle bottom edge, relative to the object's
+                  # original height.
               "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                   # below the original bounding rectangle top edge, relative to the object's
                   # original height.
@@ -470,6 +479,25 @@
               #
               # If you don't specify an ID, a unique one is generated.
         },
+        "replaceAllShapesWithSheetsChart": { # Replaces all shapes that match the given criteria with the provided Google # Replaces all shapes matching some criteria with a Google Sheets chart.
+            # Sheets chart. The chart will be scaled and centered to fit within the bounds
+            # of the original shape.
+            #
+            # NOTE: Replacing shapes with a chart requires at least one of the
+            # spreadsheets.readonly, spreadsheets, drive.readonly, or drive OAuth scopes.
+          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
+          "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet.
+          "linkingMode": "A String", # The mode with which the chart is linked to the source spreadsheet. When
+              # not specified, the chart will be an image that is not linked.
+          "containsText": { # A criteria that matches a specific string of text in a shape or table. # The criteria that the shapes must match in order to be replaced. The
+              # request will replace all of the shapes that contain the given text.
+            "text": "A String", # The text to search for in the shape or table.
+            "matchCase": True or False, # Indicates whether the search should respect case:
+                #
+                # - `True`: the search is case sensitive.
+                # - `False`: the search is case insensitive.
+          },
+        },
         "createImage": { # Creates an image. # Creates an image.
           "url": "A String", # The image URL.
               #
@@ -533,6 +561,18 @@
               # If you don't specify an ID, a unique one is generated.
         },
         "updateVideoProperties": { # Update the properties of a Video. # Updates the properties of a Video.
+          "fields": "A String", # The fields that should be updated.
+              #
+              # At least one field must be specified. The root `videoProperties` is
+              # implied and should not be specified. A single `"*"` can be used as
+              # short-hand for listing every field.
+              #
+              # For example to update the video outline color, set `fields` to
+              # `"outline.outlineFill.solidFill.color"`.
+              #
+              # To reset a property to its default value, include its field name in the
+              # field mask but leave the field itself unset.
+          "objectId": "A String", # The object ID of the video the updates are applied to.
           "videoProperties": { # The properties of the Video. # The video properties to update.
             "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                 # videos created in the Slides editor.
@@ -541,14 +581,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -572,83 +604,175 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
               },
             },
           },
-          "objectId": "A String", # The object ID of the video the updates are applied to.
-          "fields": "A String", # The fields that should be updated.
-              #
-              # At least one field must be specified. The root `videoProperties` is
-              # implied and should not be specified. A single `"*"` can be used as
-              # short-hand for listing every field.
-              #
-              # For example to update the video outline color, set `fields` to
-              # `"outline.outlineFill.solidFill.color"`.
-              #
-              # To reset a property to its default value, include its field name in the
-              # field mask but leave the field itself unset.
         },
-        "updateLineProperties": { # Updates the properties of a Line. # Updates the properties of a Line.
+        "deleteParagraphBullets": { # Deletes bullets from all of the paragraphs that overlap with the given text # Deletes bullets from paragraphs.
+            # index range.
+            #
+            # The nesting level of each paragraph will be visually preserved by adding
+            # indent to the start of the corresponding paragraph.
+          "cellLocation": { # A location of a single table cell within a table. # The optional table cell location if the text to be modified is in a table
+              # cell. If present, the object_id must refer to a table.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
+          },
+          "objectId": "A String", # The object ID of the shape or table containing the text to delete bullets
+              # from.
+          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to delete bullets from, based on TextElement indexes.
+              # text.
+            "endIndex": 42, # The optional zero-based index of the end of the collection.
+                # Required for `SPECIFIC_RANGE` delete mode.
+            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
+                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+            "type": "A String", # The type of range.
+          },
+        },
+        "updateTextStyle": { # Update the styling of text in a Shape or # Updates the styling of text within a Shape or Table.
+            # Table.
           "fields": "A String", # The fields that should be updated.
               #
-              # At least one field must be specified. The root `lineProperties` is
-              # implied and should not be specified. A single `"*"` can be used as
-              # short-hand for listing every field.
+              # At least one field must be specified. The root `style` is implied and
+              # should not be specified. A single `"*"` can be used as short-hand for
+              # listing every field.
               #
-              # For example to update the line solid fill color, set `fields` to
-              # `"lineFill.solidFill.color"`.
+              # For example, to update the text style to bold, set `fields` to `"bold"`.
               #
               # To reset a property to its default value, include its field name in the
               # field mask but leave the field itself unset.
-          "lineProperties": { # The properties of the Line. # The line properties to update.
+          "style": { # Represents the styling that can be applied to a TextRun. # The style(s) to set on the text.
               #
-              # When unset, these fields default to values that match the appearance of
-              # new lines created in the Slides editor.
-            "dashStyle": "A String", # The dash style of the line.
-            "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+              # If the value for a particular style matches that of the parent, that style
+              # will be set to inherit.
+              #
+              # Certain text style changes may cause other changes meant to mirror the
+              # behavior of the Slides editor. See the documentation of
+              # TextStyle for more information.
+              #
+              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+              # inherited from the parent. Which text styles are inherited depend on the
+              # nesting level of lists:
+              #
+              # * A text run in a paragraph that is not in a list will inherit its text style
+              #   from the the newline character in the paragraph at the 0 nesting level of
+              #   the list inside the parent placeholder.
+              # * A text run in a paragraph that is in a list will inherit its text style
+              #   from the newline character in the paragraph at its corresponding nesting
+              #   level of the list inside the parent placeholder.
+              #
+              # Inherited text styles are represented as unset fields in this message. If
+              # text is contained in a shape without a parent placeholder, unsetting these
+              # fields will revert the style to a value matching the defaults in the Slides
+              # editor.
+            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                # transparent, depending on if the `opaque_color` field in it is set.
+              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                  # a transparent color.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+              },
+            },
+            "bold": True or False, # Whether or not the text is rendered as bold.
+            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                #
+                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                # rendered in a smaller font size, computed based on the `font_size` field.
+                # The `font_size` itself is not affected by changes in this field.
+            "strikethrough": True or False, # Whether or not the text is struck through.
+            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+            "fontFamily": "A String", # The font family of the text.
+                #
+                # The font family can be any font from the Font menu in Slides or from
+                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                # unrecognized, the text is rendered in `Arial`.
+                #
+                # Some fonts can affect the weight of the text. If an update request
+                # specifies values for both `font_family` and `bold`, the explicitly-set
+                # `bold` value is used.
+            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                # points.
               "magnitude": 3.14, # The magnitude.
               "unit": "A String", # The units for magnitude.
             },
-            "endArrow": "A String", # The style of the arrow at the end of the line.
-            "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+            "italic": True or False, # Whether or not the text is italicized.
+            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                # are not inherited from parent text.
+                #
+                # Changing the link in an update request causes some other changes to the
+                # text style of the range:
+                #
+                # * When setting a link, the text foreground color will be set to
+                #   ThemeColorType.HYPERLINK and the text will
+                #   be underlined. If these fields are modified in the same
+                #   request, those values will be used instead of the link defaults.
+                # * Setting a link on a text range that overlaps with an existing link will
+                #   also update the existing link to point to the new URL.
+                # * Links are not settable on newline characters. As a result, setting a link
+                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                #   will separate the newline character(s) into their own text runs. The
+                #   link will be applied separately to the runs before and after the newline.
+                # * Removing a link will update the text style of the range to match the
+                #   style of the preceding text (or the default text styles if the preceding
+                #   text is another link) unless different styles are being set in the same
+                #   request.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
-            "startArrow": "A String", # The style of the arrow at the beginning of the line.
-            "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
-                # lines created in the Slides editor.
-              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                  # specified color value.
-                  #
-                  # If any field is unset, its value may be inherited from a parent placeholder
-                  # if it exists.
-                "color": { # A themeable solid color value. # The color value of the solid fill.
-                  "themeColor": "A String", # An opaque theme color.
-                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
+            "underline": True or False, # Whether or not the text is underlined.
+            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                # transparent, depending on if the `opaque_color` field in it is set.
+              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                  # a transparent color.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                 },
-                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                    # That is, the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color.
               },
             },
           },
-          "objectId": "A String", # The object ID of the line the update is applied to.
+          "cellLocation": { # A location of a single table cell within a table. # The location of the cell in the table containing the text to style. If
+              # `object_id` refers to a table, `cell_location` must have a value.
+              # Otherwise, it must not.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
+          },
+          "objectId": "A String", # The object ID of the shape or table with the text to be styled.
+          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to style.
+              #
+              # The range may be extended to include adjacent newlines.
+              #
+              # If the range fully contains a paragraph belonging to a list, the
+              # paragraph's bullet is also updated with the matching text style.
+              # text.
+            "endIndex": 42, # The optional zero-based index of the end of the collection.
+                # Required for `SPECIFIC_RANGE` delete mode.
+            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
+                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+            "type": "A String", # The type of range.
+          },
         },
         "deleteText": { # Deletes text from a shape or a table cell. # Deletes text from a shape or a table cell.
           "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to delete, based on TextElement indexes.
@@ -771,138 +895,64 @@
               # field mask but leave the field itself unset.
           "objectId": "A String", # The object ID of the page the update is applied to.
         },
-        "updateTextStyle": { # Update the styling of text in a Shape or # Updates the styling of text within a Shape or Table.
-            # Table.
+        "updateLineProperties": { # Updates the properties of a Line. # Updates the properties of a Line.
           "fields": "A String", # The fields that should be updated.
               #
-              # At least one field must be specified. The root `style` is implied and
-              # should not be specified. A single `"*"` can be used as short-hand for
-              # listing every field.
+              # At least one field must be specified. The root `lineProperties` is
+              # implied and should not be specified. A single `"*"` can be used as
+              # short-hand for listing every field.
               #
-              # For example to update the text style to bold, set `fields` to `"bold"`.
+              # For example to update the line solid fill color, set `fields` to
+              # `"lineFill.solidFill.color"`.
               #
-              # To reset a property to its default value,
-              # include its field name in the field mask but leave the field itself unset.
-          "style": { # Represents the styling that can be applied to a TextRun. # The style(s) to set on the text.
+              # To reset a property to its default value, include its field name in the
+              # field mask but leave the field itself unset.
+          "lineProperties": { # The properties of the Line. # The line properties to update.
               #
-              # If the value for a particular style matches that of the parent, that style
-              # will be set to inherit.
-              #
-              # Certain text style changes may cause other changes meant to mirror the
-              # behavior of the Slides editor. See the documentation of
-              # TextStyle for more information.
-              #
-              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-              # inherited from the parent. Which text styles are inherited depend on the
-              # nesting level of lists:
-              #
-              # * A text run in a paragraph that is not in a list will inherit its text style
-              #   from the the newline character in the paragraph at the 0 nesting level of
-              #   the list inside the parent placeholder.
-              # * A text run in a paragraph that is in a list will inherit its text style
-              #   from the newline character in the paragraph at its corresponding nesting
-              #   level of the list inside the parent placeholder.
-              #
-              # Inherited text styles are represented as unset fields in this message. If
-              # text is contained in a shape without a parent placeholder, unsetting these
-              # fields will revert the style to a value matching the defaults in the Slides
-              # editor.
-            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                # transparent, depending on if the `opaque_color` field in it is set.
-              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                  # a transparent color.
-                "themeColor": "A String", # An opaque theme color.
-                "rgbColor": { # An RGB color. # An opaque RGB color.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                },
-              },
-            },
-            "bold": True or False, # Whether or not the text is bold.
-            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                #
-                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                # rendered in a smaller font size, computed based on the `font_size` field.
-                # The `font_size` itself is not affected by changes in this field.
-            "strikethrough": True or False, # Whether or not the text is struck through.
-            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-            "fontFamily": "A String", # The font family of the text.
-                #
-                # The font family can be any font from the Font menu in Slides or from
-                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                # unrecognized, the text is rendered in `Arial`.
-                #
-                # Some fonts can affect the weight of the text. If an update request
-                # specifies values for both `font_family` and `bold`, the explicitly-set
-                # `bold` value is used.
-            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                # are not inherited from parent text.
-                #
-                # Changing the link in an update request causes some other changes to the
-                # text style of the range:
-                #
-                # * When setting a link, the text foreground color will be set to
-                #   ThemeColorType.HYPERLINK and the text will
-                #   be underlined. If these fields are modified in the same
-                #   request, those values will be used instead of the link defaults.
-                # * Setting a link on a text range that overlaps with an existing link will
-                #   also update the existing link to point to the new URL.
-                # * Links are not settable on newline characters. As a result, setting a link
-                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                #   will separate the newline character(s) into their own text runs. The
-                #   link will be applied separately to the runs before and after the newline.
-                # * Removing a link will update the text style of the range to match the
-                #   style of the preceding text (or the default text styles if the preceding
-                #   text is another link) unless different styles are being set in the same
-                #   request.
-              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
-              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                  # in the presentation. There may not be a slide at this index.
-              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                  # addressed by its position.
-            },
-            "italic": True or False, # Whether or not the text is italicized.
-            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                # points.
+              # When unset, these fields default to values that match the appearance of
+              # new lines created in the Slides editor.
+            "dashStyle": "A String", # The dash style of the line.
+            "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
               "magnitude": 3.14, # The magnitude.
               "unit": "A String", # The units for magnitude.
             },
-            "underline": True or False, # Whether or not the text is underlined.
-            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                # transparent, depending on if the `opaque_color` field in it is set.
-              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                  # a transparent color.
-                "themeColor": "A String", # An opaque theme color.
-                "rgbColor": { # An RGB color. # An opaque RGB color.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+            "endArrow": "A String", # The style of the arrow at the end of the line.
+            "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                  # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
+              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                  # addressed by its position.
+            },
+            "startArrow": "A String", # The style of the arrow at the beginning of the line.
+            "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                # lines created in the Slides editor.
+              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                  # specified color value.
+                  #
+                  # If any field is unset, its value may be inherited from a parent placeholder
+                  # if it exists.
+                "color": { # A themeable solid color value. # The color value of the solid fill.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
                 },
+                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                    # That is, the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color.
               },
             },
           },
-          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to style.
-              #
-              # The range may be extended to include adjacent newlines.
-              #
-              # If the range fully contains a paragraph belonging to a list, the
-              # paragraph's bullet is also updated with the matching text style.
-              # text.
-            "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
-            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
-            "type": "A String", # The type of range.
-          },
-          "objectId": "A String", # The object ID of the shape or table with the text to be styled.
-          "cellLocation": { # A location of a single table cell within a table. # The optional table cell location if the text to be styled is in a table
-              # cell. If present, the object_id must refer to a table.
-            "rowIndex": 42, # The 0-based row index.
-            "columnIndex": 42, # The 0-based column index.
-          },
+          "objectId": "A String", # The object ID of the line the update is applied to.
         },
         "updateTableCellProperties": { # Update the properties of a TableCell. # Updates the properties of a TableCell.
           "tableRange": { # A table range represents a reference to a subset of a table. # The table range representing the subset of the table to which the updates
@@ -975,6 +1025,12 @@
               # field mask but leave the field itself unset.
         },
         "replaceAllShapesWithImage": { # Replaces all shapes that match the given criteria with the provided image. # Replaces all shapes matching some criteria with an image.
+          "imageUrl": "A String", # The image URL.
+              #
+              # The image is fetched once at insertion time and a copy is stored for
+              # display inside the presentation. Images must be less than 50MB in size,
+              # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+              # format.
           "containsText": { # A criteria that matches a specific string of text in a shape or table. # If set, this request will replace all of the shapes that contain the
               # given text.
             "text": "A String", # The text to search for in the shape or table.
@@ -983,12 +1039,6 @@
                 # - `True`: the search is case sensitive.
                 # - `False`: the search is case insensitive.
           },
-          "imageUrl": "A String", # The image URL.
-              #
-              # The image is fetched once at insertion time and a copy is stored for
-              # display inside the presentation. Images must be less than 50MB in size,
-              # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
-              # format.
           "replaceMethod": "A String", # The replace method.
         },
         "updateSlidesPosition": { # Updates the position of slides in the presentation. # Updates the position of a set of slides in the presentation.
@@ -1028,6 +1078,83 @@
           },
           "objectId": "A String", # The ID of the object to duplicate.
         },
+        "updateParagraphStyle": { # Updates the styling for all of the paragraphs within a Shape or Table that # Updates the styling of paragraphs within a Shape or Table.
+            # overlap with the given text index range.
+          "fields": "A String", # The fields that should be updated.
+              #
+              # At least one field must be specified. The root `style` is implied and
+              # should not be specified. A single `"*"` can be used as short-hand for
+              # listing every field.
+              #
+              # For example, to update the paragraph alignment, set `fields` to
+              # `"alignment"`.
+              #
+              # To reset a property to its default value, include its field name in the
+              # field mask but leave the field itself unset.
+          "style": { # Styles that apply to a whole paragraph. # The paragraph's style.
+              #
+              # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+              # inherited from the parent. Which paragraph styles are inherited depend on the
+              # nesting level of lists:
+              #
+              # * A paragraph not in a list will inherit its paragraph style from the
+              #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+              # * A paragraph in a list will inherit its paragraph style from the paragraph
+              #   at its corresponding nesting level of the list inside the parent
+              #   placeholder.
+              #
+              # Inherited paragraph styles are represented as unset fields in this message.
+            "spacingMode": "A String", # The spacing mode for the paragraph.
+            "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                # LEFT_TO_RIGHT
+                # since text direction is not inherited.
+            "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                # inherited from the parent.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                # is represented as 100.0. If unset, the value is inherited from the parent.
+            "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                # the start of the text, based on the current text direction. If unset, the
+                # value is inherited from the parent.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                # inherited from the parent.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                # the end of the text, based on the current text direction. If unset, the
+                # value is inherited from the parent.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                # If unset, the value is inherited from the parent.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "alignment": "A String", # The text alignment for this paragraph.
+          },
+          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text containing the paragraph(s) to style.
+              # text.
+            "endIndex": 42, # The optional zero-based index of the end of the collection.
+                # Required for `SPECIFIC_RANGE` delete mode.
+            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
+                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+            "type": "A String", # The type of range.
+          },
+          "objectId": "A String", # The object ID of the shape or table with the text to be styled.
+          "cellLocation": { # A location of a single table cell within a table. # The location of the cell in the table containing the paragraph(s) to
+              # style. If `object_id` refers to a table, `cell_location` must have a value.
+              # Otherwise, it must not.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
+          },
+        },
         "refreshSheetsChart": { # Refreshes an embedded Google Sheets chart by replacing it with the latest # Refreshes a Google Sheets chart.
             # version of the chart from Google Sheets.
             #
@@ -1047,12 +1174,19 @@
         },
         "createSheetsChart": { # Creates an embedded Google Sheets chart. # Creates an embedded Google Sheets chart.
             #
-            # NOTE: Chart creation requires  at least one of the spreadsheets.readonly,
+            # NOTE: Chart creation requires at least one of the spreadsheets.readonly,
             # spreadsheets, drive.readonly, or drive OAuth scopes.
-          "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet.
           "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
+          "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet.
           "linkingMode": "A String", # The mode with which the chart is linked to the source spreadsheet. When
               # not specified, the chart will be an image that is not linked.
+          "objectId": "A String", # A user-supplied object ID.
+              #
+              # If specified, the ID must be unique among all pages and page elements in
+              # the presentation. The ID should start with a word character [a-zA-Z0-9_]
+              # and then followed by any number of the following characters [a-zA-Z0-9_-:].
+              # The length of the ID should not be less than 5 or greater than 50.
+              # If empty, a unique identifier will be generated.
           "elementProperties": { # Common properties for a page element. # The element properties for the chart.
               #
               # When the aspect ratio of the provided size does not match the chart aspect
@@ -1097,13 +1231,6 @@
               },
             },
           },
-          "objectId": "A String", # A user-supplied object ID.
-              #
-              # If specified, the ID must be unique among all pages and page elements in
-              # the presentation. The ID should start with a word character [a-zA-Z0-9_]
-              # and then followed by any number of the following characters [a-zA-Z0-9_-:].
-              # The length of the ID should not be less than 5 or greater than 50.
-              # If empty, a unique identifier will be generated.
         },
         "createSlide": { # Creates a new slide. # Creates a new slide.
           "slideLayoutReference": { # Slide layout reference. This may reference either: # Layout reference of the slide to be inserted, based on the *current
@@ -1124,6 +1251,36 @@
             "predefinedLayout": "A String", # Predefined layout.
             "layoutId": "A String", # Layout ID: the object ID of one of the layouts in the presentation.
           },
+          "placeholderIdMappings": [ # An optional list of object ID mappings from the placeholder(s) on the layout to the placeholder(s)
+              # that will be created on the new slide from that specified layout. Can only
+              # be used when `slide_layout_reference` is specified.
+            { # The user-specified ID mapping for a placeholder that will be created on a
+                # slide from a specified layout.
+              "layoutPlaceholder": { # The placeholder information that uniquely identifies a placeholder shape. # The placeholder on a layout that will be applied to a slide. Only type and index are needed. For example, a
+                  # predefined `TITLE_AND_BODY` layout may usually have a TITLE placeholder
+                  # with index 0 and a BODY placeholder with index 0.
+                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                    # If unset, the parent placeholder shape does not exist, so the shape does
+                    # not inherit properties from any other shape.
+                "index": 42, # The index of the placeholder. If the same placeholder types are the present
+                    # in the same page, they would have different index values.
+                "type": "A String", # The type of the placeholder.
+              },
+              "layoutPlaceholderObjectId": "A String", # The object ID of the placeholder on a layout that will be applied
+                  # to a slide.
+              "objectId": "A String", # A user-supplied object ID for the placeholder identified above that to be
+                  # created onto a slide.
+                  #
+                  # If you specify an ID, it must be unique among all pages and page elements
+                  # in the presentation. The ID must start with an alphanumeric character or an
+                  # underscore (matches regex `[a-zA-Z0-9_]`); remaining characters
+                  # may include those as well as a hyphen or colon (matches regex
+                  # `[a-zA-Z0-9_-:]`).
+                  # The length of the ID must not be less than 5 or greater than 50.
+                  #
+                  # If you don't specify an ID, a unique one is generated.
+            },
+          ],
           "objectId": "A String", # A user-supplied object ID.
               #
               # If you specify an ID, it must be unique among all pages and page elements
@@ -1259,10 +1416,10 @@
             "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                 # are not inherited from parent placeholders.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -1275,14 +1432,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -1306,6 +1455,14 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
@@ -1365,23 +1522,30 @@
               # The length of the ID must not be less than 5 or greater than 50.
               # If empty, a unique identifier will be generated.
         },
-        "insertTableColumns": { # Inserts columns into a table. # Inserts columns into a table.
-            #
-            # Other columns in the table will be resized to fit the new column.
-          "number": 42, # The number of columns to be inserted. Maximum 20 per request.
-          "insertRight": True or False, # Whether to insert new columns to the right of the reference cell location.
+        "updatePageElementTransform": { # Updates the transform of a page element. # Updates the transform of a page element.
+          "applyMode": "A String", # The apply mode of the transform update.
+          "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The input transform matrix used to update the page element.
+              # to transform source coordinates (x,y) into destination coordinates (x', y')
+              # according to:
               #
-              # - `True`: insert to the right.
-              # - `False`: insert to the left.
-          "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which columns will be inserted.
+              #       x'  x  =   shear_y  scale_y  translate_y
+              #       1  [ 1 ]
               #
-              # A new column will be inserted to the left (or right) of the column where
-              # the reference cell is. If the reference cell is a merged cell, a new
-              # column will be inserted to the left (or right) of the merged cell.
-            "rowIndex": 42, # The 0-based row index.
-            "columnIndex": 42, # The 0-based column index.
+              # After transformation,
+              #
+              #      x' = scale_x * x + shear_x * y + translate_x;
+              #      y' = scale_y * y + shear_y * x + translate_y;
+              #
+              # This message is therefore composed of these six matrix elements.
+            "translateX": 3.14, # The X coordinate translation element.
+            "translateY": 3.14, # The Y coordinate translation element.
+            "scaleX": 3.14, # The X coordinate scaling element.
+            "scaleY": 3.14, # The Y coordinate scaling element.
+            "shearY": 3.14, # The Y coordinate shearing element.
+            "shearX": 3.14, # The X coordinate shearing element.
+            "unit": "A String", # The units for translate elements.
           },
-          "tableObjectId": "A String", # The table to insert columns into.
+          "objectId": "A String", # The object ID of the page element to update.
         },
         "createParagraphBullets": { # Creates bullets for all of the paragraphs that overlap with the given # Creates bullets for paragraphs.
             # text index range.
@@ -1458,6 +1622,7 @@
               },
             },
           },
+          "columns": 42, # Number of columns in the table.
           "objectId": "A String", # A user-supplied object ID.
               #
               # If you specify an ID, it must be unique among all pages and page elements
@@ -1468,7 +1633,6 @@
               # The length of the ID must not be less than 5 or greater than 50.
               #
               # If you don't specify an ID, a unique one is generated.
-          "columns": 42, # Number of columns in the table.
         },
         "deleteTableColumn": { # Deletes a column from a table. # Deletes a column from a table.
           "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which a column will be deleted.
@@ -1481,9 +1645,317 @@
           },
           "tableObjectId": "A String", # The table to delete columns from.
         },
-        "updatePageElementTransform": { # Updates the transform of a page element. # Updates the transform of a page element.
-          "applyMode": "A String", # The apply mode of the transform update.
-          "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The input transform matrix used to update the page element.
+        "insertTableColumns": { # Inserts columns into a table. # Inserts columns into a table.
+            #
+            # Other columns in the table will be resized to fit the new column.
+          "tableObjectId": "A String", # The table to insert columns into.
+          "insertRight": True or False, # Whether to insert new columns to the right of the reference cell location.
+              #
+              # - `True`: insert to the right.
+              # - `False`: insert to the left.
+          "number": 42, # The number of columns to be inserted. Maximum 20 per request.
+          "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which columns will be inserted.
+              #
+              # A new column will be inserted to the left (or right) of the column where
+              # the reference cell is. If the reference cell is a merged cell, a new
+              # column will be inserted to the left (or right) of the merged cell.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
+          },
+        },
+      },
+    ],
+    "writeControl": { # Provides control over how write requests are executed. # Provides control over how write requests are executed, such as
+        # conditionally updating the presentation.
+      "requiredRevisionId": "A String", # The revision ID of the presentation required for the write request. If
+          # specified and the `required_revision_id` doesn't exactly match the
+          # presentation's current `revision_id`, the request will not be processed and
+          # will return a 400 bad request error.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message from a batch update.
+    "presentationId": "A String", # The presentation the updates were applied to.
+    "replies": [ # The reply of the updates.  This maps 1:1 with the updates, although
+        # replies to some requests may be empty.
+      { # A single response from an update.
+        "createImage": { # The result of creating an image. # The result of creating an image.
+          "objectId": "A String", # The object ID of the created image.
+        },
+        "replaceAllShapesWithImage": { # The result of replacing shapes with an image. # The result of replacing all shapes matching some criteria with an
+            # image.
+          "occurrencesChanged": 42, # The number of shapes replaced with images.
+        },
+        "duplicateObject": { # The response of duplicating an object. # The result of duplicating an object.
+          "objectId": "A String", # The ID of the new duplicate object.
+        },
+        "createShape": { # The result of creating a shape. # The result of creating a shape.
+          "objectId": "A String", # The object ID of the created shape.
+        },
+        "replaceAllText": { # The result of replacing text. # The result of replacing text.
+          "occurrencesChanged": 42, # The number of occurrences changed by replacing all text.
+        },
+        "createSheetsChart": { # The result of creating an embedded Google Sheets chart. # The result of creating a Google Sheets chart.
+          "objectId": "A String", # The object ID of the created chart.
+        },
+        "createVideo": { # The result of creating a video. # The result of creating a video.
+          "objectId": "A String", # The object ID of the created video.
+        },
+        "createLine": { # The result of creating a line. # The result of creating a line.
+          "objectId": "A String", # The object ID of the created line.
+        },
+        "createTable": { # The result of creating a table. # The result of creating a table.
+          "objectId": "A String", # The object ID of the created table.
+        },
+        "createSlide": { # The result of creating a slide. # The result of creating a slide.
+          "objectId": "A String", # The object ID of the created slide.
+        },
+        "replaceAllShapesWithSheetsChart": { # The result of replacing shapes with a Google Sheets chart. # The result of replacing all shapes matching some criteria with a Google
+            # Sheets chart.
+          "occurrencesChanged": 42, # The number of shapes replaced with charts.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(body, x__xgafv=None)</code>
+  <pre>Creates a new presentation using the title given in the request. Other
+fields in the request are ignored.
+Returns the created presentation.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Google Slides presentation.
+    "presentationId": "A String", # The ID of the presentation.
+    "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
+        # 
+        # - Placeholder shapes on a notes master contain the default text styles and
+        #   shape properties of all placeholder shapes on notes pages. Specifically,
+        #   a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a
+        #   `BODY` placeholder shape contains the speaker notes.
+        # - The notes master page properties define the common page properties
+        #   inherited by all notes pages.
+        # - Any other shapes on the notes master will appear on all notes pages.
+        # 
+        # The notes master is read-only.
+      "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+          # relevant for pages with page_type LAYOUT.
+        "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+        "name": "A String", # The name of the layout.
+        "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+      },
+      "pageElements": [ # The page elements rendered on the page.
+        { # A visual element rendered on a page.
+          "wordArt": { # A PageElement kind representing # A word art page element.
+              # word art.
+            "renderedText": "A String", # The text rendered as word art.
+          },
+          "description": "A String", # The description of the page element. Combined with title to display alt
+              # text.
+          "objectId": "A String", # The object ID for this page element. Object IDs used by
+              # google.apps.slides.v1.Page and
+              # google.apps.slides.v1.PageElement share the same namespace.
+          "title": "A String", # The title of the page element. Combined with description to display alt
+              # text.
+          "image": { # A PageElement kind representing an # An image page element.
+              # image.
+            "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                # This URL is tagged with the account of the requester. Anyone with the URL
+                # effectively accesses the image as the original requester. Access to the
+                # image may be lost if the presentation's sharing settings change.
+            "imageProperties": { # The properties of the Image. # The properties of the image.
+              "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                  #
+                  # If these fields are unset, they may be inherited from a parent placeholder
+                  # if it exists. If there is no parent, the fields will default to the value
+                  # used for new page elements created in the Slides editor, which may depend on
+                  # the page element kind.
+                "outlineFill": { # The fill of the outline. # The fill of the outline.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+                "propertyState": "A String", # The outline property state.
+                    #
+                    # Updating the the outline on a page element will implicitly update this
+                    # field to`RENDERED`, unless another value is specified in the same request.
+                    # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                    # this case, any other outline fields set in the same request will be
+                    # ignored.
+                "dashStyle": "A String", # The dash style of the outline.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+              "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                  # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+              "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                  # This property is read-only.
+                "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                    # stops.
+                    #
+                    # The colors in the gradient will replace the corresponding colors at
+                    # the same position in the color palette and apply to the image. This
+                    # property is read-only.
+                  { # A color and position in a gradient band.
+                    "color": { # A themeable solid color value. # The color of the gradient stop.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                        # fully opaque.
+                    "position": 3.14, # The relative position of the color stop in the gradient band measured
+                        # in percentage. The value should be in the interval [0.0, 1.0].
+                  },
+                ],
+                "name": "A String", # The name of the recolor effect.
+                    #
+                    # The name is determined from the `recolor_stops` by matching the gradient
+                    # against the colors in the page's current color scheme. This property is
+                    # read-only.
+              },
+              "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                    # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
+                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                    # addressed by its position.
+              },
+              "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                  # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                  # This property is read-only.
+              "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                  # This property is read-only.
+                  # Image.
+                  #
+                  # The crop properties is represented by the offsets of four edges which define
+                  # a crop rectangle. The offsets are measured in percentage from the
+                  # corresponding edges of the object's original bounding rectangle towards
+                  # inside, relative to the object's original dimensions.
+                  #
+                  # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                  # rectangle is positioned inside of the object's original bounding rectangle.
+                  # - If the offset is negative or greater than 1, the corresponding edge of crop
+                  # rectangle is positioned outside of the object's original bounding rectangle.
+                  # - If the left edge of the crop rectangle is on the right side of its right
+                  # edge, the object will be flipped horizontally.
+                  # - If the top edge of the crop rectangle is below its bottom edge, the object
+                  # will be flipped vertically.
+                  # - If all offsets and rotation angle is 0, the object is not cropped.
+                  #
+                  # After cropping, the content in the crop rectangle will be stretched to fit
+                  # its container.
+                "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                    # the right of the original bounding rectangle left edge, relative to the
+                    # object's original width.
+                "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                    # Rotation angle is applied after the offset.
+                "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                    # to the left of the original bounding rectangle right edge, relative to the
+                    # object's original width.
+                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                    # above the original bounding rectangle bottom edge, relative to the object's
+                    # original height.
+                "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                    # below the original bounding rectangle top edge, relative to the object's
+                    # original height.
+              },
+              "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                  # is read-only.
+                  #
+                  # If these fields are unset, they may be inherited from a parent placeholder
+                  # if it exists. If there is no parent, the fields will default to the value
+                  # used for new page elements created in the Slides editor, which may depend on
+                  # the page element kind.
+                "color": { # A themeable solid color value. # The shadow color value.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                },
+                "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                    # relative to the alignment position.
+                    # to transform source coordinates (x,y) into destination coordinates (x', y')
+                    # according to:
+                    #
+                    #       x'  x  =   shear_y  scale_y  translate_y
+                    #       1  [ 1 ]
+                    #
+                    # After transformation,
+                    #
+                    #      x' = scale_x * x + shear_x * y + translate_x;
+                    #      y' = scale_y * y + shear_y * x + translate_y;
+                    #
+                    # This message is therefore composed of these six matrix elements.
+                  "translateX": 3.14, # The X coordinate translation element.
+                  "translateY": 3.14, # The Y coordinate translation element.
+                  "scaleX": 3.14, # The X coordinate scaling element.
+                  "scaleY": 3.14, # The Y coordinate scaling element.
+                  "shearY": 3.14, # The Y coordinate shearing element.
+                  "shearX": 3.14, # The X coordinate shearing element.
+                  "unit": "A String", # The units for translate elements.
+                },
+                "propertyState": "A String", # The shadow property state.
+                    #
+                    # Updating the the shadow on a page element will implicitly update this field
+                    # to `RENDERED`, unless another value is specified in the same request. To
+                    # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                    # case, any other shadow fields set in the same request will be ignored.
+                "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                    # shadow becomes.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                "type": "A String", # The type of the shadow.
+                "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                    # scale and skew of the shadow.
+                "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+              },
+              "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                  # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+            },
+          },
+          "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
               # to transform source coordinates (x,y) into destination coordinates (x', y')
               # according to:
               #
@@ -1504,73 +1976,1651 @@
             "shearX": 3.14, # The X coordinate shearing element.
             "unit": "A String", # The units for translate elements.
           },
-          "objectId": "A String", # The object ID of the page element to update.
+          "shape": { # A PageElement kind representing a # A generic shape.
+              # generic shape that does not have a more specific classification.
+            "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                # text box or rectangle) or a table cell in a page.
+              "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                    # associated with a list. A paragraph that is part of a list has an implicit
+                    # reference to that list's ID.
+                  "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                      # level. A list has at most nine levels of nesting, so the possible values
+                      # for the keys of this map are 0 through 8, inclusive.
+                    "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                        # level of nesting.
+                      "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                    },
+                  },
+                  "listId": "A String", # The ID of the list.
+                },
+              },
+              "textElements": [ # The text contents broken down into its component parts, including styling
+                  # information. This property is read-only.
+                { # A TextElement describes the content of a range of indices in the text content
+                    # of a Shape or TableCell.
+                  "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                      # replaced with content that can change over time.
+                    "content": "A String", # The rendered content of this auto text, if available.
+                    "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                        #
+                        # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                        # inherited from the parent. Which text styles are inherited depend on the
+                        # nesting level of lists:
+                        #
+                        # * A text run in a paragraph that is not in a list will inherit its text style
+                        #   from the the newline character in the paragraph at the 0 nesting level of
+                        #   the list inside the parent placeholder.
+                        # * A text run in a paragraph that is in a list will inherit its text style
+                        #   from the newline character in the paragraph at its corresponding nesting
+                        #   level of the list inside the parent placeholder.
+                        #
+                        # Inherited text styles are represented as unset fields in this message. If
+                        # text is contained in a shape without a parent placeholder, unsetting these
+                        # fields will revert the style to a value matching the defaults in the Slides
+                        # editor.
+                      "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      "bold": True or False, # Whether or not the text is rendered as bold.
+                      "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                          #
+                          # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                          # rendered in a smaller font size, computed based on the `font_size` field.
+                          # The `font_size` itself is not affected by changes in this field.
+                      "strikethrough": True or False, # Whether or not the text is struck through.
+                      "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                      "fontFamily": "A String", # The font family of the text.
+                          #
+                          # The font family can be any font from the Font menu in Slides or from
+                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                          # unrecognized, the text is rendered in `Arial`.
+                          #
+                          # Some fonts can affect the weight of the text. If an update request
+                          # specifies values for both `font_family` and `bold`, the explicitly-set
+                          # `bold` value is used.
+                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                          # points.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "italic": True or False, # Whether or not the text is italicized.
+                      "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                          # are not inherited from parent text.
+                          #
+                          # Changing the link in an update request causes some other changes to the
+                          # text style of the range:
+                          #
+                          # * When setting a link, the text foreground color will be set to
+                          #   ThemeColorType.HYPERLINK and the text will
+                          #   be underlined. If these fields are modified in the same
+                          #   request, those values will be used instead of the link defaults.
+                          # * Setting a link on a text range that overlaps with an existing link will
+                          #   also update the existing link to point to the new URL.
+                          # * Links are not settable on newline characters. As a result, setting a link
+                          #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                          #   will separate the newline character(s) into their own text runs. The
+                          #   link will be applied separately to the runs before and after the newline.
+                          # * Removing a link will update the text style of the range to match the
+                          #   style of the preceding text (or the default text styles if the preceding
+                          #   text is another link) unless different styles are being set in the same
+                          #   request.
+                        "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                        "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                            # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
+                        "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                            # addressed by its position.
+                      },
+                      "underline": True or False, # Whether or not the text is underlined.
+                      "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                    },
+                    "type": "A String", # The type of this auto text.
+                  },
+                  "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                      # units.
+                  "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                  "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                      #
+                      # The `start_index` and `end_index` of this TextElement represent the
+                      # range of the paragraph. Other TextElements with an index range contained
+                      # inside this paragraph's range are considered to be part of this
+                      # paragraph. The range of indices of two separate paragraphs will never
+                      # overlap.
+                    "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                        #
+                        # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                        # inherited from the parent. Which paragraph styles are inherited depend on the
+                        # nesting level of lists:
+                        #
+                        # * A paragraph not in a list will inherit its paragraph style from the
+                        #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                        # * A paragraph in a list will inherit its paragraph style from the paragraph
+                        #   at its corresponding nesting level of the list inside the parent
+                        #   placeholder.
+                        #
+                        # Inherited paragraph styles are represented as unset fields in this message.
+                      "spacingMode": "A String", # The spacing mode for the paragraph.
+                      "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                          # LEFT_TO_RIGHT
+                          # since text direction is not inherited.
+                      "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                          # inherited from the parent.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                          # is represented as 100.0. If unset, the value is inherited from the parent.
+                      "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                          # the start of the text, based on the current text direction. If unset, the
+                          # value is inherited from the parent.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                          # inherited from the parent.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                          # the end of the text, based on the current text direction. If unset, the
+                          # value is inherited from the parent.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                          # If unset, the value is inherited from the parent.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "alignment": "A String", # The text alignment for this paragraph.
+                    },
+                    "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                        # belong to a list.
+                      "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                      "listId": "A String", # The ID of the list this paragraph belongs to.
+                      "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                      "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                    },
+                  },
+                  "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                      # in the run have the same TextStyle.
+                      #
+                      # The `start_index` and `end_index` of TextRuns will always be fully
+                      # contained in the index range of a single `paragraph_marker` TextElement.
+                      # In other words, a TextRun will never span multiple paragraphs.
+                      # styling.
+                    "content": "A String", # The text of this run.
+                    "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                        #
+                        # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                        # inherited from the parent. Which text styles are inherited depend on the
+                        # nesting level of lists:
+                        #
+                        # * A text run in a paragraph that is not in a list will inherit its text style
+                        #   from the the newline character in the paragraph at the 0 nesting level of
+                        #   the list inside the parent placeholder.
+                        # * A text run in a paragraph that is in a list will inherit its text style
+                        #   from the newline character in the paragraph at its corresponding nesting
+                        #   level of the list inside the parent placeholder.
+                        #
+                        # Inherited text styles are represented as unset fields in this message. If
+                        # text is contained in a shape without a parent placeholder, unsetting these
+                        # fields will revert the style to a value matching the defaults in the Slides
+                        # editor.
+                      "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      "bold": True or False, # Whether or not the text is rendered as bold.
+                      "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                          #
+                          # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                          # rendered in a smaller font size, computed based on the `font_size` field.
+                          # The `font_size` itself is not affected by changes in this field.
+                      "strikethrough": True or False, # Whether or not the text is struck through.
+                      "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                      "fontFamily": "A String", # The font family of the text.
+                          #
+                          # The font family can be any font from the Font menu in Slides or from
+                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                          # unrecognized, the text is rendered in `Arial`.
+                          #
+                          # Some fonts can affect the weight of the text. If an update request
+                          # specifies values for both `font_family` and `bold`, the explicitly-set
+                          # `bold` value is used.
+                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                          # points.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "italic": True or False, # Whether or not the text is italicized.
+                      "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                          # are not inherited from parent text.
+                          #
+                          # Changing the link in an update request causes some other changes to the
+                          # text style of the range:
+                          #
+                          # * When setting a link, the text foreground color will be set to
+                          #   ThemeColorType.HYPERLINK and the text will
+                          #   be underlined. If these fields are modified in the same
+                          #   request, those values will be used instead of the link defaults.
+                          # * Setting a link on a text range that overlaps with an existing link will
+                          #   also update the existing link to point to the new URL.
+                          # * Links are not settable on newline characters. As a result, setting a link
+                          #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                          #   will separate the newline character(s) into their own text runs. The
+                          #   link will be applied separately to the runs before and after the newline.
+                          # * Removing a link will update the text style of the range to match the
+                          #   style of the preceding text (or the default text styles if the preceding
+                          #   text is another link) unless different styles are being set in the same
+                          #   request.
+                        "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                        "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                            # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
+                        "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                            # addressed by its position.
+                      },
+                      "underline": True or False, # Whether or not the text is underlined.
+                      "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                    },
+                  },
+                },
+              ],
+            },
+            "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                #
+                # If the shape is a placeholder shape as determined by the
+                # placeholder field, then these
+                # properties may be inherited from a parent placeholder shape.
+                # Determining the rendered value of the property depends on the corresponding
+                # property_state field value.
+              "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                  # a parent placeholder if it exists. If the shape has no parent, then the
+                  # default shadow matches the defaults for new shapes created in the Slides
+                  # editor. This property is read-only.
+                  #
+                  # If these fields are unset, they may be inherited from a parent placeholder
+                  # if it exists. If there is no parent, the fields will default to the value
+                  # used for new page elements created in the Slides editor, which may depend on
+                  # the page element kind.
+                "color": { # A themeable solid color value. # The shadow color value.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                },
+                "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                    # relative to the alignment position.
+                    # to transform source coordinates (x,y) into destination coordinates (x', y')
+                    # according to:
+                    #
+                    #       x'  x  =   shear_y  scale_y  translate_y
+                    #       1  [ 1 ]
+                    #
+                    # After transformation,
+                    #
+                    #      x' = scale_x * x + shear_x * y + translate_x;
+                    #      y' = scale_y * y + shear_y * x + translate_y;
+                    #
+                    # This message is therefore composed of these six matrix elements.
+                  "translateX": 3.14, # The X coordinate translation element.
+                  "translateY": 3.14, # The Y coordinate translation element.
+                  "scaleX": 3.14, # The X coordinate scaling element.
+                  "scaleY": 3.14, # The Y coordinate scaling element.
+                  "shearY": 3.14, # The Y coordinate shearing element.
+                  "shearX": 3.14, # The X coordinate shearing element.
+                  "unit": "A String", # The units for translate elements.
+                },
+                "propertyState": "A String", # The shadow property state.
+                    #
+                    # Updating the the shadow on a page element will implicitly update this field
+                    # to `RENDERED`, unless another value is specified in the same request. To
+                    # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                    # case, any other shadow fields set in the same request will be ignored.
+                "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                    # shadow becomes.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                "type": "A String", # The type of the shadow.
+                "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                    # scale and skew of the shadow.
+                "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+              },
+              "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                  # inherited from a parent placeholder if it exists. If the shape has no
+                  # parent, then the default background fill depends on the shape type,
+                  # matching the defaults for new shapes created in the Slides editor.
+                "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                    # specified color value.
+                    #
+                    # If any field is unset, its value may be inherited from a parent placeholder
+                    # if it exists.
+                  "color": { # A themeable solid color value. # The color value of the solid fill.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                      # That is, the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color.
+                },
+                "propertyState": "A String", # The background fill property state.
+                    #
+                    # Updating the the fill on a shape will implicitly update this field to
+                    # `RENDERED`, unless another value is specified in the same request. To
+                    # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                    # any other fill fields set in the same request will be ignored.
+              },
+              "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                  # are not inherited from parent placeholders.
+                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                    # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
+                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                    # addressed by its position.
+              },
+              "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                  # parent placeholder if it exists. If the shape has no parent, then the
+                  # default outline depends on the shape type, matching the defaults for
+                  # new shapes created in the Slides editor.
+                  #
+                  # If these fields are unset, they may be inherited from a parent placeholder
+                  # if it exists. If there is no parent, the fields will default to the value
+                  # used for new page elements created in the Slides editor, which may depend on
+                  # the page element kind.
+                "outlineFill": { # The fill of the outline. # The fill of the outline.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+                "propertyState": "A String", # The outline property state.
+                    #
+                    # Updating the the outline on a page element will implicitly update this
+                    # field to`RENDERED`, unless another value is specified in the same request.
+                    # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                    # this case, any other outline fields set in the same request will be
+                    # ignored.
+                "dashStyle": "A String", # The dash style of the outline.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+            "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                # layouts and masters.
+                #
+                # If set, the shape is a placeholder shape and any inherited properties
+                # can be resolved by looking at the parent placeholder identified by the
+                # Placeholder.parent_object_id field.
+              "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                  # If unset, the parent placeholder shape does not exist, so the shape does
+                  # not inherit properties from any other shape.
+              "index": 42, # The index of the placeholder. If the same placeholder types are the present
+                  # in the same page, they would have different index values.
+              "type": "A String", # The type of the placeholder.
+            },
+            "shapeType": "A String", # The type of the shape.
+          },
+          "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+              # represented as images.
+              # a linked chart embedded from Google Sheets.
+            "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                # embedded.
+            "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                # minutes. This URL is tagged with the account of the requester. Anyone with
+                # the URL effectively accesses the image as the original requester. Access to
+                # the image may be lost if the presentation's sharing settings change.
+            "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+              "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+                "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                    # This property is read-only.
+                  "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
+                    { # A color and position in a gradient band.
+                      "color": { # A themeable solid color value. # The color of the gradient stop.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                          # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
+                    },
+                  ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                    # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                    # This property is read-only.
+                "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                    # This property is read-only.
+                    # Image.
+                    #
+                    # The crop properties is represented by the offsets of four edges which define
+                    # a crop rectangle. The offsets are measured in percentage from the
+                    # corresponding edges of the object's original bounding rectangle towards
+                    # inside, relative to the object's original dimensions.
+                    #
+                    # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                    # rectangle is positioned inside of the object's original bounding rectangle.
+                    # - If the offset is negative or greater than 1, the corresponding edge of crop
+                    # rectangle is positioned outside of the object's original bounding rectangle.
+                    # - If the left edge of the crop rectangle is on the right side of its right
+                    # edge, the object will be flipped horizontally.
+                    # - If the top edge of the crop rectangle is below its bottom edge, the object
+                    # will be flipped vertically.
+                    # - If all offsets and rotation angle is 0, the object is not cropped.
+                    #
+                    # After cropping, the content in the crop rectangle will be stretched to fit
+                    # its container.
+                  "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                      # the right of the original bounding rectangle left edge, relative to the
+                      # object's original width.
+                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                      # Rotation angle is applied after the offset.
+                  "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                      # to the left of the original bounding rectangle right edge, relative to the
+                      # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
+                },
+                "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                    # is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+              },
+            },
+            "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+          },
+          "video": { # A PageElement kind representing a # A video page element.
+              # video.
+            "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                # exists and sharing settings do not change.
+            "source": "A String", # The video source.
+            "id": "A String", # The video source's unique identifier for this video.
+            "videoProperties": { # The properties of the Video. # The properties of the video.
+              "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                  # videos created in the Slides editor.
+                  #
+                  # If these fields are unset, they may be inherited from a parent placeholder
+                  # if it exists. If there is no parent, the fields will default to the value
+                  # used for new page elements created in the Slides editor, which may depend on
+                  # the page element kind.
+                "outlineFill": { # The fill of the outline. # The fill of the outline.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+                "propertyState": "A String", # The outline property state.
+                    #
+                    # Updating the the outline on a page element will implicitly update this
+                    # field to`RENDERED`, unless another value is specified in the same request.
+                    # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                    # this case, any other outline fields set in the same request will be
+                    # ignored.
+                "dashStyle": "A String", # The dash style of the outline.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          },
+          "table": { # A PageElement kind representing a # A table page element.
+              # table.
+            "tableColumns": [ # Properties of each column.
+              { # Properties of each column in a table.
+                "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            ],
+            "tableRows": [ # Properties and contents of each row.
+                #
+                # Cells that span multiple rows are contained in only one of these rows and
+                # have a row_span greater
+                # than 1.
+              { # Properties and contents of each row in a table.
+                "tableCells": [ # Properties and contents of each cell.
+                    #
+                    # Cells that span multiple columns are represented only once with a
+                    # column_span greater
+                    # than 1. As a result, the length of this collection does not always match
+                    # the number of columns of the entire table.
+                  { # Properties and contents of each table cell.
+                    "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                        # text box or rectangle) or a table cell in a page.
+                      "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                        "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                            # associated with a list. A paragraph that is part of a list has an implicit
+                            # reference to that list's ID.
+                          "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                              # level. A list has at most nine levels of nesting, so the possible values
+                              # for the keys of this map are 0 through 8, inclusive.
+                            "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                # level of nesting.
+                              "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                          },
+                          "listId": "A String", # The ID of the list.
+                        },
+                      },
+                      "textElements": [ # The text contents broken down into its component parts, including styling
+                          # information. This property is read-only.
+                        { # A TextElement describes the content of a range of indices in the text content
+                            # of a Shape or TableCell.
+                          "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                              # replaced with content that can change over time.
+                            "content": "A String", # The rendered content of this auto text, if available.
+                            "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                #
+                                # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                # inherited from the parent. Which text styles are inherited depend on the
+                                # nesting level of lists:
+                                #
+                                # * A text run in a paragraph that is not in a list will inherit its text style
+                                #   from the the newline character in the paragraph at the 0 nesting level of
+                                #   the list inside the parent placeholder.
+                                # * A text run in a paragraph that is in a list will inherit its text style
+                                #   from the newline character in the paragraph at its corresponding nesting
+                                #   level of the list inside the parent placeholder.
+                                #
+                                # Inherited text styles are represented as unset fields in this message. If
+                                # text is contained in a shape without a parent placeholder, unsetting these
+                                # fields will revert the style to a value matching the defaults in the Slides
+                                # editor.
+                              "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                              "bold": True or False, # Whether or not the text is rendered as bold.
+                              "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                  #
+                                  # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                  # rendered in a smaller font size, computed based on the `font_size` field.
+                                  # The `font_size` itself is not affected by changes in this field.
+                              "strikethrough": True or False, # Whether or not the text is struck through.
+                              "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                                  #
+                                  # Some fonts can affect the weight of the text. If an update request
+                                  # specifies values for both `font_family` and `bold`, the explicitly-set
+                                  # `bold` value is used.
+                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                  # points.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "italic": True or False, # Whether or not the text is italicized.
+                              "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                  # are not inherited from parent text.
+                                  #
+                                  # Changing the link in an update request causes some other changes to the
+                                  # text style of the range:
+                                  #
+                                  # * When setting a link, the text foreground color will be set to
+                                  #   ThemeColorType.HYPERLINK and the text will
+                                  #   be underlined. If these fields are modified in the same
+                                  #   request, those values will be used instead of the link defaults.
+                                  # * Setting a link on a text range that overlaps with an existing link will
+                                  #   also update the existing link to point to the new URL.
+                                  # * Links are not settable on newline characters. As a result, setting a link
+                                  #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                  #   will separate the newline character(s) into their own text runs. The
+                                  #   link will be applied separately to the runs before and after the newline.
+                                  # * Removing a link will update the text style of the range to match the
+                                  #   style of the preceding text (or the default text styles if the preceding
+                                  #   text is another link) unless different styles are being set in the same
+                                  #   request.
+                                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                    # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
+                                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                    # addressed by its position.
+                              },
+                              "underline": True or False, # Whether or not the text is underlined.
+                              "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                            },
+                            "type": "A String", # The type of this auto text.
+                          },
+                          "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                              # units.
+                          "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                          "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                              #
+                              # The `start_index` and `end_index` of this TextElement represent the
+                              # range of the paragraph. Other TextElements with an index range contained
+                              # inside this paragraph's range are considered to be part of this
+                              # paragraph. The range of indices of two separate paragraphs will never
+                              # overlap.
+                            "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                #
+                                # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                # inherited from the parent. Which paragraph styles are inherited depend on the
+                                # nesting level of lists:
+                                #
+                                # * A paragraph not in a list will inherit its paragraph style from the
+                                #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                #   at its corresponding nesting level of the list inside the parent
+                                #   placeholder.
+                                #
+                                # Inherited paragraph styles are represented as unset fields in this message.
+                              "spacingMode": "A String", # The spacing mode for the paragraph.
+                              "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                  # LEFT_TO_RIGHT
+                                  # since text direction is not inherited.
+                              "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                  # inherited from the parent.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                  # is represented as 100.0. If unset, the value is inherited from the parent.
+                              "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                  # the start of the text, based on the current text direction. If unset, the
+                                  # value is inherited from the parent.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                  # inherited from the parent.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                  # the end of the text, based on the current text direction. If unset, the
+                                  # value is inherited from the parent.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                  # If unset, the value is inherited from the parent.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "alignment": "A String", # The text alignment for this paragraph.
+                            },
+                            "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                # belong to a list.
+                              "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                              "listId": "A String", # The ID of the list this paragraph belongs to.
+                              "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                              "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                            },
+                          },
+                          "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                              # in the run have the same TextStyle.
+                              #
+                              # The `start_index` and `end_index` of TextRuns will always be fully
+                              # contained in the index range of a single `paragraph_marker` TextElement.
+                              # In other words, a TextRun will never span multiple paragraphs.
+                              # styling.
+                            "content": "A String", # The text of this run.
+                            "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                #
+                                # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                # inherited from the parent. Which text styles are inherited depend on the
+                                # nesting level of lists:
+                                #
+                                # * A text run in a paragraph that is not in a list will inherit its text style
+                                #   from the the newline character in the paragraph at the 0 nesting level of
+                                #   the list inside the parent placeholder.
+                                # * A text run in a paragraph that is in a list will inherit its text style
+                                #   from the newline character in the paragraph at its corresponding nesting
+                                #   level of the list inside the parent placeholder.
+                                #
+                                # Inherited text styles are represented as unset fields in this message. If
+                                # text is contained in a shape without a parent placeholder, unsetting these
+                                # fields will revert the style to a value matching the defaults in the Slides
+                                # editor.
+                              "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                              "bold": True or False, # Whether or not the text is rendered as bold.
+                              "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                  #
+                                  # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                  # rendered in a smaller font size, computed based on the `font_size` field.
+                                  # The `font_size` itself is not affected by changes in this field.
+                              "strikethrough": True or False, # Whether or not the text is struck through.
+                              "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                                  #
+                                  # Some fonts can affect the weight of the text. If an update request
+                                  # specifies values for both `font_family` and `bold`, the explicitly-set
+                                  # `bold` value is used.
+                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                  # points.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "italic": True or False, # Whether or not the text is italicized.
+                              "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                  # are not inherited from parent text.
+                                  #
+                                  # Changing the link in an update request causes some other changes to the
+                                  # text style of the range:
+                                  #
+                                  # * When setting a link, the text foreground color will be set to
+                                  #   ThemeColorType.HYPERLINK and the text will
+                                  #   be underlined. If these fields are modified in the same
+                                  #   request, those values will be used instead of the link defaults.
+                                  # * Setting a link on a text range that overlaps with an existing link will
+                                  #   also update the existing link to point to the new URL.
+                                  # * Links are not settable on newline characters. As a result, setting a link
+                                  #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                  #   will separate the newline character(s) into their own text runs. The
+                                  #   link will be applied separately to the runs before and after the newline.
+                                  # * Removing a link will update the text style of the range to match the
+                                  #   style of the preceding text (or the default text styles if the preceding
+                                  #   text is another link) unless different styles are being set in the same
+                                  #   request.
+                                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                    # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
+                                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                    # addressed by its position.
+                              },
+                              "underline": True or False, # Whether or not the text is underlined.
+                              "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                            },
+                          },
+                        },
+                      ],
+                    },
+                    "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                      "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                          # for newly created table cells in the Slides editor.
+                        "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                            # specified color value.
+                            #
+                            # If any field is unset, its value may be inherited from a parent placeholder
+                            # if it exists.
+                          "color": { # A themeable solid color value. # The color value of the solid fill.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                          "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                              # That is, the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color.
+                        },
+                        "propertyState": "A String", # The background fill property state.
+                            #
+                            # Updating the the fill on a table cell will implicitly update this field
+                            # to `RENDERED`, unless another value is specified in the same request. To
+                            # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                            # case, any other fill fields set in the same request will be ignored.
+                      },
+                    },
+                    "rowSpan": 42, # Row span of the cell.
+                    "columnSpan": 42, # Column span of the cell.
+                    "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                      "rowIndex": 42, # The 0-based row index.
+                      "columnIndex": 42, # The 0-based column index.
+                    },
+                  },
+                ],
+                "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            ],
+            "rows": 42, # Number of rows in the table.
+            "columns": 42, # Number of columns in the table.
+          },
+          "line": { # A PageElement kind representing a # A line page element.
+              # line, curved connector, or bent connector.
+            "lineProperties": { # The properties of the Line. # The properties of the line.
+                #
+                # When unset, these fields default to values that match the appearance of
+                # new lines created in the Slides editor.
+              "dashStyle": "A String", # The dash style of the line.
+              "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+              "endArrow": "A String", # The style of the arrow at the end of the line.
+              "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                    # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
+                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                    # addressed by its position.
+              },
+              "startArrow": "A String", # The style of the arrow at the beginning of the line.
+              "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                  # lines created in the Slides editor.
+                "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                    # specified color value.
+                    #
+                    # If any field is unset, its value may be inherited from a parent placeholder
+                    # if it exists.
+                  "color": { # A themeable solid color value. # The color value of the solid fill.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                      # That is, the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color.
+                },
+              },
+            },
+            "lineType": "A String", # The type of the line.
+          },
+          "size": { # A width and height. # The size of the page element.
+            "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+          },
+          "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+              # joined collection of PageElements.
+            "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+              # Object with schema name: PageElement
+            ],
+          },
+        },
+      ],
+      "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+          # relevant for pages with page_type NOTES.
+        "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+            # notes for the corresponding slide.
+            # The actual shape may not always exist on the notes page. Inserting text
+            # using this object ID will automatically create the shape. In this case, the
+            # actual shape may have different object ID. The `GetPresentation` or
+            # `GetPage` action will always return the latest object ID.
+      },
+      "objectId": "A String", # The object ID for this page. Object IDs used by
+          # Page and
+          # PageElement share the same namespace.
+      "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+          # update requests to assert that the presentation revision hasn't changed
+          # since the last read operation. Only populated if the user has edit access
+          # to the presentation.
+          #
+          # The format of the revision ID may change over time, so it should be treated
+          # opaquely. A returned revision ID is only guaranteed to be valid for 24
+          # hours after it has been returned and cannot be shared across
+          # users. Callers can assume that if two revision IDs are equal then the
+          # presentation has not changed.
+      "pageProperties": { # The properties of the Page. # The properties of the page.
+          #
+          # The page will inherit properties from the parent page. Depending on the page
+          # type the hierarchy is defined in either
+          # SlideProperties or
+          # LayoutProperties.
+        "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+            # from a parent page if it exists. If the page has no parent, then the
+            # background fill defaults to the corresponding fill in the Slides editor.
+          "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+              # specified color value.
+              #
+              # If any field is unset, its value may be inherited from a parent placeholder
+              # if it exists.
+            "color": { # A themeable solid color value. # The color value of the solid fill.
+              "themeColor": "A String", # An opaque theme color.
+              "rgbColor": { # An RGB color. # An opaque RGB color.
+                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+              },
+            },
+            "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                # That is, the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color.
+          },
+          "propertyState": "A String", # The background fill property state.
+              #
+              # Updating the the fill on a page will implicitly update this field to
+              # `RENDERED`, unless another value is specified in the same request. To
+              # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+              # any other fill fields set in the same request will be ignored.
+          "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+              # the specified picture. The picture is stretched to fit its container.
+            "contentUrl": "A String", # Reading the content_url:
+                #
+                # An URL to a picture with a default lifetime of 30 minutes.
+                # This URL is tagged with the account of the requester. Anyone with the URL
+                # effectively accesses the picture as the original requester. Access to the
+                # picture may be lost if the presentation's sharing settings change.
+                #
+                # Writing the content_url:
+                #
+                # The picture is fetched once at insertion time and a copy is stored for
+                # display inside the presentation. Pictures must be less than 50MB in size,
+                # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                # format.
+            "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+              "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+              "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+            },
+          },
+        },
+        "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+            # a parent page. If the page has no parent, the color scheme uses a default
+            # Slides color scheme. This field is read-only.
+          "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+            { # A pair mapping a theme color type to the concrete color it represents.
+              "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+              },
+              "type": "A String", # The type of the theme color.
+            },
+          ],
         },
       },
-    ],
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message from a batch update.
-    "presentationId": "A String", # The presentation the updates were applied to.
-    "replies": [ # The reply of the updates.  This maps 1:1 with the updates, although
-        # replies to some requests may be empty.
-      { # A single response from an update.
-        "createImage": { # The result of creating an image. # The result of creating an image.
-          "objectId": "A String", # The object ID of the created image.
-        },
-        "replaceAllShapesWithImage": { # The result of replacing shapes with an image. # The result of replacing all shapes containing the specified text with
-            # an image.
-          "occurrencesChanged": 42, # The number of shapes replaced with images.
-        },
-        "duplicateObject": { # The response of duplicating an object. # The result of duplicating an object.
-          "objectId": "A String", # The ID of the new duplicate object.
-        },
-        "createShape": { # The result of creating a shape. # The result of creating a shape.
-          "objectId": "A String", # The object ID of the created shape.
-        },
-        "replaceAllText": { # The result of replacing text. # The result of replacing text.
-          "occurrencesChanged": 42, # The number of occurrences changed by replacing all text.
-        },
-        "createSheetsChart": { # The result of creating an embedded Google Sheets chart. # The result of creating a Google Sheets chart.
-          "objectId": "A String", # The object ID of the created chart.
-        },
-        "createVideo": { # The result of creating a video. # The result of creating a video.
-          "objectId": "A String", # The object ID of the created video.
-        },
-        "createSlide": { # The result of creating a slide. # The result of creating a slide.
-          "objectId": "A String", # The object ID of the created slide.
-        },
-        "createTable": { # The result of creating a table. # The result of creating a table.
-          "objectId": "A String", # The object ID of the created table.
-        },
-        "createLine": { # The result of creating a line. # The result of creating a line.
-          "objectId": "A String", # The object ID of the created line.
-        },
+      "pageType": "A String", # The type of the page.
+      "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+          # relevant for pages with page_type SLIDE.
+        "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+            # appearance of a notes page when printing or exporting slides with speaker
+            # notes. A notes page inherits properties from the
+            # notes master.
+            # The placeholder shape with type BODY on the notes page contains the speaker
+            # notes for this slide. The ID of this shape is identified by the
+            # speakerNotesObjectId field.
+            # The notes page is read-only except for the text content and styles of the
+            # speaker notes shape.
+        "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+        "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
       },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a new presentation using the title given in the request. Other
-fields in the request are ignored.
-Returns the created presentation.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Google Slides presentation.
-    "presentationId": "A String", # The ID of the presentation.
+    },
+    "pageSize": { # A width and height. # The size of pages in the presentation.
+      "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+        "magnitude": 3.14, # The magnitude.
+        "unit": "A String", # The units for magnitude.
+      },
+      "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+        "magnitude": 3.14, # The magnitude.
+        "unit": "A String", # The units for magnitude.
+      },
+    },
+    "title": "A String", # The title of the presentation.
+    "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+    "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+        # to assert that the presentation revision hasn't changed since the last
+        # read operation. Only populated if the user has edit access to the
+        # presentation.
+        # 
+        # The format of the revision ID may change over time, so it should be treated
+        # opaquely. A returned revision ID is only guaranteed to be valid for 24
+        # hours after it has been returned and cannot be shared across users. Callers
+        # can assume that if two revision IDs are equal then the presentation has not
+        # changed.
     "masters": [ # The slide masters in the presentation. A slide master contains all common
         # page elements and the common properties for a set of layouts. They serve
         # three purposes:
@@ -1614,14 +3664,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -1645,6 +3687,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -1655,7 +3705,11 @@
                 "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                     # This property is read-only.
                   "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                      # stops. This property is read-only.
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
                     { # A color and position in a gradient band.
                       "color": { # A themeable solid color value. # The color of the gradient stop.
                         "themeColor": "A String", # An opaque theme color.
@@ -1665,19 +3719,24 @@
                           "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                         },
                       },
-                      "position": 3.14, # The relative position of the color stop in the gradient band measured
-                          # in percentage. The value should be in the interval [0.0, 1.0].
                       "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                           # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
                     },
                   ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -1710,12 +3769,12 @@
                       # object's original width.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
                   "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                       # below the original bounding rectangle top edge, relative to the object's
                       # original height.
@@ -1803,6 +3862,114 @@
                 # generic shape that does not have a more specific classification.
               "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                   # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
                 "textElements": [ # The text contents broken down into its component parts, including styling
                     # information. This property is read-only.
                   { # A TextElement describes the content of a range of indices in the text content
@@ -1839,7 +4006,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -1856,6 +4023,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -1877,19 +4050,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -1929,40 +4096,40 @@
                           #   placeholder.
                           #
                           # Inherited paragraph styles are represented as unset fields in this message.
-                        "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                        "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT
+                            # since text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                             # is represented as 100.0. If unset, the value is inherited from the parent.
-                            # This property is read-only.
                         "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the start of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the end of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                            # If unset, the value is inherited from the parent. This property is
-                            # read-only.
+                            # If unset, the value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
-                        "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                        "alignment": "A String", # The text alignment for this paragraph.
                       },
                       "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                           # belong to a list.
@@ -1997,7 +4164,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -2014,6 +4181,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -2035,19 +4208,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -2102,7 +4269,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -2119,6 +4286,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -2140,19 +4313,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -2170,114 +4337,6 @@
                     },
                   },
                 ],
-                "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                      # associated with a list. A paragraph that is part of a list has an implicit
-                      # reference to that list's ID.
-                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                        # level. A list has at most nine levels of nesting, so the possible values
-                        # for the keys of this map are 0 through 8, inclusive.
-                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                          # level of nesting.
-                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                        },
-                      },
-                    },
-                    "listId": "A String", # The ID of the list.
-                  },
-                },
               },
               "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                   #
@@ -2377,10 +4436,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -2393,14 +4452,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -2424,6 +4475,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -2450,7 +4509,10 @@
                 # a linked chart embedded from Google Sheets.
               "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                   # embedded.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -2459,14 +4521,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -2490,6 +4544,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -2500,7 +4562,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -2510,19 +4576,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -2555,12 +4626,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -2623,15 +4694,14 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                  # minutes. This URL is tagged with the account of the requester. Anyone with
-                  # the URL effectively accesses the image as the original requester. Access to
-                  # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
+              "source": "A String", # The video source.
+              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -2640,14 +4710,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -2671,14 +4733,20 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
                   },
                 },
               },
-              "id": "A String", # The video source's unique identifier for this video.
-              "source": "A String", # The video source.
             },
             "table": { # A PageElement kind representing a # A table page element.
                 # table.
@@ -2705,6 +4773,114 @@
                     { # Properties and contents of each table cell.
                       "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                           # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
                         "textElements": [ # The text contents broken down into its component parts, including styling
                             # information. This property is read-only.
                           { # A TextElement describes the content of a range of indices in the text content
@@ -2741,7 +4917,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -2758,6 +4934,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -2779,19 +4961,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -2831,40 +5007,40 @@
                                   #   placeholder.
                                   #
                                   # Inherited paragraph styles are represented as unset fields in this message.
-                                "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT
+                                    # since text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                     # is represented as 100.0. If unset, the value is inherited from the parent.
-                                    # This property is read-only.
                                 "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the start of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the end of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                    # If unset, the value is inherited from the parent. This property is
-                                    # read-only.
+                                    # If unset, the value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
-                                "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                "alignment": "A String", # The text alignment for this paragraph.
                               },
                               "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                   # belong to a list.
@@ -2899,7 +5075,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -2916,6 +5092,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -2937,19 +5119,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -3004,7 +5180,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -3021,6 +5197,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -3042,19 +5224,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -3072,116 +5248,7 @@
                             },
                           },
                         ],
-                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                              # associated with a list. A paragraph that is part of a list has an implicit
-                              # reference to that list's ID.
-                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                # level. A list has at most nine levels of nesting, so the possible values
-                                # for the keys of this map are 0 through 8, inclusive.
-                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                  # level of nesting.
-                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                            },
-                            "listId": "A String", # The ID of the list.
-                          },
-                        },
                       },
-                      "rowSpan": 42, # Row span of the cell.
                       "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                         "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                             # for newly created table cells in the Slides editor.
@@ -3214,11 +5281,12 @@
                               # case, any other fill fields set in the same request will be ignored.
                         },
                       },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
                       "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                         "rowIndex": 42, # The 0-based row index.
                         "columnIndex": 42, # The 0-based column index.
                       },
-                      "columnSpan": 42, # Column span of the cell.
                     },
                   ],
                   "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -3244,10 +5312,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -3297,9 +5365,28 @@
             },
           },
         ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
         "objectId": "A String", # The object ID for this page. Object IDs used by
             # Page and
             # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across
+            # users. Callers can assume that if two revision IDs are equal then the
+            # presentation has not changed.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -3381,23 +5468,20 @@
         "pageType": "A String", # The type of the page.
         "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
             # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
           "masterObjectId": "A String", # The object ID of the master that this slide is based on.
           "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
         },
       },
     ],
-    "pageSize": { # A width and height. # The size of pages in the presentation.
-      "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-        "magnitude": 3.14, # The magnitude.
-        "unit": "A String", # The units for magnitude.
-      },
-      "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-        "magnitude": 3.14, # The magnitude.
-        "unit": "A String", # The units for magnitude.
-      },
-    },
-    "title": "A String", # The title of the presentation.
-    "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
     "slides": [ # The slides in the presentation.
         # A slide inherits properties from a slide layout.
       { # A page in a presentation.
@@ -3433,14 +5517,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -3464,6 +5540,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -3474,7 +5558,11 @@
                 "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                     # This property is read-only.
                   "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                      # stops. This property is read-only.
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
                     { # A color and position in a gradient band.
                       "color": { # A themeable solid color value. # The color of the gradient stop.
                         "themeColor": "A String", # An opaque theme color.
@@ -3484,19 +5572,24 @@
                           "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                         },
                       },
-                      "position": 3.14, # The relative position of the color stop in the gradient band measured
-                          # in percentage. The value should be in the interval [0.0, 1.0].
                       "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                           # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
                     },
                   ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -3529,12 +5622,12 @@
                       # object's original width.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
                   "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                       # below the original bounding rectangle top edge, relative to the object's
                       # original height.
@@ -3622,6 +5715,114 @@
                 # generic shape that does not have a more specific classification.
               "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                   # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
                 "textElements": [ # The text contents broken down into its component parts, including styling
                     # information. This property is read-only.
                   { # A TextElement describes the content of a range of indices in the text content
@@ -3658,7 +5859,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -3675,6 +5876,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -3696,19 +5903,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -3748,40 +5949,40 @@
                           #   placeholder.
                           #
                           # Inherited paragraph styles are represented as unset fields in this message.
-                        "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                        "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT
+                            # since text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                             # is represented as 100.0. If unset, the value is inherited from the parent.
-                            # This property is read-only.
                         "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the start of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the end of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                            # If unset, the value is inherited from the parent. This property is
-                            # read-only.
+                            # If unset, the value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
-                        "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                        "alignment": "A String", # The text alignment for this paragraph.
                       },
                       "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                           # belong to a list.
@@ -3816,7 +6017,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -3833,6 +6034,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -3854,19 +6061,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -3921,7 +6122,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -3938,6 +6139,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -3959,19 +6166,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -3989,114 +6190,6 @@
                     },
                   },
                 ],
-                "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                      # associated with a list. A paragraph that is part of a list has an implicit
-                      # reference to that list's ID.
-                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                        # level. A list has at most nine levels of nesting, so the possible values
-                        # for the keys of this map are 0 through 8, inclusive.
-                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                          # level of nesting.
-                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                        },
-                      },
-                    },
-                    "listId": "A String", # The ID of the list.
-                  },
-                },
               },
               "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                   #
@@ -4196,10 +6289,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -4212,14 +6305,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -4243,6 +6328,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -4269,7 +6362,10 @@
                 # a linked chart embedded from Google Sheets.
               "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                   # embedded.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -4278,14 +6374,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -4309,6 +6397,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -4319,7 +6415,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -4329,19 +6429,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -4374,12 +6479,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -4442,15 +6547,14 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                  # minutes. This URL is tagged with the account of the requester. Anyone with
-                  # the URL effectively accesses the image as the original requester. Access to
-                  # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
+              "source": "A String", # The video source.
+              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -4459,14 +6563,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -4490,14 +6586,20 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
                   },
                 },
               },
-              "id": "A String", # The video source's unique identifier for this video.
-              "source": "A String", # The video source.
             },
             "table": { # A PageElement kind representing a # A table page element.
                 # table.
@@ -4524,6 +6626,114 @@
                     { # Properties and contents of each table cell.
                       "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                           # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
                         "textElements": [ # The text contents broken down into its component parts, including styling
                             # information. This property is read-only.
                           { # A TextElement describes the content of a range of indices in the text content
@@ -4560,7 +6770,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -4577,6 +6787,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -4598,19 +6814,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -4650,40 +6860,40 @@
                                   #   placeholder.
                                   #
                                   # Inherited paragraph styles are represented as unset fields in this message.
-                                "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT
+                                    # since text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                     # is represented as 100.0. If unset, the value is inherited from the parent.
-                                    # This property is read-only.
                                 "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the start of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the end of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                    # If unset, the value is inherited from the parent. This property is
-                                    # read-only.
+                                    # If unset, the value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
-                                "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                "alignment": "A String", # The text alignment for this paragraph.
                               },
                               "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                   # belong to a list.
@@ -4718,7 +6928,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -4735,6 +6945,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -4756,19 +6972,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -4823,7 +7033,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -4840,6 +7050,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -4861,19 +7077,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -4891,116 +7101,7 @@
                             },
                           },
                         ],
-                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                              # associated with a list. A paragraph that is part of a list has an implicit
-                              # reference to that list's ID.
-                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                # level. A list has at most nine levels of nesting, so the possible values
-                                # for the keys of this map are 0 through 8, inclusive.
-                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                  # level of nesting.
-                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                            },
-                            "listId": "A String", # The ID of the list.
-                          },
-                        },
                       },
-                      "rowSpan": 42, # Row span of the cell.
                       "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                         "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                             # for newly created table cells in the Slides editor.
@@ -5033,11 +7134,12 @@
                               # case, any other fill fields set in the same request will be ignored.
                         },
                       },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
                       "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                         "rowIndex": 42, # The 0-based row index.
                         "columnIndex": 42, # The 0-based column index.
                       },
-                      "columnSpan": 42, # Column span of the cell.
                     },
                   ],
                   "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -5063,10 +7165,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -5116,9 +7218,28 @@
             },
           },
         ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
         "objectId": "A String", # The object ID for this page. Object IDs used by
             # Page and
             # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across
+            # users. Callers can assume that if two revision IDs are equal then the
+            # presentation has not changed.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -5200,6 +7321,15 @@
         "pageType": "A String", # The type of the page.
         "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
             # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
           "masterObjectId": "A String", # The object ID of the master that this slide is based on.
           "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
         },
@@ -5241,14 +7371,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -5272,6 +7394,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -5282,7 +7412,11 @@
                 "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                     # This property is read-only.
                   "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                      # stops. This property is read-only.
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
                     { # A color and position in a gradient band.
                       "color": { # A themeable solid color value. # The color of the gradient stop.
                         "themeColor": "A String", # An opaque theme color.
@@ -5292,19 +7426,24 @@
                           "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                         },
                       },
-                      "position": 3.14, # The relative position of the color stop in the gradient band measured
-                          # in percentage. The value should be in the interval [0.0, 1.0].
                       "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                           # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
                     },
                   ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -5337,12 +7476,12 @@
                       # object's original width.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
                   "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                       # below the original bounding rectangle top edge, relative to the object's
                       # original height.
@@ -5430,6 +7569,114 @@
                 # generic shape that does not have a more specific classification.
               "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                   # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
                 "textElements": [ # The text contents broken down into its component parts, including styling
                     # information. This property is read-only.
                   { # A TextElement describes the content of a range of indices in the text content
@@ -5466,7 +7713,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -5483,6 +7730,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -5504,19 +7757,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -5556,40 +7803,40 @@
                           #   placeholder.
                           #
                           # Inherited paragraph styles are represented as unset fields in this message.
-                        "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                        "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT
+                            # since text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                             # is represented as 100.0. If unset, the value is inherited from the parent.
-                            # This property is read-only.
                         "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the start of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent. This property is read-only.
+                            # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                             # the end of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent. This property is read-only.
+                            # value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
                         "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                            # If unset, the value is inherited from the parent. This property is
-                            # read-only.
+                            # If unset, the value is inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
                           "unit": "A String", # The units for magnitude.
                         },
-                        "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                        "alignment": "A String", # The text alignment for this paragraph.
                       },
                       "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                           # belong to a list.
@@ -5624,7 +7871,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -5641,6 +7888,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -5662,19 +7915,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -5729,7 +7976,7 @@
                             },
                           },
                         },
-                        "bold": True or False, # Whether or not the text is bold.
+                        "bold": True or False, # Whether or not the text is rendered as bold.
                         "baselineOffset": "A String", # The text's vertical offset from its normal position.
                             #
                             # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -5746,6 +7993,12 @@
                             # Some fonts can affect the weight of the text. If an update request
                             # specifies values for both `font_family` and `bold`, the explicitly-set
                             # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
                         "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                             # are not inherited from parent text.
                             #
@@ -5767,19 +8020,13 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
                         "underline": True or False, # Whether or not the text is underlined.
                         "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                             # transparent, depending on if the `opaque_color` field in it is set.
@@ -5797,114 +8044,6 @@
                     },
                   },
                 ],
-                "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                      # associated with a list. A paragraph that is part of a list has an implicit
-                      # reference to that list's ID.
-                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                        # level. A list has at most nine levels of nesting, so the possible values
-                        # for the keys of this map are 0 through 8, inclusive.
-                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                          # level of nesting.
-                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                        },
-                      },
-                    },
-                    "listId": "A String", # The ID of the list.
-                  },
-                },
               },
               "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                   #
@@ -6004,10 +8143,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -6020,14 +8159,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -6051,6 +8182,14 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
@@ -6077,7 +8216,10 @@
                 # a linked chart embedded from Google Sheets.
               "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                   # embedded.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -6086,14 +8228,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -6117,6 +8251,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -6127,7 +8269,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -6137,19 +8283,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -6182,12 +8333,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -6250,15 +8401,14 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                  # minutes. This URL is tagged with the account of the requester. Anyone with
-                  # the URL effectively accesses the image as the original requester. Access to
-                  # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
+              "source": "A String", # The video source.
+              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -6267,14 +8417,6 @@
                     # if it exists. If there is no parent, the fields will default to the value
                     # used for new page elements created in the Slides editor, which may depend on
                     # the page element kind.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
                   "outlineFill": { # The fill of the outline. # The fill of the outline.
                     "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                         # specified color value.
@@ -6298,14 +8440,20 @@
                           # a value of 0.0 corresponds to a completely transparent color.
                     },
                   },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
                   "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                     "magnitude": 3.14, # The magnitude.
                     "unit": "A String", # The units for magnitude.
                   },
                 },
               },
-              "id": "A String", # The video source's unique identifier for this video.
-              "source": "A String", # The video source.
             },
             "table": { # A PageElement kind representing a # A table page element.
                 # table.
@@ -6332,6 +8480,114 @@
                     { # Properties and contents of each table cell.
                       "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                           # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
                         "textElements": [ # The text contents broken down into its component parts, including styling
                             # information. This property is read-only.
                           { # A TextElement describes the content of a range of indices in the text content
@@ -6368,7 +8624,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -6385,6 +8641,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -6406,19 +8668,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -6458,40 +8714,40 @@
                                   #   placeholder.
                                   #
                                   # Inherited paragraph styles are represented as unset fields in this message.
-                                "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT
+                                    # since text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                     # is represented as 100.0. If unset, the value is inherited from the parent.
-                                    # This property is read-only.
                                 "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the start of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent. This property is read-only.
+                                    # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                     # the end of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent. This property is read-only.
+                                    # value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
                                 "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                    # If unset, the value is inherited from the parent. This property is
-                                    # read-only.
+                                    # If unset, the value is inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
                                   "unit": "A String", # The units for magnitude.
                                 },
-                                "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                "alignment": "A String", # The text alignment for this paragraph.
                               },
                               "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                   # belong to a list.
@@ -6526,7 +8782,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -6543,6 +8799,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -6564,19 +8826,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -6631,7 +8887,7 @@
                                     },
                                   },
                                 },
-                                "bold": True or False, # Whether or not the text is bold.
+                                "bold": True or False, # Whether or not the text is rendered as bold.
                                 "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                     #
                                     # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -6648,6 +8904,12 @@
                                     # Some fonts can affect the weight of the text. If an update request
                                     # specifies values for both `font_family` and `bold`, the explicitly-set
                                     # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
                                 "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                     # are not inherited from parent text.
                                     #
@@ -6669,19 +8931,13 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
                                 "underline": True or False, # Whether or not the text is underlined.
                                 "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                     # transparent, depending on if the `opaque_color` field in it is set.
@@ -6699,116 +8955,7 @@
                             },
                           },
                         ],
-                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                              # associated with a list. A paragraph that is part of a list has an implicit
-                              # reference to that list's ID.
-                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                # level. A list has at most nine levels of nesting, so the possible values
-                                # for the keys of this map are 0 through 8, inclusive.
-                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                  # level of nesting.
-                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                            },
-                            "listId": "A String", # The ID of the list.
-                          },
-                        },
                       },
-                      "rowSpan": 42, # Row span of the cell.
                       "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                         "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                             # for newly created table cells in the Slides editor.
@@ -6841,11 +8988,12 @@
                               # case, any other fill fields set in the same request will be ignored.
                         },
                       },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
                       "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                         "rowIndex": 42, # The 0-based row index.
                         "columnIndex": 42, # The 0-based column index.
                       },
-                      "columnSpan": 42, # Column span of the cell.
                     },
                   ],
                   "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -6871,10 +9019,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -6924,9 +9072,28 @@
             },
           },
         ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
         "objectId": "A String", # The object ID for this page. Object IDs used by
             # Page and
             # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across
+            # users. Callers can assume that if two revision IDs are equal then the
+            # presentation has not changed.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -7008,6 +9175,15 @@
         "pageType": "A String", # The type of the page.
         "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
             # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
           "masterObjectId": "A String", # The object ID of the master that this slide is based on.
           "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
         },
@@ -7025,6 +9201,1888 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
+      "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
+          #
+          # - Placeholder shapes on a notes master contain the default text styles and
+          #   shape properties of all placeholder shapes on notes pages. Specifically,
+          #   a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a
+          #   `BODY` placeholder shape contains the speaker notes.
+          # - The notes master page properties define the common page properties
+          #   inherited by all notes pages.
+          # - Any other shapes on the notes master will appear on all notes pages.
+          #
+          # The notes master is read-only.
+        "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+            # relevant for pages with page_type LAYOUT.
+          "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+          "name": "A String", # The name of the layout.
+          "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+        },
+        "pageElements": [ # The page elements rendered on the page.
+          { # A visual element rendered on a page.
+            "wordArt": { # A PageElement kind representing # A word art page element.
+                # word art.
+              "renderedText": "A String", # The text rendered as word art.
+            },
+            "description": "A String", # The description of the page element. Combined with title to display alt
+                # text.
+            "objectId": "A String", # The object ID for this page element. Object IDs used by
+                # google.apps.slides.v1.Page and
+                # google.apps.slides.v1.PageElement share the same namespace.
+            "title": "A String", # The title of the page element. Combined with description to display alt
+                # text.
+            "image": { # A PageElement kind representing an # An image page element.
+                # image.
+              "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the image as the original requester. Access to the
+                  # image may be lost if the presentation's sharing settings change.
+              "imageProperties": { # The properties of the Image. # The properties of the image.
+                "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+                "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                    # This property is read-only.
+                  "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
+                    { # A color and position in a gradient band.
+                      "color": { # A themeable solid color value. # The color of the gradient stop.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                          # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
+                    },
+                  ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                    # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                    # This property is read-only.
+                "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                    # This property is read-only.
+                    # Image.
+                    #
+                    # The crop properties is represented by the offsets of four edges which define
+                    # a crop rectangle. The offsets are measured in percentage from the
+                    # corresponding edges of the object's original bounding rectangle towards
+                    # inside, relative to the object's original dimensions.
+                    #
+                    # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                    # rectangle is positioned inside of the object's original bounding rectangle.
+                    # - If the offset is negative or greater than 1, the corresponding edge of crop
+                    # rectangle is positioned outside of the object's original bounding rectangle.
+                    # - If the left edge of the crop rectangle is on the right side of its right
+                    # edge, the object will be flipped horizontally.
+                    # - If the top edge of the crop rectangle is below its bottom edge, the object
+                    # will be flipped vertically.
+                    # - If all offsets and rotation angle is 0, the object is not cropped.
+                    #
+                    # After cropping, the content in the crop rectangle will be stretched to fit
+                    # its container.
+                  "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                      # the right of the original bounding rectangle left edge, relative to the
+                      # object's original width.
+                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                      # Rotation angle is applied after the offset.
+                  "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                      # to the left of the original bounding rectangle right edge, relative to the
+                      # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
+                },
+                "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                    # is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+              },
+            },
+            "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
+                # to transform source coordinates (x,y) into destination coordinates (x', y')
+                # according to:
+                #
+                #       x'  x  =   shear_y  scale_y  translate_y
+                #       1  [ 1 ]
+                #
+                # After transformation,
+                #
+                #      x' = scale_x * x + shear_x * y + translate_x;
+                #      y' = scale_y * y + shear_y * x + translate_y;
+                #
+                # This message is therefore composed of these six matrix elements.
+              "translateX": 3.14, # The X coordinate translation element.
+              "translateY": 3.14, # The Y coordinate translation element.
+              "scaleX": 3.14, # The X coordinate scaling element.
+              "scaleY": 3.14, # The Y coordinate scaling element.
+              "shearY": 3.14, # The Y coordinate shearing element.
+              "shearX": 3.14, # The X coordinate shearing element.
+              "unit": "A String", # The units for translate elements.
+            },
+            "shape": { # A PageElement kind representing a # A generic shape.
+                # generic shape that does not have a more specific classification.
+              "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                  # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
+                "textElements": [ # The text contents broken down into its component parts, including styling
+                    # information. This property is read-only.
+                  { # A TextElement describes the content of a range of indices in the text content
+                      # of a Shape or TableCell.
+                    "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                        # replaced with content that can change over time.
+                      "content": "A String", # The rendered content of this auto text, if available.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                      "type": "A String", # The type of this auto text.
+                    },
+                    "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                        # units.
+                    "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                    "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                        #
+                        # The `start_index` and `end_index` of this TextElement represent the
+                        # range of the paragraph. Other TextElements with an index range contained
+                        # inside this paragraph's range are considered to be part of this
+                        # paragraph. The range of indices of two separate paragraphs will never
+                        # overlap.
+                      "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                          # inherited from the parent. Which paragraph styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A paragraph not in a list will inherit its paragraph style from the
+                          #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                          # * A paragraph in a list will inherit its paragraph style from the paragraph
+                          #   at its corresponding nesting level of the list inside the parent
+                          #   placeholder.
+                          #
+                          # Inherited paragraph styles are represented as unset fields in this message.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT
+                            # since text direction is not inherited.
+                        "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                            # is represented as 100.0. If unset, the value is inherited from the parent.
+                        "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the start of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the end of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                            # If unset, the value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "alignment": "A String", # The text alignment for this paragraph.
+                      },
+                      "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                          # belong to a list.
+                        "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                        "listId": "A String", # The ID of the list this paragraph belongs to.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                        "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                      },
+                    },
+                    "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                        # in the run have the same TextStyle.
+                        #
+                        # The `start_index` and `end_index` of TextRuns will always be fully
+                        # contained in the index range of a single `paragraph_marker` TextElement.
+                        # In other words, a TextRun will never span multiple paragraphs.
+                        # styling.
+                      "content": "A String", # The text of this run.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                    },
+                  },
+                ],
+              },
+              "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                  #
+                  # If the shape is a placeholder shape as determined by the
+                  # placeholder field, then these
+                  # properties may be inherited from a parent placeholder shape.
+                  # Determining the rendered value of the property depends on the corresponding
+                  # property_state field value.
+                "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                    # a parent placeholder if it exists. If the shape has no parent, then the
+                    # default shadow matches the defaults for new shapes created in the Slides
+                    # editor. This property is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                    # inherited from a parent placeholder if it exists. If the shape has no
+                    # parent, then the default background fill depends on the shape type,
+                    # matching the defaults for new shapes created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                  "propertyState": "A String", # The background fill property state.
+                      #
+                      # Updating the the fill on a shape will implicitly update this field to
+                      # `RENDERED`, unless another value is specified in the same request. To
+                      # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                      # any other fill fields set in the same request will be ignored.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                    # are not inherited from parent placeholders.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                    # parent placeholder if it exists. If the shape has no parent, then the
+                    # default outline depends on the shape type, matching the defaults for
+                    # new shapes created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+              "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                  # layouts and masters.
+                  #
+                  # If set, the shape is a placeholder shape and any inherited properties
+                  # can be resolved by looking at the parent placeholder identified by the
+                  # Placeholder.parent_object_id field.
+                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                    # If unset, the parent placeholder shape does not exist, so the shape does
+                    # not inherit properties from any other shape.
+                "index": 42, # The index of the placeholder. If the same placeholder types are the present
+                    # in the same page, they would have different index values.
+                "type": "A String", # The type of the placeholder.
+              },
+              "shapeType": "A String", # The type of the shape.
+            },
+            "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+                # represented as images.
+                # a linked chart embedded from Google Sheets.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
+              "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+                "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                      # This property is read-only.
+                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
+                      { # A color and position in a gradient band.
+                        "color": { # A themeable solid color value. # The color of the gradient stop.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                            # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
+                      },
+                    ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                      # This property is read-only.
+                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                      # This property is read-only.
+                      # Image.
+                      #
+                      # The crop properties is represented by the offsets of four edges which define
+                      # a crop rectangle. The offsets are measured in percentage from the
+                      # corresponding edges of the object's original bounding rectangle towards
+                      # inside, relative to the object's original dimensions.
+                      #
+                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                      # rectangle is positioned inside of the object's original bounding rectangle.
+                      # - If the offset is negative or greater than 1, the corresponding edge of crop
+                      # rectangle is positioned outside of the object's original bounding rectangle.
+                      # - If the left edge of the crop rectangle is on the right side of its right
+                      # edge, the object will be flipped horizontally.
+                      # - If the top edge of the crop rectangle is below its bottom edge, the object
+                      # will be flipped vertically.
+                      # - If all offsets and rotation angle is 0, the object is not cropped.
+                      #
+                      # After cropping, the content in the crop rectangle will be stretched to fit
+                      # its container.
+                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                        # the right of the original bounding rectangle left edge, relative to the
+                        # object's original width.
+                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                        # Rotation angle is applied after the offset.
+                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                        # to the left of the original bounding rectangle right edge, relative to the
+                        # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
+                  },
+                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                      # is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                },
+              },
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+            },
+            "video": { # A PageElement kind representing a # A video page element.
+                # video.
+              "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                  # exists and sharing settings do not change.
+              "source": "A String", # The video source.
+              "id": "A String", # The video source's unique identifier for this video.
+              "videoProperties": { # The properties of the Video. # The properties of the video.
+                "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                    # videos created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+            },
+            "table": { # A PageElement kind representing a # A table page element.
+                # table.
+              "tableColumns": [ # Properties of each column.
+                { # Properties of each column in a table.
+                  "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "tableRows": [ # Properties and contents of each row.
+                  #
+                  # Cells that span multiple rows are contained in only one of these rows and
+                  # have a row_span greater
+                  # than 1.
+                { # Properties and contents of each row in a table.
+                  "tableCells": [ # Properties and contents of each cell.
+                      #
+                      # Cells that span multiple columns are represented only once with a
+                      # column_span greater
+                      # than 1. As a result, the length of this collection does not always match
+                      # the number of columns of the entire table.
+                    { # Properties and contents of each table cell.
+                      "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                          # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
+                        "textElements": [ # The text contents broken down into its component parts, including styling
+                            # information. This property is read-only.
+                          { # A TextElement describes the content of a range of indices in the text content
+                              # of a Shape or TableCell.
+                            "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                                # replaced with content that can change over time.
+                              "content": "A String", # The rendered content of this auto text, if available.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                              "type": "A String", # The type of this auto text.
+                            },
+                            "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                                # units.
+                            "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                            "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                                #
+                                # The `start_index` and `end_index` of this TextElement represent the
+                                # range of the paragraph. Other TextElements with an index range contained
+                                # inside this paragraph's range are considered to be part of this
+                                # paragraph. The range of indices of two separate paragraphs will never
+                                # overlap.
+                              "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                  # inherited from the parent. Which paragraph styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A paragraph not in a list will inherit its paragraph style from the
+                                  #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                  # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                  #   at its corresponding nesting level of the list inside the parent
+                                  #   placeholder.
+                                  #
+                                  # Inherited paragraph styles are represented as unset fields in this message.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT
+                                    # since text direction is not inherited.
+                                "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                    # is represented as 100.0. If unset, the value is inherited from the parent.
+                                "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the start of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the end of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                    # If unset, the value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "alignment": "A String", # The text alignment for this paragraph.
+                              },
+                              "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                  # belong to a list.
+                                "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                                "listId": "A String", # The ID of the list this paragraph belongs to.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                                "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                              },
+                            },
+                            "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                                # in the run have the same TextStyle.
+                                #
+                                # The `start_index` and `end_index` of TextRuns will always be fully
+                                # contained in the index range of a single `paragraph_marker` TextElement.
+                                # In other words, a TextRun will never span multiple paragraphs.
+                                # styling.
+                              "content": "A String", # The text of this run.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                          },
+                        ],
+                      },
+                      "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                        "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                            # for newly created table cells in the Slides editor.
+                          "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                              # specified color value.
+                              #
+                              # If any field is unset, its value may be inherited from a parent placeholder
+                              # if it exists.
+                            "color": { # A themeable solid color value. # The color value of the solid fill.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                            "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                                # That is, the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color.
+                          },
+                          "propertyState": "A String", # The background fill property state.
+                              #
+                              # Updating the the fill on a table cell will implicitly update this field
+                              # to `RENDERED`, unless another value is specified in the same request. To
+                              # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                              # case, any other fill fields set in the same request will be ignored.
+                        },
+                      },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
+                      "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                        "rowIndex": 42, # The 0-based row index.
+                        "columnIndex": 42, # The 0-based column index.
+                      },
+                    },
+                  ],
+                  "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "rows": 42, # Number of rows in the table.
+              "columns": 42, # Number of columns in the table.
+            },
+            "line": { # A PageElement kind representing a # A line page element.
+                # line, curved connector, or bent connector.
+              "lineProperties": { # The properties of the Line. # The properties of the line.
+                  #
+                  # When unset, these fields default to values that match the appearance of
+                  # new lines created in the Slides editor.
+                "dashStyle": "A String", # The dash style of the line.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "endArrow": "A String", # The style of the arrow at the end of the line.
+                "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                    # lines created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+              },
+              "lineType": "A String", # The type of the line.
+            },
+            "size": { # A width and height. # The size of the page element.
+              "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+              "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+            },
+            "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+                # joined collection of PageElements.
+              "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+                # Object with schema name: PageElement
+              ],
+            },
+          },
+        ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
+        "objectId": "A String", # The object ID for this page. Object IDs used by
+            # Page and
+            # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across
+            # users. Callers can assume that if two revision IDs are equal then the
+            # presentation has not changed.
+        "pageProperties": { # The properties of the Page. # The properties of the page.
+            #
+            # The page will inherit properties from the parent page. Depending on the page
+            # type the hierarchy is defined in either
+            # SlideProperties or
+            # LayoutProperties.
+          "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+              # from a parent page if it exists. If the page has no parent, then the
+              # background fill defaults to the corresponding fill in the Slides editor.
+            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                # specified color value.
+                #
+                # If any field is unset, its value may be inherited from a parent placeholder
+                # if it exists.
+              "color": { # A themeable solid color value. # The color value of the solid fill.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+              },
+              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                  # That is, the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color.
+            },
+            "propertyState": "A String", # The background fill property state.
+                #
+                # Updating the the fill on a page will implicitly update this field to
+                # `RENDERED`, unless another value is specified in the same request. To
+                # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+                # any other fill fields set in the same request will be ignored.
+            "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+                # the specified picture. The picture is stretched to fit its container.
+              "contentUrl": "A String", # Reading the content_url:
+                  #
+                  # An URL to a picture with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the picture as the original requester. Access to the
+                  # picture may be lost if the presentation's sharing settings change.
+                  #
+                  # Writing the content_url:
+                  #
+                  # The picture is fetched once at insertion time and a copy is stored for
+                  # display inside the presentation. Pictures must be less than 50MB in size,
+                  # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                  # format.
+              "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          },
+          "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+              # a parent page. If the page has no parent, the color scheme uses a default
+              # Slides color scheme. This field is read-only.
+            "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+              { # A pair mapping a theme color type to the concrete color it represents.
+                "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+                "type": "A String", # The type of the theme color.
+              },
+            ],
+          },
+        },
+        "pageType": "A String", # The type of the page.
+        "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+            # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
+          "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+          "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
+        },
+      },
+      "pageSize": { # A width and height. # The size of pages in the presentation.
+        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+      },
+      "title": "A String", # The title of the presentation.
+      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+          # to assert that the presentation revision hasn't changed since the last
+          # read operation. Only populated if the user has edit access to the
+          # presentation.
+          #
+          # The format of the revision ID may change over time, so it should be treated
+          # opaquely. A returned revision ID is only guaranteed to be valid for 24
+          # hours after it has been returned and cannot be shared across users. Callers
+          # can assume that if two revision IDs are equal then the presentation has not
+          # changed.
       "masters": [ # The slide masters in the presentation. A slide master contains all common
           # page elements and the common properties for a set of layouts. They serve
           # three purposes:
@@ -7068,14 +11126,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -7099,6 +11149,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -7109,7 +11167,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -7119,19 +11181,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -7164,12 +11231,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -7257,6 +11324,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -7293,7 +11468,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -7310,6 +11485,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -7331,19 +11512,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -7383,40 +11558,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -7451,7 +11626,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -7468,6 +11643,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -7489,19 +11670,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -7556,7 +11731,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -7573,6 +11748,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -7594,19 +11775,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -7624,114 +11799,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -7831,10 +11898,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -7847,14 +11914,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -7878,6 +11937,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -7904,7 +11971,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -7913,14 +11983,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -7944,6 +12006,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -7954,7 +12024,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -7964,19 +12038,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -8009,12 +12088,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -8077,15 +12156,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -8094,14 +12172,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -8125,14 +12195,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -8159,6 +12235,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -8195,7 +12379,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -8212,6 +12396,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -8233,19 +12423,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -8285,40 +12469,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -8353,7 +12537,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -8370,6 +12554,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -8391,19 +12581,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -8458,7 +12642,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -8475,6 +12659,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -8496,19 +12686,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -8526,116 +12710,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -8668,11 +12743,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -8698,10 +12774,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -8751,9 +12827,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -8835,23 +12930,20 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
         },
       ],
-      "pageSize": { # A width and height. # The size of pages in the presentation.
-        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-      },
-      "title": "A String", # The title of the presentation.
-      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
       "slides": [ # The slides in the presentation.
           # A slide inherits properties from a slide layout.
         { # A page in a presentation.
@@ -8887,14 +12979,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -8918,6 +13002,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -8928,7 +13020,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -8938,19 +13034,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -8983,12 +13084,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -9076,6 +13177,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -9112,7 +13321,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -9129,6 +13338,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -9150,19 +13365,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -9202,40 +13411,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -9270,7 +13479,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -9287,6 +13496,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -9308,19 +13523,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -9375,7 +13584,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -9392,6 +13601,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -9413,19 +13628,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -9443,114 +13652,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -9650,10 +13751,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -9666,14 +13767,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -9697,6 +13790,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -9723,7 +13824,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -9732,14 +13836,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -9763,6 +13859,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -9773,7 +13877,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -9783,19 +13891,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -9828,12 +13941,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -9896,15 +14009,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -9913,14 +14025,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -9944,14 +14048,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -9978,6 +14088,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -10014,7 +14232,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -10031,6 +14249,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -10052,19 +14276,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -10104,40 +14322,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -10172,7 +14390,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -10189,6 +14407,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -10210,19 +14434,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -10277,7 +14495,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -10294,6 +14512,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -10315,19 +14539,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -10345,116 +14563,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -10487,11 +14596,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -10517,10 +14627,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -10570,9 +14680,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -10654,6 +14783,15 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
@@ -10695,14 +14833,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -10726,6 +14856,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -10736,7 +14874,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -10746,19 +14888,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -10791,12 +14938,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -10884,6 +15031,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -10920,7 +15175,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -10937,6 +15192,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -10958,19 +15219,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -11010,40 +15265,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -11078,7 +15333,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -11095,6 +15350,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -11116,19 +15377,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -11183,7 +15438,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -11200,6 +15455,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -11221,19 +15482,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -11251,114 +15506,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -11458,10 +15605,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -11474,14 +15621,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -11505,6 +15644,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -11531,7 +15678,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -11540,14 +15690,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -11571,6 +15713,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -11581,7 +15731,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -11591,19 +15745,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -11636,12 +15795,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -11704,15 +15863,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -11721,14 +15879,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -11752,14 +15902,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -11786,6 +15942,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -11822,7 +16086,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -11839,6 +16103,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -11860,19 +16130,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -11912,40 +16176,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -11980,7 +16244,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -11997,6 +16261,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -12018,19 +16288,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -12085,7 +16349,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -12102,6 +16366,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -12123,19 +16393,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -12153,116 +16417,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -12295,11 +16450,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -12325,10 +16481,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -12378,9 +16534,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -12462,6 +16637,15 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
@@ -12486,6 +16670,1888 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
+      "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
+          #
+          # - Placeholder shapes on a notes master contain the default text styles and
+          #   shape properties of all placeholder shapes on notes pages. Specifically,
+          #   a `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a
+          #   `BODY` placeholder shape contains the speaker notes.
+          # - The notes master page properties define the common page properties
+          #   inherited by all notes pages.
+          # - Any other shapes on the notes master will appear on all notes pages.
+          #
+          # The notes master is read-only.
+        "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+            # relevant for pages with page_type LAYOUT.
+          "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+          "name": "A String", # The name of the layout.
+          "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+        },
+        "pageElements": [ # The page elements rendered on the page.
+          { # A visual element rendered on a page.
+            "wordArt": { # A PageElement kind representing # A word art page element.
+                # word art.
+              "renderedText": "A String", # The text rendered as word art.
+            },
+            "description": "A String", # The description of the page element. Combined with title to display alt
+                # text.
+            "objectId": "A String", # The object ID for this page element. Object IDs used by
+                # google.apps.slides.v1.Page and
+                # google.apps.slides.v1.PageElement share the same namespace.
+            "title": "A String", # The title of the page element. Combined with description to display alt
+                # text.
+            "image": { # A PageElement kind representing an # An image page element.
+                # image.
+              "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the image as the original requester. Access to the
+                  # image may be lost if the presentation's sharing settings change.
+              "imageProperties": { # The properties of the Image. # The properties of the image.
+                "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+                "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                    # This property is read-only.
+                  "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
+                    { # A color and position in a gradient band.
+                      "color": { # A themeable solid color value. # The color of the gradient stop.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                          # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
+                    },
+                  ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                    # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                    # This property is read-only.
+                "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                    # This property is read-only.
+                    # Image.
+                    #
+                    # The crop properties is represented by the offsets of four edges which define
+                    # a crop rectangle. The offsets are measured in percentage from the
+                    # corresponding edges of the object's original bounding rectangle towards
+                    # inside, relative to the object's original dimensions.
+                    #
+                    # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                    # rectangle is positioned inside of the object's original bounding rectangle.
+                    # - If the offset is negative or greater than 1, the corresponding edge of crop
+                    # rectangle is positioned outside of the object's original bounding rectangle.
+                    # - If the left edge of the crop rectangle is on the right side of its right
+                    # edge, the object will be flipped horizontally.
+                    # - If the top edge of the crop rectangle is below its bottom edge, the object
+                    # will be flipped vertically.
+                    # - If all offsets and rotation angle is 0, the object is not cropped.
+                    #
+                    # After cropping, the content in the crop rectangle will be stretched to fit
+                    # its container.
+                  "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                      # the right of the original bounding rectangle left edge, relative to the
+                      # object's original width.
+                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                      # Rotation angle is applied after the offset.
+                  "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                      # to the left of the original bounding rectangle right edge, relative to the
+                      # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
+                },
+                "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                    # is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+              },
+            },
+            "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
+                # to transform source coordinates (x,y) into destination coordinates (x', y')
+                # according to:
+                #
+                #       x'  x  =   shear_y  scale_y  translate_y
+                #       1  [ 1 ]
+                #
+                # After transformation,
+                #
+                #      x' = scale_x * x + shear_x * y + translate_x;
+                #      y' = scale_y * y + shear_y * x + translate_y;
+                #
+                # This message is therefore composed of these six matrix elements.
+              "translateX": 3.14, # The X coordinate translation element.
+              "translateY": 3.14, # The Y coordinate translation element.
+              "scaleX": 3.14, # The X coordinate scaling element.
+              "scaleY": 3.14, # The Y coordinate scaling element.
+              "shearY": 3.14, # The Y coordinate shearing element.
+              "shearX": 3.14, # The X coordinate shearing element.
+              "unit": "A String", # The units for translate elements.
+            },
+            "shape": { # A PageElement kind representing a # A generic shape.
+                # generic shape that does not have a more specific classification.
+              "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                  # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
+                "textElements": [ # The text contents broken down into its component parts, including styling
+                    # information. This property is read-only.
+                  { # A TextElement describes the content of a range of indices in the text content
+                      # of a Shape or TableCell.
+                    "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                        # replaced with content that can change over time.
+                      "content": "A String", # The rendered content of this auto text, if available.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                      "type": "A String", # The type of this auto text.
+                    },
+                    "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                        # units.
+                    "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                    "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                        #
+                        # The `start_index` and `end_index` of this TextElement represent the
+                        # range of the paragraph. Other TextElements with an index range contained
+                        # inside this paragraph's range are considered to be part of this
+                        # paragraph. The range of indices of two separate paragraphs will never
+                        # overlap.
+                      "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                          # inherited from the parent. Which paragraph styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A paragraph not in a list will inherit its paragraph style from the
+                          #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                          # * A paragraph in a list will inherit its paragraph style from the paragraph
+                          #   at its corresponding nesting level of the list inside the parent
+                          #   placeholder.
+                          #
+                          # Inherited paragraph styles are represented as unset fields in this message.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT
+                            # since text direction is not inherited.
+                        "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                            # is represented as 100.0. If unset, the value is inherited from the parent.
+                        "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the start of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the end of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                            # If unset, the value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "alignment": "A String", # The text alignment for this paragraph.
+                      },
+                      "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                          # belong to a list.
+                        "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                        "listId": "A String", # The ID of the list this paragraph belongs to.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                        },
+                        "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                      },
+                    },
+                    "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                        # in the run have the same TextStyle.
+                        #
+                        # The `start_index` and `end_index` of TextRuns will always be fully
+                        # contained in the index range of a single `paragraph_marker` TextElement.
+                        # In other words, a TextRun will never span multiple paragraphs.
+                        # styling.
+                      "content": "A String", # The text of this run.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                      },
+                    },
+                  },
+                ],
+              },
+              "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                  #
+                  # If the shape is a placeholder shape as determined by the
+                  # placeholder field, then these
+                  # properties may be inherited from a parent placeholder shape.
+                  # Determining the rendered value of the property depends on the corresponding
+                  # property_state field value.
+                "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                    # a parent placeholder if it exists. If the shape has no parent, then the
+                    # default shadow matches the defaults for new shapes created in the Slides
+                    # editor. This property is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                    # inherited from a parent placeholder if it exists. If the shape has no
+                    # parent, then the default background fill depends on the shape type,
+                    # matching the defaults for new shapes created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                  "propertyState": "A String", # The background fill property state.
+                      #
+                      # Updating the the fill on a shape will implicitly update this field to
+                      # `RENDERED`, unless another value is specified in the same request. To
+                      # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                      # any other fill fields set in the same request will be ignored.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                    # are not inherited from parent placeholders.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                    # parent placeholder if it exists. If the shape has no parent, then the
+                    # default outline depends on the shape type, matching the defaults for
+                    # new shapes created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+              "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                  # layouts and masters.
+                  #
+                  # If set, the shape is a placeholder shape and any inherited properties
+                  # can be resolved by looking at the parent placeholder identified by the
+                  # Placeholder.parent_object_id field.
+                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                    # If unset, the parent placeholder shape does not exist, so the shape does
+                    # not inherit properties from any other shape.
+                "index": 42, # The index of the placeholder. If the same placeholder types are the present
+                    # in the same page, they would have different index values.
+                "type": "A String", # The type of the placeholder.
+              },
+              "shapeType": "A String", # The type of the shape.
+            },
+            "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+                # represented as images.
+                # a linked chart embedded from Google Sheets.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
+              "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+                "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                      # This property is read-only.
+                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
+                      { # A color and position in a gradient band.
+                        "color": { # A themeable solid color value. # The color of the gradient stop.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                            # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
+                      },
+                    ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                      # This property is read-only.
+                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                      # This property is read-only.
+                      # Image.
+                      #
+                      # The crop properties is represented by the offsets of four edges which define
+                      # a crop rectangle. The offsets are measured in percentage from the
+                      # corresponding edges of the object's original bounding rectangle towards
+                      # inside, relative to the object's original dimensions.
+                      #
+                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                      # rectangle is positioned inside of the object's original bounding rectangle.
+                      # - If the offset is negative or greater than 1, the corresponding edge of crop
+                      # rectangle is positioned outside of the object's original bounding rectangle.
+                      # - If the left edge of the crop rectangle is on the right side of its right
+                      # edge, the object will be flipped horizontally.
+                      # - If the top edge of the crop rectangle is below its bottom edge, the object
+                      # will be flipped vertically.
+                      # - If all offsets and rotation angle is 0, the object is not cropped.
+                      #
+                      # After cropping, the content in the crop rectangle will be stretched to fit
+                      # its container.
+                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                        # the right of the original bounding rectangle left edge, relative to the
+                        # object's original width.
+                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                        # Rotation angle is applied after the offset.
+                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                        # to the left of the original bounding rectangle right edge, relative to the
+                        # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
+                  },
+                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                      # is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                },
+              },
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+            },
+            "video": { # A PageElement kind representing a # A video page element.
+                # video.
+              "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                  # exists and sharing settings do not change.
+              "source": "A String", # The video source.
+              "id": "A String", # The video source's unique identifier for this video.
+              "videoProperties": { # The properties of the Video. # The properties of the video.
+                "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                    # videos created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+            },
+            "table": { # A PageElement kind representing a # A table page element.
+                # table.
+              "tableColumns": [ # Properties of each column.
+                { # Properties of each column in a table.
+                  "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "tableRows": [ # Properties and contents of each row.
+                  #
+                  # Cells that span multiple rows are contained in only one of these rows and
+                  # have a row_span greater
+                  # than 1.
+                { # Properties and contents of each row in a table.
+                  "tableCells": [ # Properties and contents of each cell.
+                      #
+                      # Cells that span multiple columns are represented only once with a
+                      # column_span greater
+                      # than 1. As a result, the length of this collection does not always match
+                      # the number of columns of the entire table.
+                    { # Properties and contents of each table cell.
+                      "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                          # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
+                        "textElements": [ # The text contents broken down into its component parts, including styling
+                            # information. This property is read-only.
+                          { # A TextElement describes the content of a range of indices in the text content
+                              # of a Shape or TableCell.
+                            "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                                # replaced with content that can change over time.
+                              "content": "A String", # The rendered content of this auto text, if available.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                              "type": "A String", # The type of this auto text.
+                            },
+                            "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                                # units.
+                            "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                            "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                                #
+                                # The `start_index` and `end_index` of this TextElement represent the
+                                # range of the paragraph. Other TextElements with an index range contained
+                                # inside this paragraph's range are considered to be part of this
+                                # paragraph. The range of indices of two separate paragraphs will never
+                                # overlap.
+                              "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                  # inherited from the parent. Which paragraph styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A paragraph not in a list will inherit its paragraph style from the
+                                  #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                  # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                  #   at its corresponding nesting level of the list inside the parent
+                                  #   placeholder.
+                                  #
+                                  # Inherited paragraph styles are represented as unset fields in this message.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT
+                                    # since text direction is not inherited.
+                                "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                    # is represented as 100.0. If unset, the value is inherited from the parent.
+                                "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the start of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the end of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                    # If unset, the value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "alignment": "A String", # The text alignment for this paragraph.
+                              },
+                              "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                  # belong to a list.
+                                "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                                "listId": "A String", # The ID of the list this paragraph belongs to.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                },
+                                "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                              },
+                            },
+                            "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                                # in the run have the same TextStyle.
+                                #
+                                # The `start_index` and `end_index` of TextRuns will always be fully
+                                # contained in the index range of a single `paragraph_marker` TextElement.
+                                # In other words, a TextRun will never span multiple paragraphs.
+                                # styling.
+                              "content": "A String", # The text of this run.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                              },
+                            },
+                          },
+                        ],
+                      },
+                      "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                        "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                            # for newly created table cells in the Slides editor.
+                          "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                              # specified color value.
+                              #
+                              # If any field is unset, its value may be inherited from a parent placeholder
+                              # if it exists.
+                            "color": { # A themeable solid color value. # The color value of the solid fill.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                            "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                                # That is, the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color.
+                          },
+                          "propertyState": "A String", # The background fill property state.
+                              #
+                              # Updating the the fill on a table cell will implicitly update this field
+                              # to `RENDERED`, unless another value is specified in the same request. To
+                              # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                              # case, any other fill fields set in the same request will be ignored.
+                        },
+                      },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
+                      "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                        "rowIndex": 42, # The 0-based row index.
+                        "columnIndex": 42, # The 0-based column index.
+                      },
+                    },
+                  ],
+                  "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "rows": 42, # Number of rows in the table.
+              "columns": 42, # Number of columns in the table.
+            },
+            "line": { # A PageElement kind representing a # A line page element.
+                # line, curved connector, or bent connector.
+              "lineProperties": { # The properties of the Line. # The properties of the line.
+                  #
+                  # When unset, these fields default to values that match the appearance of
+                  # new lines created in the Slides editor.
+                "dashStyle": "A String", # The dash style of the line.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "endArrow": "A String", # The style of the arrow at the end of the line.
+                "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                    # lines created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+              },
+              "lineType": "A String", # The type of the line.
+            },
+            "size": { # A width and height. # The size of the page element.
+              "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+              "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+            },
+            "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+                # joined collection of PageElements.
+              "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+                # Object with schema name: PageElement
+              ],
+            },
+          },
+        ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
+        "objectId": "A String", # The object ID for this page. Object IDs used by
+            # Page and
+            # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across
+            # users. Callers can assume that if two revision IDs are equal then the
+            # presentation has not changed.
+        "pageProperties": { # The properties of the Page. # The properties of the page.
+            #
+            # The page will inherit properties from the parent page. Depending on the page
+            # type the hierarchy is defined in either
+            # SlideProperties or
+            # LayoutProperties.
+          "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+              # from a parent page if it exists. If the page has no parent, then the
+              # background fill defaults to the corresponding fill in the Slides editor.
+            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                # specified color value.
+                #
+                # If any field is unset, its value may be inherited from a parent placeholder
+                # if it exists.
+              "color": { # A themeable solid color value. # The color value of the solid fill.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+              },
+              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                  # That is, the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color.
+            },
+            "propertyState": "A String", # The background fill property state.
+                #
+                # Updating the the fill on a page will implicitly update this field to
+                # `RENDERED`, unless another value is specified in the same request. To
+                # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+                # any other fill fields set in the same request will be ignored.
+            "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+                # the specified picture. The picture is stretched to fit its container.
+              "contentUrl": "A String", # Reading the content_url:
+                  #
+                  # An URL to a picture with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the picture as the original requester. Access to the
+                  # picture may be lost if the presentation's sharing settings change.
+                  #
+                  # Writing the content_url:
+                  #
+                  # The picture is fetched once at insertion time and a copy is stored for
+                  # display inside the presentation. Pictures must be less than 50MB in size,
+                  # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                  # format.
+              "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          },
+          "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+              # a parent page. If the page has no parent, the color scheme uses a default
+              # Slides color scheme. This field is read-only.
+            "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+              { # A pair mapping a theme color type to the concrete color it represents.
+                "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+                "type": "A String", # The type of the theme color.
+              },
+            ],
+          },
+        },
+        "pageType": "A String", # The type of the page.
+        "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+            # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
+          "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+          "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
+        },
+      },
+      "pageSize": { # A width and height. # The size of pages in the presentation.
+        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+      },
+      "title": "A String", # The title of the presentation.
+      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+          # to assert that the presentation revision hasn't changed since the last
+          # read operation. Only populated if the user has edit access to the
+          # presentation.
+          #
+          # The format of the revision ID may change over time, so it should be treated
+          # opaquely. A returned revision ID is only guaranteed to be valid for 24
+          # hours after it has been returned and cannot be shared across users. Callers
+          # can assume that if two revision IDs are equal then the presentation has not
+          # changed.
       "masters": [ # The slide masters in the presentation. A slide master contains all common
           # page elements and the common properties for a set of layouts. They serve
           # three purposes:
@@ -12529,14 +18595,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -12560,6 +18618,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -12570,7 +18636,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -12580,19 +18650,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -12625,12 +18700,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -12718,6 +18793,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -12754,7 +18937,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -12771,6 +18954,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -12792,19 +18981,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -12844,40 +19027,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -12912,7 +19095,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -12929,6 +19112,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -12950,19 +19139,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -13017,7 +19200,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -13034,6 +19217,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -13055,19 +19244,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -13085,114 +19268,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -13292,10 +19367,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -13308,14 +19383,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -13339,6 +19406,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -13365,7 +19440,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -13374,14 +19452,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -13405,6 +19475,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -13415,7 +19493,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -13425,19 +19507,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -13470,12 +19557,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -13538,15 +19625,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -13555,14 +19641,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -13586,14 +19664,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -13620,6 +19704,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -13656,7 +19848,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -13673,6 +19865,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -13694,19 +19892,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -13746,40 +19938,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -13814,7 +20006,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -13831,6 +20023,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -13852,19 +20050,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -13919,7 +20111,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -13936,6 +20128,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -13957,19 +20155,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -13987,116 +20179,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -14129,11 +20212,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -14159,10 +20243,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -14212,9 +20296,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -14296,23 +20399,20 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
         },
       ],
-      "pageSize": { # A width and height. # The size of pages in the presentation.
-        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-      },
-      "title": "A String", # The title of the presentation.
-      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
       "slides": [ # The slides in the presentation.
           # A slide inherits properties from a slide layout.
         { # A page in a presentation.
@@ -14348,14 +20448,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -14379,6 +20471,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -14389,7 +20489,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -14399,19 +20503,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -14444,12 +20553,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -14537,6 +20646,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -14573,7 +20790,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -14590,6 +20807,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -14611,19 +20834,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -14663,40 +20880,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -14731,7 +20948,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -14748,6 +20965,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -14769,19 +20992,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -14836,7 +21053,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -14853,6 +21070,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -14874,19 +21097,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -14904,114 +21121,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -15111,10 +21220,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -15127,14 +21236,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -15158,6 +21259,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -15184,7 +21293,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -15193,14 +21305,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -15224,6 +21328,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -15234,7 +21346,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -15244,19 +21360,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -15289,12 +21410,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -15357,15 +21478,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -15374,14 +21494,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -15405,14 +21517,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -15439,6 +21557,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -15475,7 +21701,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -15492,6 +21718,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -15513,19 +21745,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -15565,40 +21791,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -15633,7 +21859,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -15650,6 +21876,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -15671,19 +21903,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -15738,7 +21964,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -15755,6 +21981,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -15776,19 +22008,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -15806,116 +22032,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -15948,11 +22065,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -15978,10 +22096,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -16031,9 +22149,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -16115,6 +22252,15 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
@@ -16156,14 +22302,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -16187,6 +22325,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -16197,7 +22343,11 @@
                   "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                       # This property is read-only.
                     "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops. This property is read-only.
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
                       { # A color and position in a gradient band.
                         "color": { # A themeable solid color value. # The color of the gradient stop.
                           "themeColor": "A String", # An opaque theme color.
@@ -16207,19 +22357,24 @@
                             "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                           },
                         },
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
                         "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                             # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
                       },
                     ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -16252,12 +22407,12 @@
                         # object's original width.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
                     "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                         # below the original bounding rectangle top edge, relative to the object's
                         # original height.
@@ -16345,6 +22500,114 @@
                   # generic shape that does not have a more specific classification.
                 "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
                     # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
                   "textElements": [ # The text contents broken down into its component parts, including styling
                       # information. This property is read-only.
                     { # A TextElement describes the content of a range of indices in the text content
@@ -16381,7 +22644,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -16398,6 +22661,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -16419,19 +22688,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -16471,40 +22734,40 @@
                             #   placeholder.
                             #
                             # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                          "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT
+                              # since text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                               # is represented as 100.0. If unset, the value is inherited from the parent.
-                              # This property is read-only.
                           "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent. This property is read-only.
+                              # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                               # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent. This property is read-only.
+                              # value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
                           "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent. This property is
-                              # read-only.
+                              # If unset, the value is inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
                             "unit": "A String", # The units for magnitude.
                           },
-                          "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                          "alignment": "A String", # The text alignment for this paragraph.
                         },
                         "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                             # belong to a list.
@@ -16539,7 +22802,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -16556,6 +22819,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -16577,19 +22846,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -16644,7 +22907,7 @@
                               },
                             },
                           },
-                          "bold": True or False, # Whether or not the text is bold.
+                          "bold": True or False, # Whether or not the text is rendered as bold.
                           "baselineOffset": "A String", # The text's vertical offset from its normal position.
                               #
                               # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -16661,6 +22924,12 @@
                               # Some fonts can affect the weight of the text. If an update request
                               # specifies values for both `font_family` and `bold`, the explicitly-set
                               # `bold` value is used.
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "italic": True or False, # Whether or not the text is italicized.
                           "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                               # are not inherited from parent text.
                               #
@@ -16682,19 +22951,13 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
                           "underline": True or False, # Whether or not the text is underlined.
                           "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                               # transparent, depending on if the `opaque_color` field in it is set.
@@ -16712,114 +22975,6 @@
                       },
                     },
                   ],
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
                 },
                 "shapeProperties": { # The properties of a Shape. # The properties of the shape.
                     #
@@ -16919,10 +23074,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -16935,14 +23090,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -16966,6 +23113,14 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
@@ -16992,7 +23147,10 @@
                   # a linked chart embedded from Google Sheets.
                 "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
                     # embedded.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -17001,14 +23159,6 @@
                         # if it exists. If there is no parent, the fields will default to the value
                         # used for new page elements created in the Slides editor, which may depend on
                         # the page element kind.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
                       "outlineFill": { # The fill of the outline. # The fill of the outline.
                         "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                             # specified color value.
@@ -17032,6 +23182,14 @@
                               # a value of 0.0 corresponds to a completely transparent color.
                         },
                       },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
                       "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                         "magnitude": 3.14, # The magnitude.
                         "unit": "A String", # The units for magnitude.
@@ -17042,7 +23200,11 @@
                     "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                         # This property is read-only.
                       "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops. This property is read-only.
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
                         { # A color and position in a gradient band.
                           "color": { # A themeable solid color value. # The color of the gradient stop.
                             "themeColor": "A String", # An opaque theme color.
@@ -17052,19 +23214,24 @@
                               "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                             },
                           },
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
                           "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                               # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
                         },
                       ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -17097,12 +23264,12 @@
                           # object's original width.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
                       "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                           # below the original bounding rectangle top edge, relative to the object's
                           # original height.
@@ -17165,15 +23332,14 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
+                "source": "A String", # The video source.
+                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -17182,14 +23348,6 @@
                       # if it exists. If there is no parent, the fields will default to the value
                       # used for new page elements created in the Slides editor, which may depend on
                       # the page element kind.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
                     "outlineFill": { # The fill of the outline. # The fill of the outline.
                       "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                           # specified color value.
@@ -17213,14 +23371,20 @@
                             # a value of 0.0 corresponds to a completely transparent color.
                       },
                     },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
                     "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                   },
                 },
-                "id": "A String", # The video source's unique identifier for this video.
-                "source": "A String", # The video source.
               },
               "table": { # A PageElement kind representing a # A table page element.
                   # table.
@@ -17247,6 +23411,114 @@
                       { # Properties and contents of each table cell.
                         "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                             # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
                           "textElements": [ # The text contents broken down into its component parts, including styling
                               # information. This property is read-only.
                             { # A TextElement describes the content of a range of indices in the text content
@@ -17283,7 +23555,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -17300,6 +23572,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -17321,19 +23599,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -17373,40 +23645,40 @@
                                     #   placeholder.
                                     #
                                     # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                                  "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT
+                                      # since text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                       # is represented as 100.0. If unset, the value is inherited from the parent.
-                                      # This property is read-only.
                                   "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent. This property is read-only.
+                                      # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                       # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent. This property is read-only.
+                                      # value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
                                   "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent. This property is
-                                      # read-only.
+                                      # If unset, the value is inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
                                     "unit": "A String", # The units for magnitude.
                                   },
-                                  "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                                  "alignment": "A String", # The text alignment for this paragraph.
                                 },
                                 "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                                     # belong to a list.
@@ -17441,7 +23713,7 @@
                                         },
                                       },
                                     },
-                                    "bold": True or False, # Whether or not the text is bold.
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
                                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                         #
                                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -17458,6 +23730,12 @@
                                         # Some fonts can affect the weight of the text. If an update request
                                         # specifies values for both `font_family` and `bold`, the explicitly-set
                                         # `bold` value is used.
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "italic": True or False, # Whether or not the text is italicized.
                                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                         # are not inherited from parent text.
                                         #
@@ -17479,19 +23757,13 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
                                     "underline": True or False, # Whether or not the text is underlined.
                                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -17546,7 +23818,7 @@
                                       },
                                     },
                                   },
-                                  "bold": True or False, # Whether or not the text is bold.
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
                                   "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                       #
                                       # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -17563,6 +23835,12 @@
                                       # Some fonts can affect the weight of the text. If an update request
                                       # specifies values for both `font_family` and `bold`, the explicitly-set
                                       # `bold` value is used.
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "italic": True or False, # Whether or not the text is italicized.
                                   "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                       # are not inherited from parent text.
                                       #
@@ -17584,19 +23862,13 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
                                   "underline": True or False, # Whether or not the text is underlined.
                                   "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                       # transparent, depending on if the `opaque_color` field in it is set.
@@ -17614,116 +23886,7 @@
                               },
                             },
                           ],
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
                         },
-                        "rowSpan": 42, # Row span of the cell.
                         "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                           "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                               # for newly created table cells in the Slides editor.
@@ -17756,11 +23919,12 @@
                                 # case, any other fill fields set in the same request will be ignored.
                           },
                         },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
                         "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                           "rowIndex": 42, # The 0-based row index.
                           "columnIndex": 42, # The 0-based column index.
                         },
-                        "columnSpan": 42, # Column span of the cell.
                       },
                     ],
                     "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -17786,10 +23950,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -17839,9 +24003,28 @@
               },
             },
           ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
           "objectId": "A String", # The object ID for this page. Object IDs used by
               # Page and
               # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across
+              # users. Callers can assume that if two revision IDs are equal then the
+              # presentation has not changed.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -17923,6 +24106,15 @@
           "pageType": "A String", # The type of the page.
           "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
               # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
             "masterObjectId": "A String", # The object ID of the master that this slide is based on.
             "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
           },
diff --git a/docs/dyn/slides_v1.presentations.pages.html b/docs/dyn/slides_v1.presentations.pages.html
index 2d57246..78511b7 100644
--- a/docs/dyn/slides_v1.presentations.pages.html
+++ b/docs/dyn/slides_v1.presentations.pages.html
@@ -126,14 +126,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -157,6 +149,14 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
@@ -167,7 +167,11 @@
             "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                 # This property is read-only.
               "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                  # stops. This property is read-only.
+                  # stops.
+                  #
+                  # The colors in the gradient will replace the corresponding colors at
+                  # the same position in the color palette and apply to the image. This
+                  # property is read-only.
                 { # A color and position in a gradient band.
                   "color": { # A themeable solid color value. # The color of the gradient stop.
                     "themeColor": "A String", # An opaque theme color.
@@ -177,19 +181,24 @@
                       "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                     },
                   },
-                  "position": 3.14, # The relative position of the color stop in the gradient band measured
-                      # in percentage. The value should be in the interval [0.0, 1.0].
                   "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                       # fully opaque.
+                  "position": 3.14, # The relative position of the color stop in the gradient band measured
+                      # in percentage. The value should be in the interval [0.0, 1.0].
                 },
               ],
+              "name": "A String", # The name of the recolor effect.
+                  #
+                  # The name is determined from the `recolor_stops` by matching the gradient
+                  # against the colors in the page's current color scheme. This property is
+                  # read-only.
             },
             "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -222,12 +231,12 @@
                   # object's original width.
               "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                   # Rotation angle is applied after the offset.
-              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                  # above the original bounding rectangle bottom edge, relative to the object's
-                  # original height.
               "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                   # to the left of the original bounding rectangle right edge, relative to the
                   # object's original width.
+              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                  # above the original bounding rectangle bottom edge, relative to the object's
+                  # original height.
               "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                   # below the original bounding rectangle top edge, relative to the object's
                   # original height.
@@ -315,6 +324,114 @@
             # generic shape that does not have a more specific classification.
           "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
               # text box or rectangle) or a table cell in a page.
+            "lists": { # The bulleted lists contained in this text, keyed by list ID.
+              "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                  # associated with a list. A paragraph that is part of a list has an implicit
+                  # reference to that list's ID.
+                "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                    # level. A list has at most nine levels of nesting, so the possible values
+                    # for the keys of this map are 0 through 8, inclusive.
+                  "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                      # level of nesting.
+                    "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                        #
+                        # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                        # inherited from the parent. Which text styles are inherited depend on the
+                        # nesting level of lists:
+                        #
+                        # * A text run in a paragraph that is not in a list will inherit its text style
+                        #   from the the newline character in the paragraph at the 0 nesting level of
+                        #   the list inside the parent placeholder.
+                        # * A text run in a paragraph that is in a list will inherit its text style
+                        #   from the newline character in the paragraph at its corresponding nesting
+                        #   level of the list inside the parent placeholder.
+                        #
+                        # Inherited text styles are represented as unset fields in this message. If
+                        # text is contained in a shape without a parent placeholder, unsetting these
+                        # fields will revert the style to a value matching the defaults in the Slides
+                        # editor.
+                      "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      "bold": True or False, # Whether or not the text is rendered as bold.
+                      "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                          #
+                          # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                          # rendered in a smaller font size, computed based on the `font_size` field.
+                          # The `font_size` itself is not affected by changes in this field.
+                      "strikethrough": True or False, # Whether or not the text is struck through.
+                      "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                      "fontFamily": "A String", # The font family of the text.
+                          #
+                          # The font family can be any font from the Font menu in Slides or from
+                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                          # unrecognized, the text is rendered in `Arial`.
+                          #
+                          # Some fonts can affect the weight of the text. If an update request
+                          # specifies values for both `font_family` and `bold`, the explicitly-set
+                          # `bold` value is used.
+                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                          # points.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "italic": True or False, # Whether or not the text is italicized.
+                      "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                          # are not inherited from parent text.
+                          #
+                          # Changing the link in an update request causes some other changes to the
+                          # text style of the range:
+                          #
+                          # * When setting a link, the text foreground color will be set to
+                          #   ThemeColorType.HYPERLINK and the text will
+                          #   be underlined. If these fields are modified in the same
+                          #   request, those values will be used instead of the link defaults.
+                          # * Setting a link on a text range that overlaps with an existing link will
+                          #   also update the existing link to point to the new URL.
+                          # * Links are not settable on newline characters. As a result, setting a link
+                          #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                          #   will separate the newline character(s) into their own text runs. The
+                          #   link will be applied separately to the runs before and after the newline.
+                          # * Removing a link will update the text style of the range to match the
+                          #   style of the preceding text (or the default text styles if the preceding
+                          #   text is another link) unless different styles are being set in the same
+                          #   request.
+                        "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                        "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                            # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
+                        "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                            # addressed by its position.
+                      },
+                      "underline": True or False, # Whether or not the text is underlined.
+                      "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                          # transparent, depending on if the `opaque_color` field in it is set.
+                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                            # a transparent color.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                    },
+                  },
+                },
+                "listId": "A String", # The ID of the list.
+              },
+            },
             "textElements": [ # The text contents broken down into its component parts, including styling
                 # information. This property is read-only.
               { # A TextElement describes the content of a range of indices in the text content
@@ -351,7 +468,7 @@
                         },
                       },
                     },
-                    "bold": True or False, # Whether or not the text is bold.
+                    "bold": True or False, # Whether or not the text is rendered as bold.
                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                         #
                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -368,6 +485,12 @@
                         # Some fonts can affect the weight of the text. If an update request
                         # specifies values for both `font_family` and `bold`, the explicitly-set
                         # `bold` value is used.
+                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                        # points.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "italic": True or False, # Whether or not the text is italicized.
                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                         # are not inherited from parent text.
                         #
@@ -389,19 +512,13 @@
                         #   text is another link) unless different styles are being set in the same
                         #   request.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
-                    "italic": True or False, # Whether or not the text is italicized.
-                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                        # points.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
                     "underline": True or False, # Whether or not the text is underlined.
                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -441,40 +558,40 @@
                       #   placeholder.
                       #
                       # Inherited paragraph styles are represented as unset fields in this message.
-                    "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                    "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                    "spacingMode": "A String", # The spacing mode for the paragraph.
+                    "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                        # LEFT_TO_RIGHT
+                        # since text direction is not inherited.
                     "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                        # inherited from the parent. This property is read-only.
+                        # inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                     "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                         # is represented as 100.0. If unset, the value is inherited from the parent.
-                        # This property is read-only.
                     "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                         # the start of the text, based on the current text direction. If unset, the
-                        # value is inherited from the parent. This property is read-only.
+                        # value is inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                     "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                        # inherited from the parent. This property is read-only.
+                        # inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                     "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                         # the end of the text, based on the current text direction. If unset, the
-                        # value is inherited from the parent. This property is read-only.
+                        # value is inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
                     "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                        # If unset, the value is inherited from the parent. This property is
-                        # read-only.
+                        # If unset, the value is inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
                       "unit": "A String", # The units for magnitude.
                     },
-                    "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                    "alignment": "A String", # The text alignment for this paragraph.
                   },
                   "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                       # belong to a list.
@@ -509,7 +626,7 @@
                           },
                         },
                       },
-                      "bold": True or False, # Whether or not the text is bold.
+                      "bold": True or False, # Whether or not the text is rendered as bold.
                       "baselineOffset": "A String", # The text's vertical offset from its normal position.
                           #
                           # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -526,6 +643,12 @@
                           # Some fonts can affect the weight of the text. If an update request
                           # specifies values for both `font_family` and `bold`, the explicitly-set
                           # `bold` value is used.
+                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                          # points.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "italic": True or False, # Whether or not the text is italicized.
                       "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                           # are not inherited from parent text.
                           #
@@ -547,19 +670,13 @@
                           #   text is another link) unless different styles are being set in the same
                           #   request.
                         "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
                         "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                             # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
                         "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                             # addressed by its position.
                       },
-                      "italic": True or False, # Whether or not the text is italicized.
-                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                          # points.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
                       "underline": True or False, # Whether or not the text is underlined.
                       "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                           # transparent, depending on if the `opaque_color` field in it is set.
@@ -614,7 +731,7 @@
                         },
                       },
                     },
-                    "bold": True or False, # Whether or not the text is bold.
+                    "bold": True or False, # Whether or not the text is rendered as bold.
                     "baselineOffset": "A String", # The text's vertical offset from its normal position.
                         #
                         # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -631,6 +748,12 @@
                         # Some fonts can affect the weight of the text. If an update request
                         # specifies values for both `font_family` and `bold`, the explicitly-set
                         # `bold` value is used.
+                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                        # points.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "italic": True or False, # Whether or not the text is italicized.
                     "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                         # are not inherited from parent text.
                         #
@@ -652,19 +775,13 @@
                         #   text is another link) unless different styles are being set in the same
                         #   request.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
-                    "italic": True or False, # Whether or not the text is italicized.
-                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                        # points.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
                     "underline": True or False, # Whether or not the text is underlined.
                     "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                         # transparent, depending on if the `opaque_color` field in it is set.
@@ -682,114 +799,6 @@
                 },
               },
             ],
-            "lists": { # The bulleted lists contained in this text, keyed by list ID.
-              "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                  # associated with a list. A paragraph that is part of a list has an implicit
-                  # reference to that list's ID.
-                "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                    # level. A list has at most nine levels of nesting, so the possible values
-                    # for the keys of this map are 0 through 8, inclusive.
-                  "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                      # level of nesting.
-                    "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                        #
-                        # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                        # inherited from the parent. Which text styles are inherited depend on the
-                        # nesting level of lists:
-                        #
-                        # * A text run in a paragraph that is not in a list will inherit its text style
-                        #   from the the newline character in the paragraph at the 0 nesting level of
-                        #   the list inside the parent placeholder.
-                        # * A text run in a paragraph that is in a list will inherit its text style
-                        #   from the newline character in the paragraph at its corresponding nesting
-                        #   level of the list inside the parent placeholder.
-                        #
-                        # Inherited text styles are represented as unset fields in this message. If
-                        # text is contained in a shape without a parent placeholder, unsetting these
-                        # fields will revert the style to a value matching the defaults in the Slides
-                        # editor.
-                      "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                          # transparent, depending on if the `opaque_color` field in it is set.
-                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                            # a transparent color.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                      },
-                      "bold": True or False, # Whether or not the text is bold.
-                      "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                          #
-                          # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                          # rendered in a smaller font size, computed based on the `font_size` field.
-                          # The `font_size` itself is not affected by changes in this field.
-                      "strikethrough": True or False, # Whether or not the text is struck through.
-                      "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                      "fontFamily": "A String", # The font family of the text.
-                          #
-                          # The font family can be any font from the Font menu in Slides or from
-                          # [Google Fonts] (https://fonts.google.com/). If the font name is
-                          # unrecognized, the text is rendered in `Arial`.
-                          #
-                          # Some fonts can affect the weight of the text. If an update request
-                          # specifies values for both `font_family` and `bold`, the explicitly-set
-                          # `bold` value is used.
-                      "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                          # are not inherited from parent text.
-                          #
-                          # Changing the link in an update request causes some other changes to the
-                          # text style of the range:
-                          #
-                          # * When setting a link, the text foreground color will be set to
-                          #   ThemeColorType.HYPERLINK and the text will
-                          #   be underlined. If these fields are modified in the same
-                          #   request, those values will be used instead of the link defaults.
-                          # * Setting a link on a text range that overlaps with an existing link will
-                          #   also update the existing link to point to the new URL.
-                          # * Links are not settable on newline characters. As a result, setting a link
-                          #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                          #   will separate the newline character(s) into their own text runs. The
-                          #   link will be applied separately to the runs before and after the newline.
-                          # * Removing a link will update the text style of the range to match the
-                          #   style of the preceding text (or the default text styles if the preceding
-                          #   text is another link) unless different styles are being set in the same
-                          #   request.
-                        "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
-                        "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                            # in the presentation. There may not be a slide at this index.
-                        "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                            # addressed by its position.
-                      },
-                      "italic": True or False, # Whether or not the text is italicized.
-                      "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                          # points.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
-                      "underline": True or False, # Whether or not the text is underlined.
-                      "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                          # transparent, depending on if the `opaque_color` field in it is set.
-                        "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                            # a transparent color.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                      },
-                    },
-                  },
-                },
-                "listId": "A String", # The ID of the list.
-              },
-            },
           },
           "shapeProperties": { # The properties of a Shape. # The properties of the shape.
               #
@@ -889,10 +898,10 @@
             "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                 # are not inherited from parent placeholders.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -905,14 +914,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -936,6 +937,14 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
@@ -962,7 +971,10 @@
             # a linked chart embedded from Google Sheets.
           "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
               # embedded.
-          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+          "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+              # minutes. This URL is tagged with the account of the requester. Anyone with
+              # the URL effectively accesses the image as the original requester. Access to
+              # the image may be lost if the presentation's sharing settings change.
           "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
             "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
               "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -971,14 +983,6 @@
                   # if it exists. If there is no parent, the fields will default to the value
                   # used for new page elements created in the Slides editor, which may depend on
                   # the page element kind.
-                "dashStyle": "A String", # The dash style of the outline.
-                "propertyState": "A String", # The outline property state.
-                    #
-                    # Updating the the outline on a page element will implicitly update this
-                    # field to`RENDERED`, unless another value is specified in the same request.
-                    # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                    # this case, any other outline fields set in the same request will be
-                    # ignored.
                 "outlineFill": { # The fill of the outline. # The fill of the outline.
                   "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                       # specified color value.
@@ -1002,6 +1006,14 @@
                         # a value of 0.0 corresponds to a completely transparent color.
                   },
                 },
+                "propertyState": "A String", # The outline property state.
+                    #
+                    # Updating the the outline on a page element will implicitly update this
+                    # field to`RENDERED`, unless another value is specified in the same request.
+                    # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                    # this case, any other outline fields set in the same request will be
+                    # ignored.
+                "dashStyle": "A String", # The dash style of the outline.
                 "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                   "magnitude": 3.14, # The magnitude.
                   "unit": "A String", # The units for magnitude.
@@ -1012,7 +1024,11 @@
               "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
                   # This property is read-only.
                 "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                    # stops. This property is read-only.
+                    # stops.
+                    #
+                    # The colors in the gradient will replace the corresponding colors at
+                    # the same position in the color palette and apply to the image. This
+                    # property is read-only.
                   { # A color and position in a gradient band.
                     "color": { # A themeable solid color value. # The color of the gradient stop.
                       "themeColor": "A String", # An opaque theme color.
@@ -1022,19 +1038,24 @@
                         "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                       },
                     },
-                    "position": 3.14, # The relative position of the color stop in the gradient band measured
-                        # in percentage. The value should be in the interval [0.0, 1.0].
                     "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
                         # fully opaque.
+                    "position": 3.14, # The relative position of the color stop in the gradient band measured
+                        # in percentage. The value should be in the interval [0.0, 1.0].
                   },
                 ],
+                "name": "A String", # The name of the recolor effect.
+                    #
+                    # The name is determined from the `recolor_stops` by matching the gradient
+                    # against the colors in the page's current color scheme. This property is
+                    # read-only.
               },
               "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                    # presentation with this ID. A page with this ID may not exist.
                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                     # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                     # addressed by its position.
               },
@@ -1067,12 +1088,12 @@
                     # object's original width.
                 "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                     # Rotation angle is applied after the offset.
-                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                    # above the original bounding rectangle bottom edge, relative to the object's
-                    # original height.
                 "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                     # to the left of the original bounding rectangle right edge, relative to the
                     # object's original width.
+                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                    # above the original bounding rectangle bottom edge, relative to the object's
+                    # original height.
                 "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
                     # below the original bounding rectangle top edge, relative to the object's
                     # original height.
@@ -1135,15 +1156,14 @@
                   # [-1.0, 1.0], where 0 means no effect. This property is read-only.
             },
           },
-          "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-              # minutes. This URL is tagged with the account of the requester. Anyone with
-              # the URL effectively accesses the image as the original requester. Access to
-              # the image may be lost if the presentation's sharing settings change.
+          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
         },
         "video": { # A PageElement kind representing a # A video page element.
             # video.
           "url": "A String", # An URL to a video. The URL is valid as long as the source video
               # exists and sharing settings do not change.
+          "source": "A String", # The video source.
+          "id": "A String", # The video source's unique identifier for this video.
           "videoProperties": { # The properties of the Video. # The properties of the video.
             "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                 # videos created in the Slides editor.
@@ -1152,14 +1172,6 @@
                 # if it exists. If there is no parent, the fields will default to the value
                 # used for new page elements created in the Slides editor, which may depend on
                 # the page element kind.
-              "dashStyle": "A String", # The dash style of the outline.
-              "propertyState": "A String", # The outline property state.
-                  #
-                  # Updating the the outline on a page element will implicitly update this
-                  # field to`RENDERED`, unless another value is specified in the same request.
-                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                  # this case, any other outline fields set in the same request will be
-                  # ignored.
               "outlineFill": { # The fill of the outline. # The fill of the outline.
                 "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
                     # specified color value.
@@ -1183,14 +1195,20 @@
                       # a value of 0.0 corresponds to a completely transparent color.
                 },
               },
+              "propertyState": "A String", # The outline property state.
+                  #
+                  # Updating the the outline on a page element will implicitly update this
+                  # field to`RENDERED`, unless another value is specified in the same request.
+                  # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                  # this case, any other outline fields set in the same request will be
+                  # ignored.
+              "dashStyle": "A String", # The dash style of the outline.
               "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
                 "magnitude": 3.14, # The magnitude.
                 "unit": "A String", # The units for magnitude.
               },
             },
           },
-          "id": "A String", # The video source's unique identifier for this video.
-          "source": "A String", # The video source.
         },
         "table": { # A PageElement kind representing a # A table page element.
             # table.
@@ -1217,6 +1235,114 @@
                 { # Properties and contents of each table cell.
                   "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
                       # text box or rectangle) or a table cell in a page.
+                    "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                      "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                          # associated with a list. A paragraph that is part of a list has an implicit
+                          # reference to that list's ID.
+                        "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                            # level. A list has at most nine levels of nesting, so the possible values
+                            # for the keys of this map are 0 through 8, inclusive.
+                          "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                              # level of nesting.
+                            "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                #
+                                # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                # inherited from the parent. Which text styles are inherited depend on the
+                                # nesting level of lists:
+                                #
+                                # * A text run in a paragraph that is not in a list will inherit its text style
+                                #   from the the newline character in the paragraph at the 0 nesting level of
+                                #   the list inside the parent placeholder.
+                                # * A text run in a paragraph that is in a list will inherit its text style
+                                #   from the newline character in the paragraph at its corresponding nesting
+                                #   level of the list inside the parent placeholder.
+                                #
+                                # Inherited text styles are represented as unset fields in this message. If
+                                # text is contained in a shape without a parent placeholder, unsetting these
+                                # fields will revert the style to a value matching the defaults in the Slides
+                                # editor.
+                              "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                              "bold": True or False, # Whether or not the text is rendered as bold.
+                              "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                  #
+                                  # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                  # rendered in a smaller font size, computed based on the `font_size` field.
+                                  # The `font_size` itself is not affected by changes in this field.
+                              "strikethrough": True or False, # Whether or not the text is struck through.
+                              "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                                  #
+                                  # Some fonts can affect the weight of the text. If an update request
+                                  # specifies values for both `font_family` and `bold`, the explicitly-set
+                                  # `bold` value is used.
+                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                  # points.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "italic": True or False, # Whether or not the text is italicized.
+                              "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                  # are not inherited from parent text.
+                                  #
+                                  # Changing the link in an update request causes some other changes to the
+                                  # text style of the range:
+                                  #
+                                  # * When setting a link, the text foreground color will be set to
+                                  #   ThemeColorType.HYPERLINK and the text will
+                                  #   be underlined. If these fields are modified in the same
+                                  #   request, those values will be used instead of the link defaults.
+                                  # * Setting a link on a text range that overlaps with an existing link will
+                                  #   also update the existing link to point to the new URL.
+                                  # * Links are not settable on newline characters. As a result, setting a link
+                                  #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                  #   will separate the newline character(s) into their own text runs. The
+                                  #   link will be applied separately to the runs before and after the newline.
+                                  # * Removing a link will update the text style of the range to match the
+                                  #   style of the preceding text (or the default text styles if the preceding
+                                  #   text is another link) unless different styles are being set in the same
+                                  #   request.
+                                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                    # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
+                                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                    # addressed by its position.
+                              },
+                              "underline": True or False, # Whether or not the text is underlined.
+                              "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                  # transparent, depending on if the `opaque_color` field in it is set.
+                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                    # a transparent color.
+                                  "themeColor": "A String", # An opaque theme color.
+                                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                  },
+                                },
+                              },
+                            },
+                          },
+                        },
+                        "listId": "A String", # The ID of the list.
+                      },
+                    },
                     "textElements": [ # The text contents broken down into its component parts, including styling
                         # information. This property is read-only.
                       { # A TextElement describes the content of a range of indices in the text content
@@ -1253,7 +1379,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -1270,6 +1396,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -1291,19 +1423,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -1343,40 +1469,40 @@
                               #   placeholder.
                               #
                               # Inherited paragraph styles are represented as unset fields in this message.
-                            "spacingMode": "A String", # The spacing mode for the paragraph. This property is read-only.
-                            "direction": "A String", # The text direction of this paragraph. This property is read-only.
+                            "spacingMode": "A String", # The spacing mode for the paragraph.
+                            "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                # LEFT_TO_RIGHT
+                                # since text direction is not inherited.
                             "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                # inherited from the parent. This property is read-only.
+                                # inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
                               "unit": "A String", # The units for magnitude.
                             },
                             "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
                                 # is represented as 100.0. If unset, the value is inherited from the parent.
-                                # This property is read-only.
                             "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                 # the start of the text, based on the current text direction. If unset, the
-                                # value is inherited from the parent. This property is read-only.
+                                # value is inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
                               "unit": "A String", # The units for magnitude.
                             },
                             "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                # inherited from the parent. This property is read-only.
+                                # inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
                               "unit": "A String", # The units for magnitude.
                             },
                             "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
                                 # the end of the text, based on the current text direction. If unset, the
-                                # value is inherited from the parent. This property is read-only.
+                                # value is inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
                               "unit": "A String", # The units for magnitude.
                             },
                             "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                # If unset, the value is inherited from the parent. This property is
-                                # read-only.
+                                # If unset, the value is inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
                               "unit": "A String", # The units for magnitude.
                             },
-                            "alignment": "A String", # The text alignment for this paragraph. This property is read-only.
+                            "alignment": "A String", # The text alignment for this paragraph.
                           },
                           "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
                               # belong to a list.
@@ -1411,7 +1537,7 @@
                                   },
                                 },
                               },
-                              "bold": True or False, # Whether or not the text is bold.
+                              "bold": True or False, # Whether or not the text is rendered as bold.
                               "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                   #
                                   # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -1428,6 +1554,12 @@
                                   # Some fonts can affect the weight of the text. If an update request
                                   # specifies values for both `font_family` and `bold`, the explicitly-set
                                   # `bold` value is used.
+                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                  # points.
+                                "magnitude": 3.14, # The magnitude.
+                                "unit": "A String", # The units for magnitude.
+                              },
+                              "italic": True or False, # Whether or not the text is italicized.
                               "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                   # are not inherited from parent text.
                                   #
@@ -1449,19 +1581,13 @@
                                   #   text is another link) unless different styles are being set in the same
                                   #   request.
                                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
                                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                     # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
                                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                     # addressed by its position.
                               },
-                              "italic": True or False, # Whether or not the text is italicized.
-                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                  # points.
-                                "magnitude": 3.14, # The magnitude.
-                                "unit": "A String", # The units for magnitude.
-                              },
                               "underline": True or False, # Whether or not the text is underlined.
                               "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                   # transparent, depending on if the `opaque_color` field in it is set.
@@ -1516,7 +1642,7 @@
                                 },
                               },
                             },
-                            "bold": True or False, # Whether or not the text is bold.
+                            "bold": True or False, # Whether or not the text is rendered as bold.
                             "baselineOffset": "A String", # The text's vertical offset from its normal position.
                                 #
                                 # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
@@ -1533,6 +1659,12 @@
                                 # Some fonts can affect the weight of the text. If an update request
                                 # specifies values for both `font_family` and `bold`, the explicitly-set
                                 # `bold` value is used.
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "italic": True or False, # Whether or not the text is italicized.
                             "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
                                 # are not inherited from parent text.
                                 #
@@ -1554,19 +1686,13 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
                             "underline": True or False, # Whether or not the text is underlined.
                             "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
                                 # transparent, depending on if the `opaque_color` field in it is set.
@@ -1584,116 +1710,7 @@
                         },
                       },
                     ],
-                    "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                      "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                          # associated with a list. A paragraph that is part of a list has an implicit
-                          # reference to that list's ID.
-                        "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                            # level. A list has at most nine levels of nesting, so the possible values
-                            # for the keys of this map are 0 through 8, inclusive.
-                          "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                              # level of nesting.
-                            "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                #
-                                # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                # inherited from the parent. Which text styles are inherited depend on the
-                                # nesting level of lists:
-                                #
-                                # * A text run in a paragraph that is not in a list will inherit its text style
-                                #   from the the newline character in the paragraph at the 0 nesting level of
-                                #   the list inside the parent placeholder.
-                                # * A text run in a paragraph that is in a list will inherit its text style
-                                #   from the newline character in the paragraph at its corresponding nesting
-                                #   level of the list inside the parent placeholder.
-                                #
-                                # Inherited text styles are represented as unset fields in this message. If
-                                # text is contained in a shape without a parent placeholder, unsetting these
-                                # fields will revert the style to a value matching the defaults in the Slides
-                                # editor.
-                              "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                  # transparent, depending on if the `opaque_color` field in it is set.
-                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                    # a transparent color.
-                                  "themeColor": "A String", # An opaque theme color.
-                                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                  },
-                                },
-                              },
-                              "bold": True or False, # Whether or not the text is bold.
-                              "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                  #
-                                  # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                  # rendered in a smaller font size, computed based on the `font_size` field.
-                                  # The `font_size` itself is not affected by changes in this field.
-                              "strikethrough": True or False, # Whether or not the text is struck through.
-                              "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                              "fontFamily": "A String", # The font family of the text.
-                                  #
-                                  # The font family can be any font from the Font menu in Slides or from
-                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                  # unrecognized, the text is rendered in `Arial`.
-                                  #
-                                  # Some fonts can affect the weight of the text. If an update request
-                                  # specifies values for both `font_family` and `bold`, the explicitly-set
-                                  # `bold` value is used.
-                              "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                  # are not inherited from parent text.
-                                  #
-                                  # Changing the link in an update request causes some other changes to the
-                                  # text style of the range:
-                                  #
-                                  # * When setting a link, the text foreground color will be set to
-                                  #   ThemeColorType.HYPERLINK and the text will
-                                  #   be underlined. If these fields are modified in the same
-                                  #   request, those values will be used instead of the link defaults.
-                                  # * Setting a link on a text range that overlaps with an existing link will
-                                  #   also update the existing link to point to the new URL.
-                                  # * Links are not settable on newline characters. As a result, setting a link
-                                  #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                  #   will separate the newline character(s) into their own text runs. The
-                                  #   link will be applied separately to the runs before and after the newline.
-                                  # * Removing a link will update the text style of the range to match the
-                                  #   style of the preceding text (or the default text styles if the preceding
-                                  #   text is another link) unless different styles are being set in the same
-                                  #   request.
-                                "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
-                                "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                    # in the presentation. There may not be a slide at this index.
-                                "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                    # addressed by its position.
-                              },
-                              "italic": True or False, # Whether or not the text is italicized.
-                              "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                  # points.
-                                "magnitude": 3.14, # The magnitude.
-                                "unit": "A String", # The units for magnitude.
-                              },
-                              "underline": True or False, # Whether or not the text is underlined.
-                              "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                  # transparent, depending on if the `opaque_color` field in it is set.
-                                "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                    # a transparent color.
-                                  "themeColor": "A String", # An opaque theme color.
-                                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                  },
-                                },
-                              },
-                            },
-                          },
-                        },
-                        "listId": "A String", # The ID of the list.
-                      },
-                    },
                   },
-                  "rowSpan": 42, # Row span of the cell.
                   "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
                     "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                         # for newly created table cells in the Slides editor.
@@ -1726,11 +1743,12 @@
                           # case, any other fill fields set in the same request will be ignored.
                     },
                   },
+                  "rowSpan": 42, # Row span of the cell.
+                  "columnSpan": 42, # Column span of the cell.
                   "location": { # A location of a single table cell within a table. # The location of the cell within the table.
                     "rowIndex": 42, # The 0-based row index.
                     "columnIndex": 42, # The 0-based column index.
                   },
-                  "columnSpan": 42, # Column span of the cell.
                 },
               ],
               "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
@@ -1756,10 +1774,10 @@
             "endArrow": "A String", # The style of the arrow at the end of the line.
             "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -1809,9 +1827,28 @@
         },
       },
     ],
+    "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+        # relevant for pages with page_type NOTES.
+      "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+          # notes for the corresponding slide.
+          # The actual shape may not always exist on the notes page. Inserting text
+          # using this object ID will automatically create the shape. In this case, the
+          # actual shape may have different object ID. The `GetPresentation` or
+          # `GetPage` action will always return the latest object ID.
+    },
     "objectId": "A String", # The object ID for this page. Object IDs used by
         # Page and
         # PageElement share the same namespace.
+    "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+        # update requests to assert that the presentation revision hasn't changed
+        # since the last read operation. Only populated if the user has edit access
+        # to the presentation.
+        #
+        # The format of the revision ID may change over time, so it should be treated
+        # opaquely. A returned revision ID is only guaranteed to be valid for 24
+        # hours after it has been returned and cannot be shared across
+        # users. Callers can assume that if two revision IDs are equal then the
+        # presentation has not changed.
     "pageProperties": { # The properties of the Page. # The properties of the page.
         #
         # The page will inherit properties from the parent page. Depending on the page
@@ -1893,6 +1930,15 @@
     "pageType": "A String", # The type of the page.
     "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
         # relevant for pages with page_type SLIDE.
+      "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+          # appearance of a notes page when printing or exporting slides with speaker
+          # notes. A notes page inherits properties from the
+          # notes master.
+          # The placeholder shape with type BODY on the notes page contains the speaker
+          # notes for this slide. The ID of this shape is identified by the
+          # speakerNotesObjectId field.
+          # The notes page is read-only except for the text content and styles of the
+          # speaker notes shape.
       "masterObjectId": "A String", # The object ID of the master that this slide is based on.
       "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
     },
diff --git a/docs/dyn/sourcerepo_v1.html b/docs/dyn/sourcerepo_v1.html
new file mode 100644
index 0000000..cdb7002
--- /dev/null
+++ b/docs/dyn/sourcerepo_v1.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="sourcerepo_v1.html">Cloud Source Repositories API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sourcerepo_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sourcerepo_v1.projects.html b/docs/dyn/sourcerepo_v1.projects.html
new file mode 100644
index 0000000..3ef0c91
--- /dev/null
+++ b/docs/dyn/sourcerepo_v1.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sourcerepo_v1.html">Cloud Source Repositories API</a> . <a href="sourcerepo_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sourcerepo_v1.projects.repos.html">repos()</a></code>
+</p>
+<p class="firstline">Returns the repos Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sourcerepo_v1.projects.repos.html b/docs/dyn/sourcerepo_v1.projects.repos.html
new file mode 100644
index 0000000..e700c2a
--- /dev/null
+++ b/docs/dyn/sourcerepo_v1.projects.repos.html
@@ -0,0 +1,1064 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sourcerepo_v1.html">Cloud Source Repositories API</a> . <a href="sourcerepo_v1.projects.html">projects</a> . <a href="sourcerepo_v1.projects.repos.html">repos</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a repo in the given project with the given name..</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a repo.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns information about a repo.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns all repos belonging to a project.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates a repo in the given project with the given name..
+
+If the named repository already exists, `CreateRepo` returns
+`ALREADY_EXISTS`.
+
+Args:
+  parent: string, The project in which to create the repo. Values are of the form
+`projects/<project>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A repository (or repo) is a Git repository storing versioned source content.
+  "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
+  "size": "A String", # The size in bytes of the repo.
+  "name": "A String", # Resource name of the repository, of the form
+      # `projects/<project>/repos/<repo>`.
+  "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
+      # hosting service, for example GitHub or BitBucket.
+    "url": "A String", # URL of the main repository at the other hosting service.
+    "webhookId": "A String", # ID of the webhook listening to updates to trigger mirroring.
+        # Removing this webook from the other hosting service will stop
+        # Google Cloud Source Repositories from receiving notifications,
+        # and thereby disabling mirroring.
+    "deployKeyId": "A String", # ID of the SSH deploy key at the other hosting service.
+        # Removing this key from the other service would deauthorize
+        # Google Cloud Source Repositories from mirroring.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A repository (or repo) is a Git repository storing versioned source content.
+    "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
+    "size": "A String", # The size in bytes of the repo.
+    "name": "A String", # Resource name of the repository, of the form
+        # `projects/<project>/repos/<repo>`.
+    "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
+        # hosting service, for example GitHub or BitBucket.
+      "url": "A String", # URL of the main repository at the other hosting service.
+      "webhookId": "A String", # ID of the webhook listening to updates to trigger mirroring.
+          # Removing this webook from the other hosting service will stop
+          # Google Cloud Source Repositories from receiving notifications,
+          # and thereby disabling mirroring.
+      "deployKeyId": "A String", # ID of the SSH deploy key at the other hosting service.
+          # Removing this key from the other service would deauthorize
+          # Google Cloud Source Repositories from mirroring.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+  <pre>Deletes a repo.
+
+Args:
+  name: string, The name of the repo to delete. Values are of the form
+`projects/<project>/repos/<repo>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Returns information about a repo.
+
+Args:
+  name: string, The name of the requested repository. Values are of the form
+`projects/<project>/repos/<repo>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A repository (or repo) is a Git repository storing versioned source content.
+    "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
+    "size": "A String", # The size in bytes of the repo.
+    "name": "A String", # Resource name of the repository, of the form
+        # `projects/<project>/repos/<repo>`.
+    "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
+        # hosting service, for example GitHub or BitBucket.
+      "url": "A String", # URL of the main repository at the other hosting service.
+      "webhookId": "A String", # ID of the webhook listening to updates to trigger mirroring.
+          # Removing this webook from the other hosting service will stop
+          # Google Cloud Source Repositories from receiving notifications,
+          # and thereby disabling mirroring.
+      "deployKeyId": "A String", # ID of the SSH deploy key at the other hosting service.
+          # Removing this key from the other service would deauthorize
+          # Google Cloud Source Repositories from mirroring.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource.
+Returns an empty policy if the resource exists and does not have a policy
+set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name=None, x__xgafv=None)</code>
+  <pre>Returns all repos belonging to a project.
+
+Args:
+  name: string, The project ID whose repos should be listed. Values are of the form
+`projects/<project>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for ListRepos.
+    "repos": [ # The listed repos.
+      { # A repository (or repo) is a Git repository storing versioned source content.
+        "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
+        "size": "A String", # The size in bytes of the repo.
+        "name": "A String", # Resource name of the repository, of the form
+            # `projects/<project>/repos/<repo>`.
+        "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
+            # hosting service, for example GitHub or BitBucket.
+          "url": "A String", # URL of the main repository at the other hosting service.
+          "webhookId": "A String", # ID of the webhook listening to updates to trigger mirroring.
+              # Removing this webook from the other hosting service will stop
+              # Google Cloud Source Repositories from receiving notifications,
+              # and thereby disabling mirroring.
+          "deployKeyId": "A String", # ID of the SSH deploy key at the other hosting service.
+              # Removing this key from the other service would deauthorize
+              # Google Cloud Source Repositories from mirroring.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any
+existing policy.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            # Example Policy with multiple AuditConfigs:
+            # {
+            #   "audit_configs": [
+            #     {
+            #       "service": "allServices"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #           "exempted_members": [
+            #             "user:foo@gmail.com"
+            #           ]
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #         },
+            #         {
+            #           "log_type": "ADMIN_READ",
+            #         }
+            #       ]
+            #     },
+            #     {
+            #       "service": "fooservice@googleapis.com"
+            #       "audit_log_configs": [
+            #         {
+            #           "log_type": "DATA_READ",
+            #         },
+            #         {
+            #           "log_type": "DATA_WRITE",
+            #           "exempted_members": [
+            #             "user:bar@gmail.com"
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #   ]
+            # }
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          # Example Policy with multiple AuditConfigs:
+          # {
+          #   "audit_configs": [
+          #     {
+          #       "service": "allServices"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #           "exempted_members": [
+          #             "user:foo@gmail.com"
+          #           ]
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #         },
+          #         {
+          #           "log_type": "ADMIN_READ",
+          #         }
+          #       ]
+          #     },
+          #     {
+          #       "service": "fooservice@googleapis.com"
+          #       "audit_log_configs": [
+          #         {
+          #           "log_type": "DATA_READ",
+          #         },
+          #         {
+          #           "log_type": "DATA_WRITE",
+          #           "exempted_members": [
+          #             "user:bar@gmail.com"
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #   ]
+          # }
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested.
+See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.html b/docs/dyn/spanner_v1.html
new file mode 100644
index 0000000..262e274
--- /dev/null
+++ b/docs/dyn/spanner_v1.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="spanner_v1.html">Cloud Spanner API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.projects.html b/docs/dyn/spanner_v1.projects.html
new file mode 100644
index 0000000..3e704f6
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instanceConfigs.html">instanceConfigs()</a></code>
+</p>
+<p class="firstline">Returns the instanceConfigs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.projects.instanceConfigs.html b/docs/dyn/spanner_v1.projects.instanceConfigs.html
new file mode 100644
index 0000000..8f650d9
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instanceConfigs.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="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instanceConfigs.html">instanceConfigs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a particular instance configuration.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the supported instance configurations for a given project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets information about a particular instance configuration.
+
+Args:
+  name: string, Required. The name of the requested instance configuration. Values are of
+the form `projects/<project>/instanceConfigs/<config>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A possible configuration for a Cloud Spanner instance. Configurations
+      # define the geographic placement of nodes and their replication.
+    "displayName": "A String", # The name of this instance configuration as it appears in UIs.
+    "name": "A String", # A unique identifier for the instance configuration.  Values
+        # are of the form
+        # `projects/<project>/instanceConfigs/a-z*`
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists the supported instance configurations for a given project.
+
+Args:
+  parent: string, Required. The name of the project for which a list of supported instance
+configurations is requested. Values are of the form
+`projects/<project>`. (required)
+  pageToken: string, If non-empty, `page_token` should contain a
+next_page_token
+from a previous ListInstanceConfigsResponse.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Number of instance configurations to be returned in the response. If 0 or
+less, defaults to the server's maximum allowed page size.
+
+Returns:
+  An object of the form:
+
+    { # The response for ListInstanceConfigs.
+    "nextPageToken": "A String", # `next_page_token` can be sent in a subsequent
+        # ListInstanceConfigs call to
+        # fetch more of the matching instance configurations.
+    "instanceConfigs": [ # The list of requested instance configurations.
+      { # A possible configuration for a Cloud Spanner instance. Configurations
+          # define the geographic placement of nodes and their replication.
+        "displayName": "A String", # The name of this instance configuration as it appears in UIs.
+        "name": "A String", # A unique identifier for the instance configuration.  Values
+            # are of the form
+            # `projects/<project>/instanceConfigs/a-z*`
+      },
+    ],
+  }</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/spanner_v1.projects.instances.databases.html b/docs/dyn/spanner_v1.projects.instances.databases.html
new file mode 100644
index 0000000..281e53e
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instances.databases.html
@@ -0,0 +1,1218 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instances.html">instances</a> . <a href="spanner_v1.projects.instances.databases.html">databases</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instances.databases.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instances.databases.sessions.html">sessions()</a></code>
+</p>
+<p class="firstline">Returns the sessions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Cloud Spanner database and starts to prepare it for serving.</p>
+<p class="toc_element">
+  <code><a href="#dropDatabase">dropDatabase(database, x__xgafv=None)</a></code></p>
+<p class="firstline">Drops (aka deletes) a Cloud Spanner database.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the state of a Cloud Spanner database.</p>
+<p class="toc_element">
+  <code><a href="#getDdl">getDdl(database, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the schema of a Cloud Spanner database as a list of formatted</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a database resource. Returns an empty</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists Cloud Spanner databases.</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="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on a database resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that the caller has on the specified database resource.</p>
+<p class="toc_element">
+  <code><a href="#updateDdl">updateDdl(database, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the schema of a Cloud Spanner database by</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates a new Cloud Spanner database and starts to prepare it for serving.
+The returned long-running operation will
+have a name of the format `<database_name>/operations/<operation_id>` and
+can be used to track preparation of the database. The
+metadata field type is
+CreateDatabaseMetadata. The
+response field type is
+Database, if successful.
+
+Args:
+  parent: string, Required. The name of the instance that will serve the new database.
+Values are of the form `projects/<project>/instances/<instance>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for CreateDatabase.
+    "extraStatements": [ # An optional list of DDL statements to run inside the newly created
+        # database. Statements can create tables, indexes, etc. These
+        # statements execute atomically with the creation of the database:
+        # if there is an error in any statement, the database is not created.
+      "A String",
+    ],
+    "createStatement": "A String", # Required. A `CREATE DATABASE` statement, which specifies the ID of the
+        # new database.  The database ID must conform to the regular expression
+        # `a-z*[a-z0-9]` and be between 2 and 30 characters in length.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="dropDatabase">dropDatabase(database, x__xgafv=None)</code>
+  <pre>Drops (aka deletes) a Cloud Spanner database.
+
+Args:
+  database: string, Required. The database to be dropped. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets the state of a Cloud Spanner database.
+
+Args:
+  name: string, Required. The name of the requested database. Values are of the form
+`projects/<project>/instances/<instance>/databases/<database>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud Spanner database.
+    "state": "A String", # Output only. The current database state.
+    "name": "A String", # Required. The name of the database. Values are of the form
+        # `projects/<project>/instances/<instance>/databases/<database>`,
+        # where `<database>` is as specified in the `CREATE DATABASE`
+        # statement. This name can be passed to other API methods to
+        # identify the database.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getDdl">getDdl(database, x__xgafv=None)</code>
+  <pre>Returns the schema of a Cloud Spanner database as a list of formatted
+DDL statements. This method does not show pending schema updates, those may
+be queried using the Operations API.
+
+Args:
+  database: string, Required. The database whose schema we wish to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response for GetDatabaseDdl.
+    "statements": [ # A list of formatted DDL statements defining the schema of the database
+        # specified in the request.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a database resource. Returns an empty
+policy if a database exists but does not have a policy set.
+
+Authorization requires `spanner.databases.getIamPolicy` permission on
+resource.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for database resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `GetIamPolicy` method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+            # logging for the `service` specified above.
+            # Follows the same format of Binding.members.
+            # This field is deprecated in favor of per-permission-type exemptions.
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists Cloud Spanner databases.
+
+Args:
+  parent: string, Required. The instance whose databases should be listed.
+Values are of the form `projects/<project>/instances/<instance>`. (required)
+  pageToken: string, If non-empty, `page_token` should contain a
+next_page_token from a
+previous ListDatabasesResponse.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Number of databases to be returned in the response. If 0 or less,
+defaults to the server's maximum allowed page size.
+
+Returns:
+  An object of the form:
+
+    { # The response for ListDatabases.
+    "nextPageToken": "A String", # `next_page_token` can be sent in a subsequent
+        # ListDatabases call to fetch more
+        # of the matching databases.
+    "databases": [ # Databases that matched the request.
+      { # A Cloud Spanner database.
+        "state": "A String", # Output only. The current database state.
+        "name": "A String", # Required. The name of the database. Values are of the form
+            # `projects/<project>/instances/<instance>/databases/<database>`,
+            # where `<database>` is as specified in the `CREATE DATABASE`
+            # statement. This name can be passed to other API methods to
+            # identify the database.
+      },
+    ],
+  }</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="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on a database resource. Replaces any
+existing policy.
+
+Authorization requires `spanner.databases.setIamPolicy` permission on
+resource.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for databases resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+          "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+              # logging for the `service` specified above.
+              # Follows the same format of Binding.members.
+              # This field is deprecated in favor of per-permission-type exemptions.
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+            # logging for the `service` specified above.
+            # Follows the same format of Binding.members.
+            # This field is deprecated in favor of per-permission-type exemptions.
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
+  <pre>Returns permissions that the caller has on the specified database resource.
+
+Attempting this RPC on a non-existent Cloud Spanner database will result in
+a NOT_FOUND error if the user has `spanner.databases.list` permission on
+the containing Cloud Spanner instance. Otherwise returns an empty set of
+permissions.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for database resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # REQUIRED: The set of permissions to check for 'resource'.
+        # Permissions with wildcards (such as '*', 'spanner.*', 'spanner.instances.*') are not allowed.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateDdl">updateDdl(database, body, x__xgafv=None)</code>
+  <pre>Updates the schema of a Cloud Spanner database by
+creating/altering/dropping tables, columns, indexes, etc. The returned
+long-running operation will have a name of
+the format `<database_name>/operations/<operation_id>` and can be used to
+track execution of the schema change(s). The
+metadata field type is
+UpdateDatabaseDdlMetadata.  The operation has no response.
+
+Args:
+  database: string, Required. The database to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Enqueues the given DDL statements to be applied, in order but not
+      # necessarily all at once, to the database schema at some point (or
+      # points) in the future. The server checks that the statements
+      # are executable (syntactically valid, name tables that exist, etc.)
+      # before enqueueing them, but they may still fail upon
+      # later execution (e.g., if a statement from another batch of
+      # statements is applied first and it conflicts in some way, or if
+      # there is some data-related problem like a `NULL` value in a column to
+      # which `NOT NULL` would be added). If a statement fails, all
+      # subsequent statements in the batch are automatically cancelled.
+      # 
+      # Each batch of statements is assigned a name which can be used with
+      # the Operations API to monitor
+      # progress. See the
+      # operation_id field for more
+      # details.
+    "statements": [ # DDL statements to be applied to the database.
+      "A String",
+    ],
+    "operationId": "A String", # If empty, the new update request is assigned an
+        # automatically-generated operation ID. Otherwise, `operation_id`
+        # is used to construct the name of the resulting
+        # Operation.
+        # 
+        # Specifying an explicit operation ID simplifies determining
+        # whether the statements were executed in the event that the
+        # UpdateDatabaseDdl call is replayed,
+        # or the return value is otherwise lost: the database and
+        # `operation_id` fields can be combined to form the
+        # name of the resulting
+        # longrunning.Operation: `<database>/operations/<operation_id>`.
+        # 
+        # `operation_id` should be unique within the database, and must be
+        # a valid identifier: `a-z*`. Note that
+        # automatically-generated operation IDs always begin with an
+        # underscore. If the named operation already exists,
+        # UpdateDatabaseDdl returns
+        # `ALREADY_EXISTS`.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.operations.html b/docs/dyn/spanner_v1.projects.instances.databases.operations.html
new file mode 100644
index 0000000..62ba24f
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instances.databases.operations.html
@@ -0,0 +1,393 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instances.html">instances</a> . <a href="spanner_v1.projects.instances.databases.html">databases</a> . <a href="spanner_v1.projects.instances.databases.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation.  The server</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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="cancel">cancel(name, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation.  The server
+makes a best effort to cancel the operation, but success is not
+guaranteed.  If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.  Clients can use
+Operations.GetOperation or
+other methods to check whether the cancellation succeeded or whether the
+operation completed despite cancellation. On successful cancellation,
+the operation is not deleted; instead, it becomes an operation with
+an Operation.error value with a google.rpc.Status.code of 1,
+corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is
+no longer interested in the operation result. It does not cancel the
+operation. If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding below allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`.
+
+Args:
+  name: string, The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+      },
+    ],
+  }</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/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
new file mode 100644
index 0000000..a8af489
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
@@ -0,0 +1,4542 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instances.html">instances</a> . <a href="spanner_v1.projects.instances.databases.html">databases</a> . <a href="spanner_v1.projects.instances.databases.sessions.html">sessions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#beginTransaction">beginTransaction(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Begins a new transaction. This step can often be skipped:</p>
+<p class="toc_element">
+  <code><a href="#commit">commit(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Commits a transaction. The request includes the mutations to be</p>
+<p class="toc_element">
+  <code><a href="#create">create(database, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new session. A session can be used to perform</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Ends a session, releasing server resources associated with it.</p>
+<p class="toc_element">
+  <code><a href="#executeSql">executeSql(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Executes an SQL query, returning all rows in a single reply. This</p>
+<p class="toc_element">
+  <code><a href="#executeStreamingSql">executeStreamingSql(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Like ExecuteSql, except returns the result</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a session. Returns `NOT_FOUND` if the session does not exist.</p>
+<p class="toc_element">
+  <code><a href="#read">read(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Reads rows from the database using key lookups and scans, as a</p>
+<p class="toc_element">
+  <code><a href="#rollback">rollback(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Rolls back a transaction, releasing any locks it holds. It is a good</p>
+<p class="toc_element">
+  <code><a href="#streamingRead">streamingRead(session, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Like Read, except returns the result set as a</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="beginTransaction">beginTransaction(session, body, x__xgafv=None)</code>
+  <pre>Begins a new transaction. This step can often be skipped:
+Read, ExecuteSql and
+Commit can begin a new transaction as a
+side-effect.
+
+Args:
+  session: string, Required. The session in which the transaction runs. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for BeginTransaction.
+    "options": { # # Transactions # Required. Options for the new transaction.
+        #
+        #
+        # Each session can have at most one active transaction at a time. After the
+        # active transaction is completed, the session can immediately be
+        # re-used for the next transaction. It is not necessary to create a
+        # new session for each transaction.
+        #
+        # # Transaction Modes
+        #
+        # Cloud Spanner supports two transaction modes:
+        #
+        #   1. Locking read-write. This type of transaction is the only way
+        #      to write data into Cloud Spanner. These transactions rely on
+        #      pessimistic locking and, if necessary, two-phase commit.
+        #      Locking read-write transactions may abort, requiring the
+        #      application to retry.
+        #
+        #   2. Snapshot read-only. This transaction type provides guaranteed
+        #      consistency across several reads, but does not allow
+        #      writes. Snapshot read-only transactions can be configured to
+        #      read at timestamps in the past. Snapshot read-only
+        #      transactions do not need to be committed.
+        #
+        # For transactions that only read, snapshot read-only transactions
+        # provide simpler semantics and are almost always faster. In
+        # particular, read-only transactions do not take locks, so they do
+        # not conflict with read-write transactions. As a consequence of not
+        # taking locks, they also do not abort, so retry loops are not needed.
+        #
+        # Transactions may only read/write data in a single database. They
+        # may, however, read/write data in different tables within that
+        # database.
+        #
+        # ## Locking Read-Write Transactions
+        #
+        # Locking transactions may be used to atomically read-modify-write
+        # data anywhere in a database. This type of transaction is externally
+        # consistent.
+        #
+        # Clients should attempt to minimize the amount of time a transaction
+        # is active. Faster transactions commit with higher probability
+        # and cause less contention. Cloud Spanner attempts to keep read locks
+        # active as long as the transaction continues to do reads, and the
+        # transaction has not been terminated by
+        # Commit or
+        # Rollback.  Long periods of
+        # inactivity at the client may cause Cloud Spanner to release a
+        # transaction's locks and abort it.
+        #
+        # Reads performed within a transaction acquire locks on the data
+        # being read. Writes can only be done at commit time, after all reads
+        # have been completed.
+        # Conceptually, a read-write transaction consists of zero or more
+        # reads or SQL queries followed by
+        # Commit. At any time before
+        # Commit, the client can send a
+        # Rollback request to abort the
+        # transaction.
+        #
+        # ### Semantics
+        #
+        # Cloud Spanner can commit the transaction if all read locks it acquired
+        # are still valid at commit time, and it is able to acquire write
+        # locks for all writes. Cloud Spanner can abort the transaction for any
+        # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+        # that the transaction has not modified any user data in Cloud Spanner.
+        #
+        # Unless the transaction commits, Cloud Spanner makes no guarantees about
+        # how long the transaction's locks were held for. It is an error to
+        # use Cloud Spanner locks for any sort of mutual exclusion other than
+        # between Cloud Spanner transactions themselves.
+        #
+        # ### Retrying Aborted Transactions
+        #
+        # When a transaction aborts, the application can choose to retry the
+        # whole transaction again. To maximize the chances of successfully
+        # committing the retry, the client should execute the retry in the
+        # same session as the original attempt. The original session's lock
+        # priority increases with each consecutive abort, meaning that each
+        # attempt has a slightly better chance of success than the previous.
+        #
+        # Under some circumstances (e.g., many transactions attempting to
+        # modify the same row(s)), a transaction can abort many times in a
+        # short period before successfully committing. Thus, it is not a good
+        # idea to cap the number of retries a transaction can attempt;
+        # instead, it is better to limit the total amount of wall time spent
+        # retrying.
+        #
+        # ### Idle Transactions
+        #
+        # A transaction is considered idle if it has no outstanding reads or
+        # SQL queries and has not started a read or SQL query within the last 10
+        # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+        # don't hold on to locks indefinitely. In that case, the commit will
+        # fail with error `ABORTED`.
+        #
+        # If this behavior is undesirable, periodically executing a simple
+        # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+        # transaction from becoming idle.
+        #
+        # ## Snapshot Read-Only Transactions
+        #
+        # Snapshot read-only transactions provides a simpler method than
+        # locking read-write transactions for doing several consistent
+        # reads. However, this type of transaction does not support writes.
+        #
+        # Snapshot transactions do not take locks. Instead, they work by
+        # choosing a Cloud Spanner timestamp, then executing all reads at that
+        # timestamp. Since they do not acquire locks, they do not block
+        # concurrent read-write transactions.
+        #
+        # Unlike locking read-write transactions, snapshot read-only
+        # transactions never abort. They can fail if the chosen read
+        # timestamp is garbage collected; however, the default garbage
+        # collection policy is generous enough that most applications do not
+        # need to worry about this in practice.
+        #
+        # Snapshot read-only transactions do not need to call
+        # Commit or
+        # Rollback (and in fact are not
+        # permitted to do so).
+        #
+        # To execute a snapshot transaction, the client specifies a timestamp
+        # bound, which tells Cloud Spanner how to choose a read timestamp.
+        #
+        # The types of timestamp bound are:
+        #
+        #   - Strong (the default).
+        #   - Bounded staleness.
+        #   - Exact staleness.
+        #
+        # If the Cloud Spanner database to be read is geographically distributed,
+        # stale read-only transactions can execute more quickly than strong
+        # or read-write transaction, because they are able to execute far
+        # from the leader replica.
+        #
+        # Each type of timestamp bound is discussed in detail below.
+        #
+        # ### Strong
+        #
+        # Strong reads are guaranteed to see the effects of all transactions
+        # that have committed before the start of the read. Furthermore, all
+        # rows yielded by a single read are consistent with each other -- if
+        # any part of the read observes a transaction, all parts of the read
+        # see the transaction.
+        #
+        # Strong reads are not repeatable: two consecutive strong read-only
+        # transactions might return inconsistent results if there are
+        # concurrent writes. If consistency across reads is required, the
+        # reads should be executed within a transaction or at an exact read
+        # timestamp.
+        #
+        # See TransactionOptions.ReadOnly.strong.
+        #
+        # ### Exact Staleness
+        #
+        # These timestamp bounds execute reads at a user-specified
+        # timestamp. Reads at a timestamp are guaranteed to see a consistent
+        # prefix of the global transaction history: they observe
+        # modifications done by all transactions with a commit timestamp <=
+        # the read timestamp, and observe none of the modifications done by
+        # transactions with a larger commit timestamp. They will block until
+        # all conflicting transactions that may be assigned commit timestamps
+        # <= the read timestamp have finished.
+        #
+        # The timestamp can either be expressed as an absolute Cloud Spanner commit
+        # timestamp or a staleness relative to the current time.
+        #
+        # These modes do not require a "negotiation phase" to pick a
+        # timestamp. As a result, they execute slightly faster than the
+        # equivalent boundedly stale concurrency modes. On the other hand,
+        # boundedly stale reads usually return fresher results.
+        #
+        # See TransactionOptions.ReadOnly.read_timestamp and
+        # TransactionOptions.ReadOnly.exact_staleness.
+        #
+        # ### Bounded Staleness
+        #
+        # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+        # subject to a user-provided staleness bound. Cloud Spanner chooses the
+        # newest timestamp within the staleness bound that allows execution
+        # of the reads at the closest available replica without blocking.
+        #
+        # All rows yielded are consistent with each other -- if any part of
+        # the read observes a transaction, all parts of the read see the
+        # transaction. Boundedly stale reads are not repeatable: two stale
+        # reads, even if they use the same staleness bound, can execute at
+        # different timestamps and thus return inconsistent results.
+        #
+        # Boundedly stale reads execute in two phases: the first phase
+        # negotiates a timestamp among all replicas needed to serve the
+        # read. In the second phase, reads are executed at the negotiated
+        # timestamp.
+        #
+        # As a result of the two phase execution, bounded staleness reads are
+        # usually a little slower than comparable exact staleness
+        # reads. However, they are typically able to return fresher
+        # results, and are more likely to execute at the closest replica.
+        #
+        # Because the timestamp negotiation requires up-front knowledge of
+        # which rows will be read, it can only be used with single-use
+        # read-only transactions.
+        #
+        # See TransactionOptions.ReadOnly.max_staleness and
+        # TransactionOptions.ReadOnly.min_read_timestamp.
+        #
+        # ### Old Read Timestamps and Garbage Collection
+        #
+        # Cloud Spanner continuously garbage collects deleted and overwritten data
+        # in the background to reclaim storage space. This process is known
+        # as "version GC". By default, version GC reclaims versions after they
+        # are one hour old. Because of this, Cloud Spanner cannot perform reads
+        # at read timestamps more than one hour in the past. This
+        # restriction also applies to in-progress reads and/or SQL queries whose
+        # timestamp become too old while executing. Reads and SQL queries with
+        # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+      "readWrite": { # Options for read-write transactions. # Transaction may write.
+          #
+          # Authorization to begin a read-write transaction requires
+          # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+          # on the `session` resource.
+      },
+      "readOnly": { # Options for read-only transactions. # Transaction will not write.
+          #
+          # Authorization to begin a read-only transaction requires
+          # `spanner.databases.beginReadOnlyTransaction` permission
+          # on the `session` resource.
+        "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+            #
+            # This is useful for requesting fresher data than some previous
+            # read, or data that is fresh enough to observe the effects of some
+            # previously committed transaction whose timestamp is known.
+            #
+            # Note that this option can only be used in single-use transactions.
+        "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+            # reads at a specific timestamp are repeatable; the same read at
+            # the same timestamp always returns the same data. If the
+            # timestamp is in the future, the read will block until the
+            # specified timestamp, modulo the read's deadline.
+            #
+            # Useful for large scale consistent reads such as mapreduces, or
+            # for coordinating many reads against a consistent snapshot of the
+            # data.
+        "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+            # seconds. Guarantees that all writes that have committed more
+            # than the specified number of seconds ago are visible. Because
+            # Cloud Spanner chooses the exact timestamp, this mode works even if
+            # the client's local clock is substantially skewed from Cloud Spanner
+            # commit timestamps.
+            #
+            # Useful for reading the freshest data available at a nearby
+            # replica, while bounding the possible staleness if the local
+            # replica has fallen behind.
+            #
+            # Note that this option can only be used in single-use
+            # transactions.
+        "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+            # old. The timestamp is chosen soon after the read is started.
+            #
+            # Guarantees that all writes that have committed more than the
+            # specified number of seconds ago are visible. Because Cloud Spanner
+            # chooses the exact timestamp, this mode works even if the client's
+            # local clock is substantially skewed from Cloud Spanner commit
+            # timestamps.
+            #
+            # Useful for reading at nearby replicas without the distributed
+            # timestamp negotiation overhead of `max_staleness`.
+        "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+            # the Transaction message that describes the transaction.
+        "strong": True or False, # Read at a timestamp where all previously committed transactions
+            # are visible.
+      },
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A transaction.
+    "readTimestamp": "A String", # For snapshot read-only transactions, the read timestamp chosen
+        # for the transaction. Not returned by default: see
+        # TransactionOptions.ReadOnly.return_read_timestamp.
+    "id": "A String", # `id` may be used to identify the transaction in subsequent
+        # Read,
+        # ExecuteSql,
+        # Commit, or
+        # Rollback calls.
+        #
+        # Single-use read-only transactions do not have IDs, because
+        # single-use transactions do not support multiple requests.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="commit">commit(session, body, x__xgafv=None)</code>
+  <pre>Commits a transaction. The request includes the mutations to be
+applied to rows in the database.
+
+`Commit` might return an `ABORTED` error. This can occur at any time;
+commonly, the cause is conflicts with concurrent
+transactions. However, it can also happen for a variety of other
+reasons. If `Commit` returns `ABORTED`, the caller should re-attempt
+the transaction from the beginning, re-using the same session.
+
+Args:
+  session: string, Required. The session in which the transaction to be committed is running. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for Commit.
+    "transactionId": "A String", # Commit a previously-started transaction.
+    "mutations": [ # The mutations to be executed when this transaction commits. All
+        # mutations are applied atomically, in the order they appear in
+        # this list.
+      { # A modification to one or more Cloud Spanner rows.  Mutations can be
+          # applied to a Cloud Spanner database by sending them in a
+          # Commit call.
+        "insert": { # Arguments to insert, update, insert_or_update, and # Insert new rows in a table. If any of the rows already exist,
+            # the write or transaction fails with error `ALREADY_EXISTS`.
+            # replace operations.
+          "table": "A String", # Required. The table whose rows will be written.
+          "values": [ # The values to be written. `values` can contain more than one
+              # list of values. If it does, then multiple rows are written, one
+              # for each entry in `values`. Each list in `values` must have
+              # exactly as many entries as there are entries in columns
+              # above. Sending multiple lists is equivalent to sending multiple
+              # `Mutation`s, each containing one `values` entry and repeating
+              # table and columns. Individual values in each list are
+              # encoded as described here.
+            [
+              "",
+            ],
+          ],
+          "columns": [ # The names of the columns in table to be written.
+              #
+              # The list of columns must contain enough columns to allow
+              # Cloud Spanner to derive values for all primary key columns in the
+              # row(s) to be modified.
+            "A String",
+          ],
+        },
+        "replace": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, it is
+            # deleted, and the column values provided are inserted
+            # instead. Unlike insert_or_update, this means any values not
+            # explicitly written become `NULL`.
+            # replace operations.
+          "table": "A String", # Required. The table whose rows will be written.
+          "values": [ # The values to be written. `values` can contain more than one
+              # list of values. If it does, then multiple rows are written, one
+              # for each entry in `values`. Each list in `values` must have
+              # exactly as many entries as there are entries in columns
+              # above. Sending multiple lists is equivalent to sending multiple
+              # `Mutation`s, each containing one `values` entry and repeating
+              # table and columns. Individual values in each list are
+              # encoded as described here.
+            [
+              "",
+            ],
+          ],
+          "columns": [ # The names of the columns in table to be written.
+              #
+              # The list of columns must contain enough columns to allow
+              # Cloud Spanner to derive values for all primary key columns in the
+              # row(s) to be modified.
+            "A String",
+          ],
+        },
+        "insertOrUpdate": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, then
+            # its column values are overwritten with the ones provided. Any
+            # column values not explicitly written are preserved.
+            # replace operations.
+          "table": "A String", # Required. The table whose rows will be written.
+          "values": [ # The values to be written. `values` can contain more than one
+              # list of values. If it does, then multiple rows are written, one
+              # for each entry in `values`. Each list in `values` must have
+              # exactly as many entries as there are entries in columns
+              # above. Sending multiple lists is equivalent to sending multiple
+              # `Mutation`s, each containing one `values` entry and repeating
+              # table and columns. Individual values in each list are
+              # encoded as described here.
+            [
+              "",
+            ],
+          ],
+          "columns": [ # The names of the columns in table to be written.
+              #
+              # The list of columns must contain enough columns to allow
+              # Cloud Spanner to derive values for all primary key columns in the
+              # row(s) to be modified.
+            "A String",
+          ],
+        },
+        "update": { # Arguments to insert, update, insert_or_update, and # Update existing rows in a table. If any of the rows does not
+            # already exist, the transaction fails with error `NOT_FOUND`.
+            # replace operations.
+          "table": "A String", # Required. The table whose rows will be written.
+          "values": [ # The values to be written. `values` can contain more than one
+              # list of values. If it does, then multiple rows are written, one
+              # for each entry in `values`. Each list in `values` must have
+              # exactly as many entries as there are entries in columns
+              # above. Sending multiple lists is equivalent to sending multiple
+              # `Mutation`s, each containing one `values` entry and repeating
+              # table and columns. Individual values in each list are
+              # encoded as described here.
+            [
+              "",
+            ],
+          ],
+          "columns": [ # The names of the columns in table to be written.
+              #
+              # The list of columns must contain enough columns to allow
+              # Cloud Spanner to derive values for all primary key columns in the
+              # row(s) to be modified.
+            "A String",
+          ],
+        },
+        "delete": { # Arguments to delete operations. # Delete rows from a table. Succeeds whether or not the named
+            # rows were present.
+          "table": "A String", # Required. The table whose rows will be deleted.
+          "keySet": { # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All # Required. The primary keys of the rows within table to delete.
+              # the keys are expected to be in the same table or index. The keys need
+              # not be sorted in any particular way.
+              #
+              # If the same key is specified multiple times in the set (for example
+              # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
+              # behaves as if the key were only specified once.
+            "ranges": [ # A list of key ranges. See KeyRange for more information about
+                # key range specifications.
+              { # KeyRange represents a range of rows in a table or index.
+                  #
+                  # A range has a start key and an end key. These keys can be open or
+                  # closed, indicating if the range includes rows with that key.
+                  #
+                  # Keys are represented by lists, where the ith value in the list
+                  # corresponds to the ith component of the table or index primary key.
+                  # Individual values are encoded as described here.
+                  #
+                  # For example, consider the following table definition:
+                  #
+                  #     CREATE TABLE UserEvents (
+                  #       UserName STRING(MAX),
+                  #       EventDate STRING(10)
+                  #     ) PRIMARY KEY(UserName, EventDate);
+                  #
+                  # The following keys name rows in this table:
+                  #
+                  #     "Bob", "2014-09-23"
+                  #
+                  # Since the `UserEvents` table's `PRIMARY KEY` clause names two
+                  # columns, each `UserEvents` key has two elements; the first is the
+                  # `UserName`, and the second is the `EventDate`.
+                  #
+                  # Key ranges with multiple components are interpreted
+                  # lexicographically by component using the table or index key's declared
+                  # sort order. For example, the following range returns all events for
+                  # user `"Bob"` that occurred in the year 2015:
+                  #
+                  #     "start_closed": ["Bob", "2015-01-01"]
+                  #     "end_closed": ["Bob", "2015-12-31"]
+                  #
+                  # Start and end keys can omit trailing key components. This affects the
+                  # inclusion and exclusion of rows that exactly match the provided key
+                  # components: if the key is closed, then rows that exactly match the
+                  # provided components are included; if the key is open, then rows
+                  # that exactly match are not included.
+                  #
+                  # For example, the following range includes all events for `"Bob"` that
+                  # occurred during and after the year 2000:
+                  #
+                  #     "start_closed": ["Bob", "2000-01-01"]
+                  #     "end_closed": ["Bob"]
+                  #
+                  # The next example retrieves all events for `"Bob"`:
+                  #
+                  #     "start_closed": ["Bob"]
+                  #     "end_closed": ["Bob"]
+                  #
+                  # To retrieve events before the year 2000:
+                  #
+                  #     "start_closed": ["Bob"]
+                  #     "end_open": ["Bob", "2000-01-01"]
+                  #
+                  # The following range includes all rows in the table:
+                  #
+                  #     "start_closed": []
+                  #     "end_closed": []
+                  #
+                  # This range returns all users whose `UserName` begins with any
+                  # character from A to C:
+                  #
+                  #     "start_closed": ["A"]
+                  #     "end_open": ["D"]
+                  #
+                  # This range returns all users whose `UserName` begins with B:
+                  #
+                  #     "start_closed": ["B"]
+                  #     "end_open": ["C"]
+                  #
+                  # Key ranges honor column sort order. For example, suppose a table is
+                  # defined as follows:
+                  #
+                  #     CREATE TABLE DescendingSortedTable {
+                  #       Key INT64,
+                  #       ...
+                  #     ) PRIMARY KEY(Key DESC);
+                  #
+                  # The following range retrieves all rows with key values between 1
+                  # and 100 inclusive:
+                  #
+                  #     "start_closed": ["100"]
+                  #     "end_closed": ["1"]
+                  #
+                  # Note that 100 is passed as the start, and 1 is passed as the end,
+                  # because `Key` is a descending column in the schema.
+                "endOpen": [ # If the end is open, then the range excludes rows whose first
+                    # `len(end_open)` key columns exactly match `end_open`.
+                  "",
+                ],
+                "startOpen": [ # If the start is open, then the range excludes rows whose first
+                    # `len(start_open)` key columns exactly match `start_open`.
+                  "",
+                ],
+                "endClosed": [ # If the end is closed, then the range includes all rows whose
+                    # first `len(end_closed)` key columns exactly match `end_closed`.
+                  "",
+                ],
+                "startClosed": [ # If the start is closed, then the range includes all rows whose
+                    # first `len(start_closed)` key columns exactly match `start_closed`.
+                  "",
+                ],
+              },
+            ],
+            "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+                # many elements as there are columns in the primary or index key
+                # with which this `KeySet` is used.  Individual key values are
+                # encoded as described here.
+              [
+                "",
+              ],
+            ],
+            "all": True or False, # For convenience `all` can be set to `true` to indicate that this
+                # `KeySet` matches all keys in the table or index. Note that any keys
+                # specified in `keys` or `ranges` are only yielded once.
+          },
+        },
+      },
+    ],
+    "singleUseTransaction": { # # Transactions # Execute mutations in a temporary transaction. Note that unlike
+        # commit of a previously-started transaction, commit with a
+        # temporary transaction is non-idempotent. That is, if the
+        # `CommitRequest` is sent to Cloud Spanner more than once (for
+        # instance, due to retries in the application, or in the
+        # transport library), it is possible that the mutations are
+        # executed more than once. If this is undesirable, use
+        # BeginTransaction and
+        # Commit instead.
+        #
+        #
+        # Each session can have at most one active transaction at a time. After the
+        # active transaction is completed, the session can immediately be
+        # re-used for the next transaction. It is not necessary to create a
+        # new session for each transaction.
+        #
+        # # Transaction Modes
+        #
+        # Cloud Spanner supports two transaction modes:
+        #
+        #   1. Locking read-write. This type of transaction is the only way
+        #      to write data into Cloud Spanner. These transactions rely on
+        #      pessimistic locking and, if necessary, two-phase commit.
+        #      Locking read-write transactions may abort, requiring the
+        #      application to retry.
+        #
+        #   2. Snapshot read-only. This transaction type provides guaranteed
+        #      consistency across several reads, but does not allow
+        #      writes. Snapshot read-only transactions can be configured to
+        #      read at timestamps in the past. Snapshot read-only
+        #      transactions do not need to be committed.
+        #
+        # For transactions that only read, snapshot read-only transactions
+        # provide simpler semantics and are almost always faster. In
+        # particular, read-only transactions do not take locks, so they do
+        # not conflict with read-write transactions. As a consequence of not
+        # taking locks, they also do not abort, so retry loops are not needed.
+        #
+        # Transactions may only read/write data in a single database. They
+        # may, however, read/write data in different tables within that
+        # database.
+        #
+        # ## Locking Read-Write Transactions
+        #
+        # Locking transactions may be used to atomically read-modify-write
+        # data anywhere in a database. This type of transaction is externally
+        # consistent.
+        #
+        # Clients should attempt to minimize the amount of time a transaction
+        # is active. Faster transactions commit with higher probability
+        # and cause less contention. Cloud Spanner attempts to keep read locks
+        # active as long as the transaction continues to do reads, and the
+        # transaction has not been terminated by
+        # Commit or
+        # Rollback.  Long periods of
+        # inactivity at the client may cause Cloud Spanner to release a
+        # transaction's locks and abort it.
+        #
+        # Reads performed within a transaction acquire locks on the data
+        # being read. Writes can only be done at commit time, after all reads
+        # have been completed.
+        # Conceptually, a read-write transaction consists of zero or more
+        # reads or SQL queries followed by
+        # Commit. At any time before
+        # Commit, the client can send a
+        # Rollback request to abort the
+        # transaction.
+        #
+        # ### Semantics
+        #
+        # Cloud Spanner can commit the transaction if all read locks it acquired
+        # are still valid at commit time, and it is able to acquire write
+        # locks for all writes. Cloud Spanner can abort the transaction for any
+        # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+        # that the transaction has not modified any user data in Cloud Spanner.
+        #
+        # Unless the transaction commits, Cloud Spanner makes no guarantees about
+        # how long the transaction's locks were held for. It is an error to
+        # use Cloud Spanner locks for any sort of mutual exclusion other than
+        # between Cloud Spanner transactions themselves.
+        #
+        # ### Retrying Aborted Transactions
+        #
+        # When a transaction aborts, the application can choose to retry the
+        # whole transaction again. To maximize the chances of successfully
+        # committing the retry, the client should execute the retry in the
+        # same session as the original attempt. The original session's lock
+        # priority increases with each consecutive abort, meaning that each
+        # attempt has a slightly better chance of success than the previous.
+        #
+        # Under some circumstances (e.g., many transactions attempting to
+        # modify the same row(s)), a transaction can abort many times in a
+        # short period before successfully committing. Thus, it is not a good
+        # idea to cap the number of retries a transaction can attempt;
+        # instead, it is better to limit the total amount of wall time spent
+        # retrying.
+        #
+        # ### Idle Transactions
+        #
+        # A transaction is considered idle if it has no outstanding reads or
+        # SQL queries and has not started a read or SQL query within the last 10
+        # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+        # don't hold on to locks indefinitely. In that case, the commit will
+        # fail with error `ABORTED`.
+        #
+        # If this behavior is undesirable, periodically executing a simple
+        # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+        # transaction from becoming idle.
+        #
+        # ## Snapshot Read-Only Transactions
+        #
+        # Snapshot read-only transactions provides a simpler method than
+        # locking read-write transactions for doing several consistent
+        # reads. However, this type of transaction does not support writes.
+        #
+        # Snapshot transactions do not take locks. Instead, they work by
+        # choosing a Cloud Spanner timestamp, then executing all reads at that
+        # timestamp. Since they do not acquire locks, they do not block
+        # concurrent read-write transactions.
+        #
+        # Unlike locking read-write transactions, snapshot read-only
+        # transactions never abort. They can fail if the chosen read
+        # timestamp is garbage collected; however, the default garbage
+        # collection policy is generous enough that most applications do not
+        # need to worry about this in practice.
+        #
+        # Snapshot read-only transactions do not need to call
+        # Commit or
+        # Rollback (and in fact are not
+        # permitted to do so).
+        #
+        # To execute a snapshot transaction, the client specifies a timestamp
+        # bound, which tells Cloud Spanner how to choose a read timestamp.
+        #
+        # The types of timestamp bound are:
+        #
+        #   - Strong (the default).
+        #   - Bounded staleness.
+        #   - Exact staleness.
+        #
+        # If the Cloud Spanner database to be read is geographically distributed,
+        # stale read-only transactions can execute more quickly than strong
+        # or read-write transaction, because they are able to execute far
+        # from the leader replica.
+        #
+        # Each type of timestamp bound is discussed in detail below.
+        #
+        # ### Strong
+        #
+        # Strong reads are guaranteed to see the effects of all transactions
+        # that have committed before the start of the read. Furthermore, all
+        # rows yielded by a single read are consistent with each other -- if
+        # any part of the read observes a transaction, all parts of the read
+        # see the transaction.
+        #
+        # Strong reads are not repeatable: two consecutive strong read-only
+        # transactions might return inconsistent results if there are
+        # concurrent writes. If consistency across reads is required, the
+        # reads should be executed within a transaction or at an exact read
+        # timestamp.
+        #
+        # See TransactionOptions.ReadOnly.strong.
+        #
+        # ### Exact Staleness
+        #
+        # These timestamp bounds execute reads at a user-specified
+        # timestamp. Reads at a timestamp are guaranteed to see a consistent
+        # prefix of the global transaction history: they observe
+        # modifications done by all transactions with a commit timestamp <=
+        # the read timestamp, and observe none of the modifications done by
+        # transactions with a larger commit timestamp. They will block until
+        # all conflicting transactions that may be assigned commit timestamps
+        # <= the read timestamp have finished.
+        #
+        # The timestamp can either be expressed as an absolute Cloud Spanner commit
+        # timestamp or a staleness relative to the current time.
+        #
+        # These modes do not require a "negotiation phase" to pick a
+        # timestamp. As a result, they execute slightly faster than the
+        # equivalent boundedly stale concurrency modes. On the other hand,
+        # boundedly stale reads usually return fresher results.
+        #
+        # See TransactionOptions.ReadOnly.read_timestamp and
+        # TransactionOptions.ReadOnly.exact_staleness.
+        #
+        # ### Bounded Staleness
+        #
+        # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+        # subject to a user-provided staleness bound. Cloud Spanner chooses the
+        # newest timestamp within the staleness bound that allows execution
+        # of the reads at the closest available replica without blocking.
+        #
+        # All rows yielded are consistent with each other -- if any part of
+        # the read observes a transaction, all parts of the read see the
+        # transaction. Boundedly stale reads are not repeatable: two stale
+        # reads, even if they use the same staleness bound, can execute at
+        # different timestamps and thus return inconsistent results.
+        #
+        # Boundedly stale reads execute in two phases: the first phase
+        # negotiates a timestamp among all replicas needed to serve the
+        # read. In the second phase, reads are executed at the negotiated
+        # timestamp.
+        #
+        # As a result of the two phase execution, bounded staleness reads are
+        # usually a little slower than comparable exact staleness
+        # reads. However, they are typically able to return fresher
+        # results, and are more likely to execute at the closest replica.
+        #
+        # Because the timestamp negotiation requires up-front knowledge of
+        # which rows will be read, it can only be used with single-use
+        # read-only transactions.
+        #
+        # See TransactionOptions.ReadOnly.max_staleness and
+        # TransactionOptions.ReadOnly.min_read_timestamp.
+        #
+        # ### Old Read Timestamps and Garbage Collection
+        #
+        # Cloud Spanner continuously garbage collects deleted and overwritten data
+        # in the background to reclaim storage space. This process is known
+        # as "version GC". By default, version GC reclaims versions after they
+        # are one hour old. Because of this, Cloud Spanner cannot perform reads
+        # at read timestamps more than one hour in the past. This
+        # restriction also applies to in-progress reads and/or SQL queries whose
+        # timestamp become too old while executing. Reads and SQL queries with
+        # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+      "readWrite": { # Options for read-write transactions. # Transaction may write.
+          #
+          # Authorization to begin a read-write transaction requires
+          # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+          # on the `session` resource.
+      },
+      "readOnly": { # Options for read-only transactions. # Transaction will not write.
+          #
+          # Authorization to begin a read-only transaction requires
+          # `spanner.databases.beginReadOnlyTransaction` permission
+          # on the `session` resource.
+        "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+            #
+            # This is useful for requesting fresher data than some previous
+            # read, or data that is fresh enough to observe the effects of some
+            # previously committed transaction whose timestamp is known.
+            #
+            # Note that this option can only be used in single-use transactions.
+        "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+            # reads at a specific timestamp are repeatable; the same read at
+            # the same timestamp always returns the same data. If the
+            # timestamp is in the future, the read will block until the
+            # specified timestamp, modulo the read's deadline.
+            #
+            # Useful for large scale consistent reads such as mapreduces, or
+            # for coordinating many reads against a consistent snapshot of the
+            # data.
+        "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+            # seconds. Guarantees that all writes that have committed more
+            # than the specified number of seconds ago are visible. Because
+            # Cloud Spanner chooses the exact timestamp, this mode works even if
+            # the client's local clock is substantially skewed from Cloud Spanner
+            # commit timestamps.
+            #
+            # Useful for reading the freshest data available at a nearby
+            # replica, while bounding the possible staleness if the local
+            # replica has fallen behind.
+            #
+            # Note that this option can only be used in single-use
+            # transactions.
+        "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+            # old. The timestamp is chosen soon after the read is started.
+            #
+            # Guarantees that all writes that have committed more than the
+            # specified number of seconds ago are visible. Because Cloud Spanner
+            # chooses the exact timestamp, this mode works even if the client's
+            # local clock is substantially skewed from Cloud Spanner commit
+            # timestamps.
+            #
+            # Useful for reading at nearby replicas without the distributed
+            # timestamp negotiation overhead of `max_staleness`.
+        "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+            # the Transaction message that describes the transaction.
+        "strong": True or False, # Read at a timestamp where all previously committed transactions
+            # are visible.
+      },
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response for Commit.
+    "commitTimestamp": "A String", # The Cloud Spanner timestamp at which the transaction committed.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(database, x__xgafv=None)</code>
+  <pre>Creates a new session. A session can be used to perform
+transactions that read and/or modify data in a Cloud Spanner database.
+Sessions are meant to be reused for many consecutive
+transactions.
+
+Sessions can only execute one transaction at a time. To execute
+multiple concurrent read-write/write-only transactions, create
+multiple sessions. Note that standalone reads and queries use a
+transaction internally, and count toward the one transaction
+limit.
+
+Cloud Spanner limits the number of sessions that can exist at any given
+time; thus, it is a good idea to delete idle and/or unneeded sessions.
+Aside from explicit deletes, Cloud Spanner can delete sessions for
+which no operations are sent for more than an hour, or due to
+internal errors. If a session is deleted, requests to it
+return `NOT_FOUND`.
+
+Idle sessions can be kept alive by sending a trivial SQL query
+periodically, e.g., `"SELECT 1"`.
+
+Args:
+  database: string, Required. The database in which the new session is created. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A session in the Cloud Spanner API.
+    "name": "A String", # Required. The name of the session.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Ends a session, releasing server resources associated with it.
+
+Args:
+  name: string, Required. The name of the session to delete. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="executeSql">executeSql(session, body, x__xgafv=None)</code>
+  <pre>Executes an SQL query, returning all rows in a single reply. This
+method cannot be used to return a result set larger than 10 MiB;
+if the query yields more data than that, the query fails with
+a `FAILED_PRECONDITION` error.
+
+Queries inside read-write transactions might return `ABORTED`. If
+this occurs, the application should restart the transaction from
+the beginning. See Transaction for more details.
+
+Larger result sets can be fetched in streaming fashion by calling
+ExecuteStreamingSql instead.
+
+Args:
+  session: string, Required. The session in which the SQL query should be performed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for ExecuteSql and
+      # ExecuteStreamingSql.
+    "transaction": { # This message is used to select the transaction in which a # The transaction to use. If none is provided, the default is a
+        # temporary read-only transaction with strong concurrency.
+        # Read or
+        # ExecuteSql call runs.
+        #
+        # See TransactionOptions for more information about transactions.
+      "begin": { # # Transactions # Begin a new transaction and execute this read or SQL query in
+          # it. The transaction ID of the new transaction is returned in
+          # ResultSetMetadata.transaction, which is a Transaction.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "singleUse": { # # Transactions # Execute the read or SQL query in a temporary transaction.
+          # This is the most efficient way to execute a transaction that
+          # consists of a single SQL query.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "id": "A String", # Execute the read or SQL query in a previously-started transaction.
+    },
+    "resumeToken": "A String", # If this request is resuming a previously interrupted SQL query
+        # execution, `resume_token` should be copied from the last
+        # PartialResultSet yielded before the interruption. Doing this
+        # enables the new SQL query execution to resume where the last one left
+        # off. The rest of the request parameters must exactly match the
+        # request that yielded this token.
+    "paramTypes": { # It is not always possible for Cloud Spanner to infer the right SQL type
+        # from a JSON value.  For example, values of type `BYTES` and values
+        # of type `STRING` both appear in params as JSON strings.
+        # 
+        # In these cases, `param_types` can be used to specify the exact
+        # SQL type for some or all of the SQL query parameters. See the
+        # definition of Type for more information
+        # about SQL types.
+      "a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a
+          # table cell or returned from an SQL query.
+        "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+            # provides type information for the struct's fields.
+        "code": "A String", # Required. The TypeCode for this type.
+        "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+            # is the type of the array elements.
+      },
+    },
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
+    "sql": "A String", # Required. The SQL query string.
+    "params": { # The SQL query string can contain parameter placeholders. A parameter
+        # placeholder consists of `'@'` followed by the parameter
+        # name. Parameter names consist of any combination of letters,
+        # numbers, and underscores.
+        # 
+        # Parameters can appear anywhere that a literal value is expected.  The same
+        # parameter name can be used more than once, for example:
+        #   `"WHERE id > @msg_id AND id < @msg_id + 100"`
+        # 
+        # It is an error to execute an SQL query with unbound parameters.
+        # 
+        # Parameter values are specified using `params`, which is a JSON
+        # object whose keys are parameter names, and whose values are the
+        # corresponding parameter values.
+      "a_key": "", # Properties of the object.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Results from Read or
+      # ExecuteSql.
+    "rows": [ # Each element in `rows` is a row whose format is defined by
+        # metadata.row_type. The ith element
+        # in each row matches the ith field in
+        # metadata.row_type. Elements are
+        # encoded based on type as described
+        # here.
+      [
+        "",
+      ],
+    ],
+    "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
+        # result set. These can be requested by setting
+        # ExecuteSqlRequest.query_mode.
+      "queryPlan": { # Contains an ordered list of nodes appearing in the query plan. # QueryPlan for the query associated with this result.
+        "planNodes": [ # The nodes in the query plan. Plan nodes are returned in pre-order starting
+            # with the plan root. Each PlanNode's `id` corresponds to its index in
+            # `plan_nodes`.
+          { # Node information for nodes appearing in a QueryPlan.plan_nodes.
+            "index": 42, # The `PlanNode`'s index in node list.
+            "kind": "A String", # Used to determine the type of node. May be needed for visualizing
+                # different kinds of nodes differently. For example, If the node is a
+                # SCALAR node, it will have a condensed representation
+                # which can be used to directly embed a description of the node in its
+                # parent.
+            "displayName": "A String", # The display name for the node.
+            "executionStats": { # The execution statistics associated with the node, contained in a group of
+                # key-value pairs. Only present if the plan was returned as a result of a
+                # profile query. For example, number of executions, number of rows/time per
+                # execution etc.
+              "a_key": "", # Properties of the object.
+            },
+            "childLinks": [ # List of child node `index`es and their relationship to this parent.
+              { # Metadata associated with a parent-child relationship appearing in a
+                  # PlanNode.
+                "variable": "A String", # Only present if the child node is SCALAR and corresponds
+                    # to an output variable of the parent node. The field carries the name of
+                    # the output variable.
+                    # For example, a `TableScan` operator that reads rows from a table will
+                    # have child links to the `SCALAR` nodes representing the output variables
+                    # created for each column that is read by the operator. The corresponding
+                    # `variable` fields will be set to the variable names assigned to the
+                    # columns.
+                "childIndex": 42, # The node to which the link points.
+                "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
+                    # distinguish between the build child and the probe child, or in the case
+                    # of the child being an output variable, to represent the tag associated
+                    # with the output variable.
+              },
+            ],
+            "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
+                # `SCALAR` PlanNode(s).
+              "subqueries": { # A mapping of (subquery variable name) -> (subquery node id) for cases
+                  # where the `description` string of this node references a `SCALAR`
+                  # subquery contained in the expression subtree rooted at this node. The
+                  # referenced `SCALAR` subquery may not necessarily be a direct child of
+                  # this node.
+                "a_key": 42,
+              },
+              "description": "A String", # A string representation of the expression subtree rooted at this node.
+            },
+            "metadata": { # Attributes relevant to the node contained in a group of key-value pairs.
+                # For example, a Parameter Reference node could have the following
+                # information in its metadata:
+                #
+                #     {
+                #       "parameter_reference": "param1",
+                #       "parameter_type": "array"
+                #     }
+              "a_key": "", # Properties of the object.
+            },
+          },
+        ],
+      },
+      "queryStats": { # Aggregated statistics from the execution of the query. Only present when
+          # the query is profiled. For example, a query could return the statistics as
+          # follows:
+          #
+          #     {
+          #       "rows_returned": "3",
+          #       "elapsed_time": "1.22 secs",
+          #       "cpu_time": "1.19 secs"
+          #     }
+        "a_key": "", # Properties of the object.
+      },
+    },
+    "metadata": { # Metadata about a ResultSet or PartialResultSet. # Metadata about the result set, such as row type information.
+      "rowType": { # `StructType` defines the fields of a STRUCT type. # Indicates the field names and types for the rows in the result
+          # set.  For example, a SQL query like `"SELECT UserId, UserName FROM
+          # Users"` could return a `row_type` value like:
+          #
+          #     "fields": [
+          #       { "name": "UserId", "type": { "code": "INT64" } },
+          #       { "name": "UserName", "type": { "code": "STRING" } },
+          #     ]
+        "fields": [ # The list of fields that make up this struct. Order is
+            # significant, because values of this struct type are represented as
+            # lists, where the order of field values matches the order of
+            # fields in the StructType. In turn, the order of fields
+            # matches the order of columns in a read request, or the order of
+            # fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a # The type of the field.
+                # table cell or returned from an SQL query.
+              "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+                  # provides type information for the struct's fields.
+              "code": "A String", # Required. The TypeCode for this type.
+              "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+                  # is the type of the array elements.
+            },
+            "name": "A String", # The name of the field. For reads, this is the column name. For
+                # SQL queries, it is the column alias (e.g., `"Word"` in the
+                # query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
+                # `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
+                # columns might have an empty name (e.g., !"SELECT
+                # UPPER(ColName)"`). Note that a query result can contain
+                # multiple fields with the same name.
+          },
+        ],
+      },
+      "transaction": { # A transaction. # If the read or SQL query began a transaction as a side-effect, the
+          # information about the new transaction is yielded here.
+        "readTimestamp": "A String", # For snapshot read-only transactions, the read timestamp chosen
+            # for the transaction. Not returned by default: see
+            # TransactionOptions.ReadOnly.return_read_timestamp.
+        "id": "A String", # `id` may be used to identify the transaction in subsequent
+            # Read,
+            # ExecuteSql,
+            # Commit, or
+            # Rollback calls.
+            #
+            # Single-use read-only transactions do not have IDs, because
+            # single-use transactions do not support multiple requests.
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="executeStreamingSql">executeStreamingSql(session, body, x__xgafv=None)</code>
+  <pre>Like ExecuteSql, except returns the result
+set as a stream. Unlike ExecuteSql, there
+is no limit on the size of the returned result set. However, no
+individual row in the result set can exceed 100 MiB, and no
+column value can exceed 10 MiB.
+
+Args:
+  session: string, Required. The session in which the SQL query should be performed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for ExecuteSql and
+      # ExecuteStreamingSql.
+    "transaction": { # This message is used to select the transaction in which a # The transaction to use. If none is provided, the default is a
+        # temporary read-only transaction with strong concurrency.
+        # Read or
+        # ExecuteSql call runs.
+        #
+        # See TransactionOptions for more information about transactions.
+      "begin": { # # Transactions # Begin a new transaction and execute this read or SQL query in
+          # it. The transaction ID of the new transaction is returned in
+          # ResultSetMetadata.transaction, which is a Transaction.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "singleUse": { # # Transactions # Execute the read or SQL query in a temporary transaction.
+          # This is the most efficient way to execute a transaction that
+          # consists of a single SQL query.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "id": "A String", # Execute the read or SQL query in a previously-started transaction.
+    },
+    "resumeToken": "A String", # If this request is resuming a previously interrupted SQL query
+        # execution, `resume_token` should be copied from the last
+        # PartialResultSet yielded before the interruption. Doing this
+        # enables the new SQL query execution to resume where the last one left
+        # off. The rest of the request parameters must exactly match the
+        # request that yielded this token.
+    "paramTypes": { # It is not always possible for Cloud Spanner to infer the right SQL type
+        # from a JSON value.  For example, values of type `BYTES` and values
+        # of type `STRING` both appear in params as JSON strings.
+        # 
+        # In these cases, `param_types` can be used to specify the exact
+        # SQL type for some or all of the SQL query parameters. See the
+        # definition of Type for more information
+        # about SQL types.
+      "a_key": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a
+          # table cell or returned from an SQL query.
+        "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+            # provides type information for the struct's fields.
+        "code": "A String", # Required. The TypeCode for this type.
+        "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+            # is the type of the array elements.
+      },
+    },
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
+    "sql": "A String", # Required. The SQL query string.
+    "params": { # The SQL query string can contain parameter placeholders. A parameter
+        # placeholder consists of `'@'` followed by the parameter
+        # name. Parameter names consist of any combination of letters,
+        # numbers, and underscores.
+        # 
+        # Parameters can appear anywhere that a literal value is expected.  The same
+        # parameter name can be used more than once, for example:
+        #   `"WHERE id > @msg_id AND id < @msg_id + 100"`
+        # 
+        # It is an error to execute an SQL query with unbound parameters.
+        # 
+        # Parameter values are specified using `params`, which is a JSON
+        # object whose keys are parameter names, and whose values are the
+        # corresponding parameter values.
+      "a_key": "", # Properties of the object.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Partial results from a streaming read or SQL query. Streaming reads and
+      # SQL queries better tolerate large result sets, large rows, and large
+      # values, but are a little trickier to consume.
+    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
+        # as TCP connection loss. If this occurs, the stream of results can
+        # be resumed by re-sending the original request and including
+        # `resume_token`. Note that executing any other transaction in the
+        # same session invalidates the token.
+    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
+        # be combined with more values from subsequent `PartialResultSet`s
+        # to obtain a complete field value.
+    "values": [ # A streamed result set consists of a stream of values, which might
+        # be split into many `PartialResultSet` messages to accommodate
+        # large rows and/or large values. Every N complete values defines a
+        # row, where N is equal to the number of entries in
+        # metadata.row_type.fields.
+        #
+        # Most values are encoded based on type as described
+        # here.
+        #
+        # It is possible that the last value in values is "chunked",
+        # meaning that the rest of the value is sent in subsequent
+        # `PartialResultSet`(s). This is denoted by the chunked_value
+        # field. Two or more chunked values can be merged to form a
+        # complete value as follows:
+        #
+        #   * `bool/number/null`: cannot be chunked
+        #   * `string`: concatenate the strings
+        #   * `list`: concatenate the lists. If the last element in a list is a
+        #     `string`, `list`, or `object`, merge it with the first element in
+        #     the next list by applying these rules recursively.
+        #   * `object`: concatenate the (field name, field value) pairs. If a
+        #     field name is duplicated, then apply these rules recursively
+        #     to merge the field values.
+        #
+        # Some examples of merging:
+        #
+        #     # Strings are concatenated.
+        #     "foo", "bar" => "foobar"
+        #
+        #     # Lists of non-strings are concatenated.
+        #     [2, 3], [4] => [2, 3, 4]
+        #
+        #     # Lists are concatenated, but the last and first elements are merged
+        #     # because they are strings.
+        #     ["a", "b"], ["c", "d"] => ["a", "bc", "d"]
+        #
+        #     # Lists are concatenated, but the last and first elements are merged
+        #     # because they are lists. Recursively, the last and first elements
+        #     # of the inner lists are merged because they are strings.
+        #     ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"]
+        #
+        #     # Non-overlapping object fields are combined.
+        #     {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"}
+        #
+        #     # Overlapping object fields are merged.
+        #     {"a": "1"}, {"a": "2"} => {"a": "12"}
+        #
+        #     # Examples of merging objects containing lists of strings.
+        #     {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]}
+        #
+        # For a more complete example, suppose a streaming SQL query is
+        # yielding a result set whose rows contain a single string
+        # field. The following `PartialResultSet`s might be yielded:
+        #
+        #     {
+        #       "metadata": { ... }
+        #       "values": ["Hello", "W"]
+        #       "chunked_value": true
+        #       "resume_token": "Af65..."
+        #     }
+        #     {
+        #       "values": ["orl"]
+        #       "chunked_value": true
+        #       "resume_token": "Bqp2..."
+        #     }
+        #     {
+        #       "values": ["d"]
+        #       "resume_token": "Zx1B..."
+        #     }
+        #
+        # This sequence of `PartialResultSet`s encodes two rows, one
+        # containing the field value `"Hello"`, and a second containing the
+        # field value `"World" = "W" + "orl" + "d"`.
+      "",
+    ],
+    "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
+        # streaming result set. These can be requested by setting
+        # ExecuteSqlRequest.query_mode and are sent
+        # only once with the last response in the stream.
+      "queryPlan": { # Contains an ordered list of nodes appearing in the query plan. # QueryPlan for the query associated with this result.
+        "planNodes": [ # The nodes in the query plan. Plan nodes are returned in pre-order starting
+            # with the plan root. Each PlanNode's `id` corresponds to its index in
+            # `plan_nodes`.
+          { # Node information for nodes appearing in a QueryPlan.plan_nodes.
+            "index": 42, # The `PlanNode`'s index in node list.
+            "kind": "A String", # Used to determine the type of node. May be needed for visualizing
+                # different kinds of nodes differently. For example, If the node is a
+                # SCALAR node, it will have a condensed representation
+                # which can be used to directly embed a description of the node in its
+                # parent.
+            "displayName": "A String", # The display name for the node.
+            "executionStats": { # The execution statistics associated with the node, contained in a group of
+                # key-value pairs. Only present if the plan was returned as a result of a
+                # profile query. For example, number of executions, number of rows/time per
+                # execution etc.
+              "a_key": "", # Properties of the object.
+            },
+            "childLinks": [ # List of child node `index`es and their relationship to this parent.
+              { # Metadata associated with a parent-child relationship appearing in a
+                  # PlanNode.
+                "variable": "A String", # Only present if the child node is SCALAR and corresponds
+                    # to an output variable of the parent node. The field carries the name of
+                    # the output variable.
+                    # For example, a `TableScan` operator that reads rows from a table will
+                    # have child links to the `SCALAR` nodes representing the output variables
+                    # created for each column that is read by the operator. The corresponding
+                    # `variable` fields will be set to the variable names assigned to the
+                    # columns.
+                "childIndex": 42, # The node to which the link points.
+                "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
+                    # distinguish between the build child and the probe child, or in the case
+                    # of the child being an output variable, to represent the tag associated
+                    # with the output variable.
+              },
+            ],
+            "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
+                # `SCALAR` PlanNode(s).
+              "subqueries": { # A mapping of (subquery variable name) -> (subquery node id) for cases
+                  # where the `description` string of this node references a `SCALAR`
+                  # subquery contained in the expression subtree rooted at this node. The
+                  # referenced `SCALAR` subquery may not necessarily be a direct child of
+                  # this node.
+                "a_key": 42,
+              },
+              "description": "A String", # A string representation of the expression subtree rooted at this node.
+            },
+            "metadata": { # Attributes relevant to the node contained in a group of key-value pairs.
+                # For example, a Parameter Reference node could have the following
+                # information in its metadata:
+                #
+                #     {
+                #       "parameter_reference": "param1",
+                #       "parameter_type": "array"
+                #     }
+              "a_key": "", # Properties of the object.
+            },
+          },
+        ],
+      },
+      "queryStats": { # Aggregated statistics from the execution of the query. Only present when
+          # the query is profiled. For example, a query could return the statistics as
+          # follows:
+          #
+          #     {
+          #       "rows_returned": "3",
+          #       "elapsed_time": "1.22 secs",
+          #       "cpu_time": "1.19 secs"
+          #     }
+        "a_key": "", # Properties of the object.
+      },
+    },
+    "metadata": { # Metadata about a ResultSet or PartialResultSet. # Metadata about the result set, such as row type information.
+        # Only present in the first response.
+      "rowType": { # `StructType` defines the fields of a STRUCT type. # Indicates the field names and types for the rows in the result
+          # set.  For example, a SQL query like `"SELECT UserId, UserName FROM
+          # Users"` could return a `row_type` value like:
+          #
+          #     "fields": [
+          #       { "name": "UserId", "type": { "code": "INT64" } },
+          #       { "name": "UserName", "type": { "code": "STRING" } },
+          #     ]
+        "fields": [ # The list of fields that make up this struct. Order is
+            # significant, because values of this struct type are represented as
+            # lists, where the order of field values matches the order of
+            # fields in the StructType. In turn, the order of fields
+            # matches the order of columns in a read request, or the order of
+            # fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a # The type of the field.
+                # table cell or returned from an SQL query.
+              "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+                  # provides type information for the struct's fields.
+              "code": "A String", # Required. The TypeCode for this type.
+              "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+                  # is the type of the array elements.
+            },
+            "name": "A String", # The name of the field. For reads, this is the column name. For
+                # SQL queries, it is the column alias (e.g., `"Word"` in the
+                # query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
+                # `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
+                # columns might have an empty name (e.g., !"SELECT
+                # UPPER(ColName)"`). Note that a query result can contain
+                # multiple fields with the same name.
+          },
+        ],
+      },
+      "transaction": { # A transaction. # If the read or SQL query began a transaction as a side-effect, the
+          # information about the new transaction is yielded here.
+        "readTimestamp": "A String", # For snapshot read-only transactions, the read timestamp chosen
+            # for the transaction. Not returned by default: see
+            # TransactionOptions.ReadOnly.return_read_timestamp.
+        "id": "A String", # `id` may be used to identify the transaction in subsequent
+            # Read,
+            # ExecuteSql,
+            # Commit, or
+            # Rollback calls.
+            #
+            # Single-use read-only transactions do not have IDs, because
+            # single-use transactions do not support multiple requests.
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a session. Returns `NOT_FOUND` if the session does not exist.
+This is mainly useful for determining whether a session is still
+alive.
+
+Args:
+  name: string, Required. The name of the session to retrieve. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A session in the Cloud Spanner API.
+    "name": "A String", # Required. The name of the session.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="read">read(session, body, x__xgafv=None)</code>
+  <pre>Reads rows from the database using key lookups and scans, as a
+simple key/value style alternative to
+ExecuteSql.  This method cannot be used to
+return a result set larger than 10 MiB; if the read matches more
+data than that, the read fails with a `FAILED_PRECONDITION`
+error.
+
+Reads inside read-write transactions might return `ABORTED`. If
+this occurs, the application should restart the transaction from
+the beginning. See Transaction for more details.
+
+Larger result sets can be yielded in streaming fashion by calling
+StreamingRead instead.
+
+Args:
+  session: string, Required. The session in which the read should be performed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for Read and
+      # StreamingRead.
+    "index": "A String", # If non-empty, the name of an index on table. This index is
+        # used instead of the table primary key when interpreting key_set
+        # and sorting result rows. See key_set for further information.
+    "transaction": { # This message is used to select the transaction in which a # The transaction to use. If none is provided, the default is a
+        # temporary read-only transaction with strong concurrency.
+        # Read or
+        # ExecuteSql call runs.
+        #
+        # See TransactionOptions for more information about transactions.
+      "begin": { # # Transactions # Begin a new transaction and execute this read or SQL query in
+          # it. The transaction ID of the new transaction is returned in
+          # ResultSetMetadata.transaction, which is a Transaction.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "singleUse": { # # Transactions # Execute the read or SQL query in a temporary transaction.
+          # This is the most efficient way to execute a transaction that
+          # consists of a single SQL query.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "id": "A String", # Execute the read or SQL query in a previously-started transaction.
+    },
+    "resumeToken": "A String", # If this request is resuming a previously interrupted read,
+        # `resume_token` should be copied from the last
+        # PartialResultSet yielded before the interruption. Doing this
+        # enables the new read to resume where the last read left off. The
+        # rest of the request parameters must exactly match the request
+        # that yielded this token.
+    "keySet": { # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All # Required. `key_set` identifies the rows to be yielded. `key_set` names the
+        # primary keys of the rows in table to be yielded, unless index
+        # is present. If index is present, then key_set instead names
+        # index keys in index.
+        # 
+        # Rows are yielded in table primary key order (if index is empty)
+        # or index key order (if index is non-empty).
+        # 
+        # It is not an error for the `key_set` to name rows that do not
+        # exist in the database. Read yields nothing for nonexistent rows.
+        # the keys are expected to be in the same table or index. The keys need
+        # not be sorted in any particular way.
+        #
+        # If the same key is specified multiple times in the set (for example
+        # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
+        # behaves as if the key were only specified once.
+      "ranges": [ # A list of key ranges. See KeyRange for more information about
+          # key range specifications.
+        { # KeyRange represents a range of rows in a table or index.
+            #
+            # A range has a start key and an end key. These keys can be open or
+            # closed, indicating if the range includes rows with that key.
+            #
+            # Keys are represented by lists, where the ith value in the list
+            # corresponds to the ith component of the table or index primary key.
+            # Individual values are encoded as described here.
+            #
+            # For example, consider the following table definition:
+            #
+            #     CREATE TABLE UserEvents (
+            #       UserName STRING(MAX),
+            #       EventDate STRING(10)
+            #     ) PRIMARY KEY(UserName, EventDate);
+            #
+            # The following keys name rows in this table:
+            #
+            #     "Bob", "2014-09-23"
+            #
+            # Since the `UserEvents` table's `PRIMARY KEY` clause names two
+            # columns, each `UserEvents` key has two elements; the first is the
+            # `UserName`, and the second is the `EventDate`.
+            #
+            # Key ranges with multiple components are interpreted
+            # lexicographically by component using the table or index key's declared
+            # sort order. For example, the following range returns all events for
+            # user `"Bob"` that occurred in the year 2015:
+            #
+            #     "start_closed": ["Bob", "2015-01-01"]
+            #     "end_closed": ["Bob", "2015-12-31"]
+            #
+            # Start and end keys can omit trailing key components. This affects the
+            # inclusion and exclusion of rows that exactly match the provided key
+            # components: if the key is closed, then rows that exactly match the
+            # provided components are included; if the key is open, then rows
+            # that exactly match are not included.
+            #
+            # For example, the following range includes all events for `"Bob"` that
+            # occurred during and after the year 2000:
+            #
+            #     "start_closed": ["Bob", "2000-01-01"]
+            #     "end_closed": ["Bob"]
+            #
+            # The next example retrieves all events for `"Bob"`:
+            #
+            #     "start_closed": ["Bob"]
+            #     "end_closed": ["Bob"]
+            #
+            # To retrieve events before the year 2000:
+            #
+            #     "start_closed": ["Bob"]
+            #     "end_open": ["Bob", "2000-01-01"]
+            #
+            # The following range includes all rows in the table:
+            #
+            #     "start_closed": []
+            #     "end_closed": []
+            #
+            # This range returns all users whose `UserName` begins with any
+            # character from A to C:
+            #
+            #     "start_closed": ["A"]
+            #     "end_open": ["D"]
+            #
+            # This range returns all users whose `UserName` begins with B:
+            #
+            #     "start_closed": ["B"]
+            #     "end_open": ["C"]
+            #
+            # Key ranges honor column sort order. For example, suppose a table is
+            # defined as follows:
+            #
+            #     CREATE TABLE DescendingSortedTable {
+            #       Key INT64,
+            #       ...
+            #     ) PRIMARY KEY(Key DESC);
+            #
+            # The following range retrieves all rows with key values between 1
+            # and 100 inclusive:
+            #
+            #     "start_closed": ["100"]
+            #     "end_closed": ["1"]
+            #
+            # Note that 100 is passed as the start, and 1 is passed as the end,
+            # because `Key` is a descending column in the schema.
+          "endOpen": [ # If the end is open, then the range excludes rows whose first
+              # `len(end_open)` key columns exactly match `end_open`.
+            "",
+          ],
+          "startOpen": [ # If the start is open, then the range excludes rows whose first
+              # `len(start_open)` key columns exactly match `start_open`.
+            "",
+          ],
+          "endClosed": [ # If the end is closed, then the range includes all rows whose
+              # first `len(end_closed)` key columns exactly match `end_closed`.
+            "",
+          ],
+          "startClosed": [ # If the start is closed, then the range includes all rows whose
+              # first `len(start_closed)` key columns exactly match `start_closed`.
+            "",
+          ],
+        },
+      ],
+      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+          # many elements as there are columns in the primary or index key
+          # with which this `KeySet` is used.  Individual key values are
+          # encoded as described here.
+        [
+          "",
+        ],
+      ],
+      "all": True or False, # For convenience `all` can be set to `true` to indicate that this
+          # `KeySet` matches all keys in the table or index. Note that any keys
+          # specified in `keys` or `ranges` are only yielded once.
+    },
+    "limit": "A String", # If greater than zero, only the first `limit` rows are yielded. If `limit`
+        # is zero, the default is no limit.
+    "table": "A String", # Required. The name of the table in the database to be read.
+    "columns": [ # The columns of table to be returned for each row matching
+        # this request.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Results from Read or
+      # ExecuteSql.
+    "rows": [ # Each element in `rows` is a row whose format is defined by
+        # metadata.row_type. The ith element
+        # in each row matches the ith field in
+        # metadata.row_type. Elements are
+        # encoded based on type as described
+        # here.
+      [
+        "",
+      ],
+    ],
+    "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
+        # result set. These can be requested by setting
+        # ExecuteSqlRequest.query_mode.
+      "queryPlan": { # Contains an ordered list of nodes appearing in the query plan. # QueryPlan for the query associated with this result.
+        "planNodes": [ # The nodes in the query plan. Plan nodes are returned in pre-order starting
+            # with the plan root. Each PlanNode's `id` corresponds to its index in
+            # `plan_nodes`.
+          { # Node information for nodes appearing in a QueryPlan.plan_nodes.
+            "index": 42, # The `PlanNode`'s index in node list.
+            "kind": "A String", # Used to determine the type of node. May be needed for visualizing
+                # different kinds of nodes differently. For example, If the node is a
+                # SCALAR node, it will have a condensed representation
+                # which can be used to directly embed a description of the node in its
+                # parent.
+            "displayName": "A String", # The display name for the node.
+            "executionStats": { # The execution statistics associated with the node, contained in a group of
+                # key-value pairs. Only present if the plan was returned as a result of a
+                # profile query. For example, number of executions, number of rows/time per
+                # execution etc.
+              "a_key": "", # Properties of the object.
+            },
+            "childLinks": [ # List of child node `index`es and their relationship to this parent.
+              { # Metadata associated with a parent-child relationship appearing in a
+                  # PlanNode.
+                "variable": "A String", # Only present if the child node is SCALAR and corresponds
+                    # to an output variable of the parent node. The field carries the name of
+                    # the output variable.
+                    # For example, a `TableScan` operator that reads rows from a table will
+                    # have child links to the `SCALAR` nodes representing the output variables
+                    # created for each column that is read by the operator. The corresponding
+                    # `variable` fields will be set to the variable names assigned to the
+                    # columns.
+                "childIndex": 42, # The node to which the link points.
+                "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
+                    # distinguish between the build child and the probe child, or in the case
+                    # of the child being an output variable, to represent the tag associated
+                    # with the output variable.
+              },
+            ],
+            "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
+                # `SCALAR` PlanNode(s).
+              "subqueries": { # A mapping of (subquery variable name) -> (subquery node id) for cases
+                  # where the `description` string of this node references a `SCALAR`
+                  # subquery contained in the expression subtree rooted at this node. The
+                  # referenced `SCALAR` subquery may not necessarily be a direct child of
+                  # this node.
+                "a_key": 42,
+              },
+              "description": "A String", # A string representation of the expression subtree rooted at this node.
+            },
+            "metadata": { # Attributes relevant to the node contained in a group of key-value pairs.
+                # For example, a Parameter Reference node could have the following
+                # information in its metadata:
+                #
+                #     {
+                #       "parameter_reference": "param1",
+                #       "parameter_type": "array"
+                #     }
+              "a_key": "", # Properties of the object.
+            },
+          },
+        ],
+      },
+      "queryStats": { # Aggregated statistics from the execution of the query. Only present when
+          # the query is profiled. For example, a query could return the statistics as
+          # follows:
+          #
+          #     {
+          #       "rows_returned": "3",
+          #       "elapsed_time": "1.22 secs",
+          #       "cpu_time": "1.19 secs"
+          #     }
+        "a_key": "", # Properties of the object.
+      },
+    },
+    "metadata": { # Metadata about a ResultSet or PartialResultSet. # Metadata about the result set, such as row type information.
+      "rowType": { # `StructType` defines the fields of a STRUCT type. # Indicates the field names and types for the rows in the result
+          # set.  For example, a SQL query like `"SELECT UserId, UserName FROM
+          # Users"` could return a `row_type` value like:
+          #
+          #     "fields": [
+          #       { "name": "UserId", "type": { "code": "INT64" } },
+          #       { "name": "UserName", "type": { "code": "STRING" } },
+          #     ]
+        "fields": [ # The list of fields that make up this struct. Order is
+            # significant, because values of this struct type are represented as
+            # lists, where the order of field values matches the order of
+            # fields in the StructType. In turn, the order of fields
+            # matches the order of columns in a read request, or the order of
+            # fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a # The type of the field.
+                # table cell or returned from an SQL query.
+              "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+                  # provides type information for the struct's fields.
+              "code": "A String", # Required. The TypeCode for this type.
+              "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+                  # is the type of the array elements.
+            },
+            "name": "A String", # The name of the field. For reads, this is the column name. For
+                # SQL queries, it is the column alias (e.g., `"Word"` in the
+                # query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
+                # `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
+                # columns might have an empty name (e.g., !"SELECT
+                # UPPER(ColName)"`). Note that a query result can contain
+                # multiple fields with the same name.
+          },
+        ],
+      },
+      "transaction": { # A transaction. # If the read or SQL query began a transaction as a side-effect, the
+          # information about the new transaction is yielded here.
+        "readTimestamp": "A String", # For snapshot read-only transactions, the read timestamp chosen
+            # for the transaction. Not returned by default: see
+            # TransactionOptions.ReadOnly.return_read_timestamp.
+        "id": "A String", # `id` may be used to identify the transaction in subsequent
+            # Read,
+            # ExecuteSql,
+            # Commit, or
+            # Rollback calls.
+            #
+            # Single-use read-only transactions do not have IDs, because
+            # single-use transactions do not support multiple requests.
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rollback">rollback(session, body, x__xgafv=None)</code>
+  <pre>Rolls back a transaction, releasing any locks it holds. It is a good
+idea to call this for any transaction that includes one or more
+Read or ExecuteSql requests and
+ultimately decides not to commit.
+
+`Rollback` returns `OK` if it successfully aborts the transaction, the
+transaction was already aborted, or the transaction is not
+found. `Rollback` never returns `ABORTED`.
+
+Args:
+  session: string, Required. The session in which the transaction to roll back is running. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for Rollback.
+    "transactionId": "A String", # Required. The transaction to roll back.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="streamingRead">streamingRead(session, body, x__xgafv=None)</code>
+  <pre>Like Read, except returns the result set as a
+stream. Unlike Read, there is no limit on the
+size of the returned result set. However, no individual row in
+the result set can exceed 100 MiB, and no column value can exceed
+10 MiB.
+
+Args:
+  session: string, Required. The session in which the read should be performed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for Read and
+      # StreamingRead.
+    "index": "A String", # If non-empty, the name of an index on table. This index is
+        # used instead of the table primary key when interpreting key_set
+        # and sorting result rows. See key_set for further information.
+    "transaction": { # This message is used to select the transaction in which a # The transaction to use. If none is provided, the default is a
+        # temporary read-only transaction with strong concurrency.
+        # Read or
+        # ExecuteSql call runs.
+        #
+        # See TransactionOptions for more information about transactions.
+      "begin": { # # Transactions # Begin a new transaction and execute this read or SQL query in
+          # it. The transaction ID of the new transaction is returned in
+          # ResultSetMetadata.transaction, which is a Transaction.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "singleUse": { # # Transactions # Execute the read or SQL query in a temporary transaction.
+          # This is the most efficient way to execute a transaction that
+          # consists of a single SQL query.
+          #
+          #
+          # Each session can have at most one active transaction at a time. After the
+          # active transaction is completed, the session can immediately be
+          # re-used for the next transaction. It is not necessary to create a
+          # new session for each transaction.
+          #
+          # # Transaction Modes
+          #
+          # Cloud Spanner supports two transaction modes:
+          #
+          #   1. Locking read-write. This type of transaction is the only way
+          #      to write data into Cloud Spanner. These transactions rely on
+          #      pessimistic locking and, if necessary, two-phase commit.
+          #      Locking read-write transactions may abort, requiring the
+          #      application to retry.
+          #
+          #   2. Snapshot read-only. This transaction type provides guaranteed
+          #      consistency across several reads, but does not allow
+          #      writes. Snapshot read-only transactions can be configured to
+          #      read at timestamps in the past. Snapshot read-only
+          #      transactions do not need to be committed.
+          #
+          # For transactions that only read, snapshot read-only transactions
+          # provide simpler semantics and are almost always faster. In
+          # particular, read-only transactions do not take locks, so they do
+          # not conflict with read-write transactions. As a consequence of not
+          # taking locks, they also do not abort, so retry loops are not needed.
+          #
+          # Transactions may only read/write data in a single database. They
+          # may, however, read/write data in different tables within that
+          # database.
+          #
+          # ## Locking Read-Write Transactions
+          #
+          # Locking transactions may be used to atomically read-modify-write
+          # data anywhere in a database. This type of transaction is externally
+          # consistent.
+          #
+          # Clients should attempt to minimize the amount of time a transaction
+          # is active. Faster transactions commit with higher probability
+          # and cause less contention. Cloud Spanner attempts to keep read locks
+          # active as long as the transaction continues to do reads, and the
+          # transaction has not been terminated by
+          # Commit or
+          # Rollback.  Long periods of
+          # inactivity at the client may cause Cloud Spanner to release a
+          # transaction's locks and abort it.
+          #
+          # Reads performed within a transaction acquire locks on the data
+          # being read. Writes can only be done at commit time, after all reads
+          # have been completed.
+          # Conceptually, a read-write transaction consists of zero or more
+          # reads or SQL queries followed by
+          # Commit. At any time before
+          # Commit, the client can send a
+          # Rollback request to abort the
+          # transaction.
+          #
+          # ### Semantics
+          #
+          # Cloud Spanner can commit the transaction if all read locks it acquired
+          # are still valid at commit time, and it is able to acquire write
+          # locks for all writes. Cloud Spanner can abort the transaction for any
+          # reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
+          # that the transaction has not modified any user data in Cloud Spanner.
+          #
+          # Unless the transaction commits, Cloud Spanner makes no guarantees about
+          # how long the transaction's locks were held for. It is an error to
+          # use Cloud Spanner locks for any sort of mutual exclusion other than
+          # between Cloud Spanner transactions themselves.
+          #
+          # ### Retrying Aborted Transactions
+          #
+          # When a transaction aborts, the application can choose to retry the
+          # whole transaction again. To maximize the chances of successfully
+          # committing the retry, the client should execute the retry in the
+          # same session as the original attempt. The original session's lock
+          # priority increases with each consecutive abort, meaning that each
+          # attempt has a slightly better chance of success than the previous.
+          #
+          # Under some circumstances (e.g., many transactions attempting to
+          # modify the same row(s)), a transaction can abort many times in a
+          # short period before successfully committing. Thus, it is not a good
+          # idea to cap the number of retries a transaction can attempt;
+          # instead, it is better to limit the total amount of wall time spent
+          # retrying.
+          #
+          # ### Idle Transactions
+          #
+          # A transaction is considered idle if it has no outstanding reads or
+          # SQL queries and has not started a read or SQL query within the last 10
+          # seconds. Idle transactions can be aborted by Cloud Spanner so that they
+          # don't hold on to locks indefinitely. In that case, the commit will
+          # fail with error `ABORTED`.
+          #
+          # If this behavior is undesirable, periodically executing a simple
+          # SQL query in the transaction (e.g., `SELECT 1`) prevents the
+          # transaction from becoming idle.
+          #
+          # ## Snapshot Read-Only Transactions
+          #
+          # Snapshot read-only transactions provides a simpler method than
+          # locking read-write transactions for doing several consistent
+          # reads. However, this type of transaction does not support writes.
+          #
+          # Snapshot transactions do not take locks. Instead, they work by
+          # choosing a Cloud Spanner timestamp, then executing all reads at that
+          # timestamp. Since they do not acquire locks, they do not block
+          # concurrent read-write transactions.
+          #
+          # Unlike locking read-write transactions, snapshot read-only
+          # transactions never abort. They can fail if the chosen read
+          # timestamp is garbage collected; however, the default garbage
+          # collection policy is generous enough that most applications do not
+          # need to worry about this in practice.
+          #
+          # Snapshot read-only transactions do not need to call
+          # Commit or
+          # Rollback (and in fact are not
+          # permitted to do so).
+          #
+          # To execute a snapshot transaction, the client specifies a timestamp
+          # bound, which tells Cloud Spanner how to choose a read timestamp.
+          #
+          # The types of timestamp bound are:
+          #
+          #   - Strong (the default).
+          #   - Bounded staleness.
+          #   - Exact staleness.
+          #
+          # If the Cloud Spanner database to be read is geographically distributed,
+          # stale read-only transactions can execute more quickly than strong
+          # or read-write transaction, because they are able to execute far
+          # from the leader replica.
+          #
+          # Each type of timestamp bound is discussed in detail below.
+          #
+          # ### Strong
+          #
+          # Strong reads are guaranteed to see the effects of all transactions
+          # that have committed before the start of the read. Furthermore, all
+          # rows yielded by a single read are consistent with each other -- if
+          # any part of the read observes a transaction, all parts of the read
+          # see the transaction.
+          #
+          # Strong reads are not repeatable: two consecutive strong read-only
+          # transactions might return inconsistent results if there are
+          # concurrent writes. If consistency across reads is required, the
+          # reads should be executed within a transaction or at an exact read
+          # timestamp.
+          #
+          # See TransactionOptions.ReadOnly.strong.
+          #
+          # ### Exact Staleness
+          #
+          # These timestamp bounds execute reads at a user-specified
+          # timestamp. Reads at a timestamp are guaranteed to see a consistent
+          # prefix of the global transaction history: they observe
+          # modifications done by all transactions with a commit timestamp <=
+          # the read timestamp, and observe none of the modifications done by
+          # transactions with a larger commit timestamp. They will block until
+          # all conflicting transactions that may be assigned commit timestamps
+          # <= the read timestamp have finished.
+          #
+          # The timestamp can either be expressed as an absolute Cloud Spanner commit
+          # timestamp or a staleness relative to the current time.
+          #
+          # These modes do not require a "negotiation phase" to pick a
+          # timestamp. As a result, they execute slightly faster than the
+          # equivalent boundedly stale concurrency modes. On the other hand,
+          # boundedly stale reads usually return fresher results.
+          #
+          # See TransactionOptions.ReadOnly.read_timestamp and
+          # TransactionOptions.ReadOnly.exact_staleness.
+          #
+          # ### Bounded Staleness
+          #
+          # Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
+          # subject to a user-provided staleness bound. Cloud Spanner chooses the
+          # newest timestamp within the staleness bound that allows execution
+          # of the reads at the closest available replica without blocking.
+          #
+          # All rows yielded are consistent with each other -- if any part of
+          # the read observes a transaction, all parts of the read see the
+          # transaction. Boundedly stale reads are not repeatable: two stale
+          # reads, even if they use the same staleness bound, can execute at
+          # different timestamps and thus return inconsistent results.
+          #
+          # Boundedly stale reads execute in two phases: the first phase
+          # negotiates a timestamp among all replicas needed to serve the
+          # read. In the second phase, reads are executed at the negotiated
+          # timestamp.
+          #
+          # As a result of the two phase execution, bounded staleness reads are
+          # usually a little slower than comparable exact staleness
+          # reads. However, they are typically able to return fresher
+          # results, and are more likely to execute at the closest replica.
+          #
+          # Because the timestamp negotiation requires up-front knowledge of
+          # which rows will be read, it can only be used with single-use
+          # read-only transactions.
+          #
+          # See TransactionOptions.ReadOnly.max_staleness and
+          # TransactionOptions.ReadOnly.min_read_timestamp.
+          #
+          # ### Old Read Timestamps and Garbage Collection
+          #
+          # Cloud Spanner continuously garbage collects deleted and overwritten data
+          # in the background to reclaim storage space. This process is known
+          # as "version GC". By default, version GC reclaims versions after they
+          # are one hour old. Because of this, Cloud Spanner cannot perform reads
+          # at read timestamps more than one hour in the past. This
+          # restriction also applies to in-progress reads and/or SQL queries whose
+          # timestamp become too old while executing. Reads and SQL queries with
+          # too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+        "readWrite": { # Options for read-write transactions. # Transaction may write.
+            #
+            # Authorization to begin a read-write transaction requires
+            # `spanner.databases.beginOrRollbackReadWriteTransaction` permission
+            # on the `session` resource.
+        },
+        "readOnly": { # Options for read-only transactions. # Transaction will not write.
+            #
+            # Authorization to begin a read-only transaction requires
+            # `spanner.databases.beginReadOnlyTransaction` permission
+            # on the `session` resource.
+          "minReadTimestamp": "A String", # Executes all reads at a timestamp >= `min_read_timestamp`.
+              #
+              # This is useful for requesting fresher data than some previous
+              # read, or data that is fresh enough to observe the effects of some
+              # previously committed transaction whose timestamp is known.
+              #
+              # Note that this option can only be used in single-use transactions.
+          "readTimestamp": "A String", # Executes all reads at the given timestamp. Unlike other modes,
+              # reads at a specific timestamp are repeatable; the same read at
+              # the same timestamp always returns the same data. If the
+              # timestamp is in the future, the read will block until the
+              # specified timestamp, modulo the read's deadline.
+              #
+              # Useful for large scale consistent reads such as mapreduces, or
+              # for coordinating many reads against a consistent snapshot of the
+              # data.
+          "maxStaleness": "A String", # Read data at a timestamp >= `NOW - max_staleness`
+              # seconds. Guarantees that all writes that have committed more
+              # than the specified number of seconds ago are visible. Because
+              # Cloud Spanner chooses the exact timestamp, this mode works even if
+              # the client's local clock is substantially skewed from Cloud Spanner
+              # commit timestamps.
+              #
+              # Useful for reading the freshest data available at a nearby
+              # replica, while bounding the possible staleness if the local
+              # replica has fallen behind.
+              #
+              # Note that this option can only be used in single-use
+              # transactions.
+          "exactStaleness": "A String", # Executes all reads at a timestamp that is `exact_staleness`
+              # old. The timestamp is chosen soon after the read is started.
+              #
+              # Guarantees that all writes that have committed more than the
+              # specified number of seconds ago are visible. Because Cloud Spanner
+              # chooses the exact timestamp, this mode works even if the client's
+              # local clock is substantially skewed from Cloud Spanner commit
+              # timestamps.
+              #
+              # Useful for reading at nearby replicas without the distributed
+              # timestamp negotiation overhead of `max_staleness`.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
+          "strong": True or False, # Read at a timestamp where all previously committed transactions
+              # are visible.
+        },
+      },
+      "id": "A String", # Execute the read or SQL query in a previously-started transaction.
+    },
+    "resumeToken": "A String", # If this request is resuming a previously interrupted read,
+        # `resume_token` should be copied from the last
+        # PartialResultSet yielded before the interruption. Doing this
+        # enables the new read to resume where the last read left off. The
+        # rest of the request parameters must exactly match the request
+        # that yielded this token.
+    "keySet": { # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All # Required. `key_set` identifies the rows to be yielded. `key_set` names the
+        # primary keys of the rows in table to be yielded, unless index
+        # is present. If index is present, then key_set instead names
+        # index keys in index.
+        # 
+        # Rows are yielded in table primary key order (if index is empty)
+        # or index key order (if index is non-empty).
+        # 
+        # It is not an error for the `key_set` to name rows that do not
+        # exist in the database. Read yields nothing for nonexistent rows.
+        # the keys are expected to be in the same table or index. The keys need
+        # not be sorted in any particular way.
+        #
+        # If the same key is specified multiple times in the set (for example
+        # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
+        # behaves as if the key were only specified once.
+      "ranges": [ # A list of key ranges. See KeyRange for more information about
+          # key range specifications.
+        { # KeyRange represents a range of rows in a table or index.
+            #
+            # A range has a start key and an end key. These keys can be open or
+            # closed, indicating if the range includes rows with that key.
+            #
+            # Keys are represented by lists, where the ith value in the list
+            # corresponds to the ith component of the table or index primary key.
+            # Individual values are encoded as described here.
+            #
+            # For example, consider the following table definition:
+            #
+            #     CREATE TABLE UserEvents (
+            #       UserName STRING(MAX),
+            #       EventDate STRING(10)
+            #     ) PRIMARY KEY(UserName, EventDate);
+            #
+            # The following keys name rows in this table:
+            #
+            #     "Bob", "2014-09-23"
+            #
+            # Since the `UserEvents` table's `PRIMARY KEY` clause names two
+            # columns, each `UserEvents` key has two elements; the first is the
+            # `UserName`, and the second is the `EventDate`.
+            #
+            # Key ranges with multiple components are interpreted
+            # lexicographically by component using the table or index key's declared
+            # sort order. For example, the following range returns all events for
+            # user `"Bob"` that occurred in the year 2015:
+            #
+            #     "start_closed": ["Bob", "2015-01-01"]
+            #     "end_closed": ["Bob", "2015-12-31"]
+            #
+            # Start and end keys can omit trailing key components. This affects the
+            # inclusion and exclusion of rows that exactly match the provided key
+            # components: if the key is closed, then rows that exactly match the
+            # provided components are included; if the key is open, then rows
+            # that exactly match are not included.
+            #
+            # For example, the following range includes all events for `"Bob"` that
+            # occurred during and after the year 2000:
+            #
+            #     "start_closed": ["Bob", "2000-01-01"]
+            #     "end_closed": ["Bob"]
+            #
+            # The next example retrieves all events for `"Bob"`:
+            #
+            #     "start_closed": ["Bob"]
+            #     "end_closed": ["Bob"]
+            #
+            # To retrieve events before the year 2000:
+            #
+            #     "start_closed": ["Bob"]
+            #     "end_open": ["Bob", "2000-01-01"]
+            #
+            # The following range includes all rows in the table:
+            #
+            #     "start_closed": []
+            #     "end_closed": []
+            #
+            # This range returns all users whose `UserName` begins with any
+            # character from A to C:
+            #
+            #     "start_closed": ["A"]
+            #     "end_open": ["D"]
+            #
+            # This range returns all users whose `UserName` begins with B:
+            #
+            #     "start_closed": ["B"]
+            #     "end_open": ["C"]
+            #
+            # Key ranges honor column sort order. For example, suppose a table is
+            # defined as follows:
+            #
+            #     CREATE TABLE DescendingSortedTable {
+            #       Key INT64,
+            #       ...
+            #     ) PRIMARY KEY(Key DESC);
+            #
+            # The following range retrieves all rows with key values between 1
+            # and 100 inclusive:
+            #
+            #     "start_closed": ["100"]
+            #     "end_closed": ["1"]
+            #
+            # Note that 100 is passed as the start, and 1 is passed as the end,
+            # because `Key` is a descending column in the schema.
+          "endOpen": [ # If the end is open, then the range excludes rows whose first
+              # `len(end_open)` key columns exactly match `end_open`.
+            "",
+          ],
+          "startOpen": [ # If the start is open, then the range excludes rows whose first
+              # `len(start_open)` key columns exactly match `start_open`.
+            "",
+          ],
+          "endClosed": [ # If the end is closed, then the range includes all rows whose
+              # first `len(end_closed)` key columns exactly match `end_closed`.
+            "",
+          ],
+          "startClosed": [ # If the start is closed, then the range includes all rows whose
+              # first `len(start_closed)` key columns exactly match `start_closed`.
+            "",
+          ],
+        },
+      ],
+      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+          # many elements as there are columns in the primary or index key
+          # with which this `KeySet` is used.  Individual key values are
+          # encoded as described here.
+        [
+          "",
+        ],
+      ],
+      "all": True or False, # For convenience `all` can be set to `true` to indicate that this
+          # `KeySet` matches all keys in the table or index. Note that any keys
+          # specified in `keys` or `ranges` are only yielded once.
+    },
+    "limit": "A String", # If greater than zero, only the first `limit` rows are yielded. If `limit`
+        # is zero, the default is no limit.
+    "table": "A String", # Required. The name of the table in the database to be read.
+    "columns": [ # The columns of table to be returned for each row matching
+        # this request.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Partial results from a streaming read or SQL query. Streaming reads and
+      # SQL queries better tolerate large result sets, large rows, and large
+      # values, but are a little trickier to consume.
+    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
+        # as TCP connection loss. If this occurs, the stream of results can
+        # be resumed by re-sending the original request and including
+        # `resume_token`. Note that executing any other transaction in the
+        # same session invalidates the token.
+    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
+        # be combined with more values from subsequent `PartialResultSet`s
+        # to obtain a complete field value.
+    "values": [ # A streamed result set consists of a stream of values, which might
+        # be split into many `PartialResultSet` messages to accommodate
+        # large rows and/or large values. Every N complete values defines a
+        # row, where N is equal to the number of entries in
+        # metadata.row_type.fields.
+        #
+        # Most values are encoded based on type as described
+        # here.
+        #
+        # It is possible that the last value in values is "chunked",
+        # meaning that the rest of the value is sent in subsequent
+        # `PartialResultSet`(s). This is denoted by the chunked_value
+        # field. Two or more chunked values can be merged to form a
+        # complete value as follows:
+        #
+        #   * `bool/number/null`: cannot be chunked
+        #   * `string`: concatenate the strings
+        #   * `list`: concatenate the lists. If the last element in a list is a
+        #     `string`, `list`, or `object`, merge it with the first element in
+        #     the next list by applying these rules recursively.
+        #   * `object`: concatenate the (field name, field value) pairs. If a
+        #     field name is duplicated, then apply these rules recursively
+        #     to merge the field values.
+        #
+        # Some examples of merging:
+        #
+        #     # Strings are concatenated.
+        #     "foo", "bar" => "foobar"
+        #
+        #     # Lists of non-strings are concatenated.
+        #     [2, 3], [4] => [2, 3, 4]
+        #
+        #     # Lists are concatenated, but the last and first elements are merged
+        #     # because they are strings.
+        #     ["a", "b"], ["c", "d"] => ["a", "bc", "d"]
+        #
+        #     # Lists are concatenated, but the last and first elements are merged
+        #     # because they are lists. Recursively, the last and first elements
+        #     # of the inner lists are merged because they are strings.
+        #     ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"]
+        #
+        #     # Non-overlapping object fields are combined.
+        #     {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"}
+        #
+        #     # Overlapping object fields are merged.
+        #     {"a": "1"}, {"a": "2"} => {"a": "12"}
+        #
+        #     # Examples of merging objects containing lists of strings.
+        #     {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]}
+        #
+        # For a more complete example, suppose a streaming SQL query is
+        # yielding a result set whose rows contain a single string
+        # field. The following `PartialResultSet`s might be yielded:
+        #
+        #     {
+        #       "metadata": { ... }
+        #       "values": ["Hello", "W"]
+        #       "chunked_value": true
+        #       "resume_token": "Af65..."
+        #     }
+        #     {
+        #       "values": ["orl"]
+        #       "chunked_value": true
+        #       "resume_token": "Bqp2..."
+        #     }
+        #     {
+        #       "values": ["d"]
+        #       "resume_token": "Zx1B..."
+        #     }
+        #
+        # This sequence of `PartialResultSet`s encodes two rows, one
+        # containing the field value `"Hello"`, and a second containing the
+        # field value `"World" = "W" + "orl" + "d"`.
+      "",
+    ],
+    "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
+        # streaming result set. These can be requested by setting
+        # ExecuteSqlRequest.query_mode and are sent
+        # only once with the last response in the stream.
+      "queryPlan": { # Contains an ordered list of nodes appearing in the query plan. # QueryPlan for the query associated with this result.
+        "planNodes": [ # The nodes in the query plan. Plan nodes are returned in pre-order starting
+            # with the plan root. Each PlanNode's `id` corresponds to its index in
+            # `plan_nodes`.
+          { # Node information for nodes appearing in a QueryPlan.plan_nodes.
+            "index": 42, # The `PlanNode`'s index in node list.
+            "kind": "A String", # Used to determine the type of node. May be needed for visualizing
+                # different kinds of nodes differently. For example, If the node is a
+                # SCALAR node, it will have a condensed representation
+                # which can be used to directly embed a description of the node in its
+                # parent.
+            "displayName": "A String", # The display name for the node.
+            "executionStats": { # The execution statistics associated with the node, contained in a group of
+                # key-value pairs. Only present if the plan was returned as a result of a
+                # profile query. For example, number of executions, number of rows/time per
+                # execution etc.
+              "a_key": "", # Properties of the object.
+            },
+            "childLinks": [ # List of child node `index`es and their relationship to this parent.
+              { # Metadata associated with a parent-child relationship appearing in a
+                  # PlanNode.
+                "variable": "A String", # Only present if the child node is SCALAR and corresponds
+                    # to an output variable of the parent node. The field carries the name of
+                    # the output variable.
+                    # For example, a `TableScan` operator that reads rows from a table will
+                    # have child links to the `SCALAR` nodes representing the output variables
+                    # created for each column that is read by the operator. The corresponding
+                    # `variable` fields will be set to the variable names assigned to the
+                    # columns.
+                "childIndex": 42, # The node to which the link points.
+                "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
+                    # distinguish between the build child and the probe child, or in the case
+                    # of the child being an output variable, to represent the tag associated
+                    # with the output variable.
+              },
+            ],
+            "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
+                # `SCALAR` PlanNode(s).
+              "subqueries": { # A mapping of (subquery variable name) -> (subquery node id) for cases
+                  # where the `description` string of this node references a `SCALAR`
+                  # subquery contained in the expression subtree rooted at this node. The
+                  # referenced `SCALAR` subquery may not necessarily be a direct child of
+                  # this node.
+                "a_key": 42,
+              },
+              "description": "A String", # A string representation of the expression subtree rooted at this node.
+            },
+            "metadata": { # Attributes relevant to the node contained in a group of key-value pairs.
+                # For example, a Parameter Reference node could have the following
+                # information in its metadata:
+                #
+                #     {
+                #       "parameter_reference": "param1",
+                #       "parameter_type": "array"
+                #     }
+              "a_key": "", # Properties of the object.
+            },
+          },
+        ],
+      },
+      "queryStats": { # Aggregated statistics from the execution of the query. Only present when
+          # the query is profiled. For example, a query could return the statistics as
+          # follows:
+          #
+          #     {
+          #       "rows_returned": "3",
+          #       "elapsed_time": "1.22 secs",
+          #       "cpu_time": "1.19 secs"
+          #     }
+        "a_key": "", # Properties of the object.
+      },
+    },
+    "metadata": { # Metadata about a ResultSet or PartialResultSet. # Metadata about the result set, such as row type information.
+        # Only present in the first response.
+      "rowType": { # `StructType` defines the fields of a STRUCT type. # Indicates the field names and types for the rows in the result
+          # set.  For example, a SQL query like `"SELECT UserId, UserName FROM
+          # Users"` could return a `row_type` value like:
+          #
+          #     "fields": [
+          #       { "name": "UserId", "type": { "code": "INT64" } },
+          #       { "name": "UserName", "type": { "code": "STRING" } },
+          #     ]
+        "fields": [ # The list of fields that make up this struct. Order is
+            # significant, because values of this struct type are represented as
+            # lists, where the order of field values matches the order of
+            # fields in the StructType. In turn, the order of fields
+            # matches the order of columns in a read request, or the order of
+            # fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            "type": { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a # The type of the field.
+                # table cell or returned from an SQL query.
+              "structType": # Object with schema name: StructType # If code == STRUCT, then `struct_type`
+                  # provides type information for the struct's fields.
+              "code": "A String", # Required. The TypeCode for this type.
+              "arrayElementType": # Object with schema name: Type # If code == ARRAY, then `array_element_type`
+                  # is the type of the array elements.
+            },
+            "name": "A String", # The name of the field. For reads, this is the column name. For
+                # SQL queries, it is the column alias (e.g., `"Word"` in the
+                # query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
+                # `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
+                # columns might have an empty name (e.g., !"SELECT
+                # UPPER(ColName)"`). Note that a query result can contain
+                # multiple fields with the same name.
+          },
+        ],
+      },
+      "transaction": { # A transaction. # If the read or SQL query began a transaction as a side-effect, the
+          # information about the new transaction is yielded here.
+        "readTimestamp": "A String", # For snapshot read-only transactions, the read timestamp chosen
+            # for the transaction. Not returned by default: see
+            # TransactionOptions.ReadOnly.return_read_timestamp.
+        "id": "A String", # `id` may be used to identify the transaction in subsequent
+            # Read,
+            # ExecuteSql,
+            # Commit, or
+            # Rollback calls.
+            #
+            # Single-use read-only transactions do not have IDs, because
+            # single-use transactions do not support multiple requests.
+      },
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.projects.instances.html b/docs/dyn/spanner_v1.projects.instances.html
new file mode 100644
index 0000000..9f0407f
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instances.html
@@ -0,0 +1,1394 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instances.databases.html">databases()</a></code>
+</p>
+<p class="firstline">Returns the databases Resource.</p>
+
+<p class="toc_element">
+  <code><a href="spanner_v1.projects.instances.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an instance and begins preparing it to begin serving. The</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes an instance.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a particular instance.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for an instance resource. Returns an empty</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all instances in the 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(name=None, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an instance, and begins allocating or releasing resources</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on an instance resource. Replaces any</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that the caller has on the specified instance resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+  <pre>Creates an instance and begins preparing it to begin serving. The
+returned long-running operation
+can be used to track the progress of preparing the new
+instance. The instance name is assigned by the caller. If the
+named instance already exists, `CreateInstance` returns
+`ALREADY_EXISTS`.
+
+Immediately upon completion of this request:
+
+  * The instance is readable via the API, with all requested attributes
+    but no allocated resources. Its state is `CREATING`.
+
+Until completion of the returned operation:
+
+  * Cancelling the operation renders the instance immediately unreadable
+    via the API.
+  * The instance can be deleted.
+  * All other attempts to modify the instance are rejected.
+
+Upon completion of the returned operation:
+
+  * Billing for all successfully-allocated resources begins (some types
+    may have lower than the requested levels).
+  * Databases can be created in the instance.
+  * The instance's allocated resource levels are readable via the API.
+  * The instance's state becomes `READY`.
+
+The returned long-running operation will
+have a name of the format `<instance_name>/operations/<operation_id>` and
+can be used to track creation of the instance.  The
+metadata field type is
+CreateInstanceMetadata.
+The response field type is
+Instance, if successful.
+
+Args:
+  parent: string, Required. The name of the project in which to create the instance. Values
+are of the form `projects/<project>`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for CreateInstance.
+    "instanceId": "A String", # Required. The ID of the instance to create.  Valid identifiers are of the
+        # form `a-z*[a-z0-9]` and must be between 6 and 30 characters in
+        # length.
+    "instance": { # An isolated set of Cloud Spanner resources on which databases can be hosted. # Required. The instance to create.  The name may be omitted, but if
+        # specified must be `<parent>/instances/<instance_id>`.
+      "displayName": "A String", # Required. The descriptive name for this instance as it appears in UIs.
+          # Must be unique per project and between 4 and 30 characters in length.
+      "name": "A String", # Required. A unique identifier for the instance, which cannot be changed
+          # after the instance is created. Values are of the form
+          # `projects/<project>/instances/a-z*[a-z0-9]`. The final
+          # segment of the name must be between 6 and 30 characters in length.
+      "labels": { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud
+          # resources into groups that reflect a customer's organizational needs and
+          # deployment strategies. Cloud Labels can be used to filter collections of
+          # resources. They can be used to control how resource metrics are aggregated.
+          # And they can be used as arguments to policy management rules (e.g. route,
+          # firewall, load balancing, etc.).
+          #
+          #  * Label keys must be between 1 and 63 characters long and must conform to
+          #    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+          #  * Label values must be between 0 and 63 characters long and must conform
+          #    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+          #  * No more than 64 labels can be associated with a given resource.
+          #
+          # See https://goo.gl/xmQnxf for more information on and examples of labels.
+          #
+          # If you plan to use labels in your own code, please note that additional
+          # characters may be allowed in the future. And so you are advised to use an
+          # internal label representation, such as JSON, which doesn't rely upon
+          # specific characters being disallowed.  For example, representing labels
+          # as the string:  name + "_" + value  would prove problematic if we were to
+          # allow "_" in a future release.
+        "a_key": "A String",
+      },
+      "state": "A String", # Output only. The current instance state. For
+          # CreateInstance, the state must be
+          # either omitted or set to `CREATING`. For
+          # UpdateInstance, the state must be
+          # either omitted or set to `READY`.
+      "nodeCount": 42, # Required. The number of nodes allocated to this instance.
+      "config": "A String", # Required. The name of the instance's configuration. Values are of the form
+          # `projects/<project>/instanceConfigs/<configuration>`. See
+          # also InstanceConfig and
+          # ListInstanceConfigs.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+  <pre>Deletes an instance.
+
+Immediately upon completion of the request:
+
+  * Billing ceases for all of the instance's reserved resources.
+
+Soon afterward:
+
+  * The instance and *all of its databases* immediately and
+    irrevocably disappear from the API. All data in the databases
+    is permanently deleted.
+
+Args:
+  name: string, Required. The name of the instance to be deleted. Values are of the form
+`projects/<project>/instances/<instance>` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+  <pre>Gets information about a particular instance.
+
+Args:
+  name: string, Required. The name of the requested instance. Values are of the form
+`projects/<project>/instances/<instance>`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An isolated set of Cloud Spanner resources on which databases can be hosted.
+    "displayName": "A String", # Required. The descriptive name for this instance as it appears in UIs.
+        # Must be unique per project and between 4 and 30 characters in length.
+    "name": "A String", # Required. A unique identifier for the instance, which cannot be changed
+        # after the instance is created. Values are of the form
+        # `projects/<project>/instances/a-z*[a-z0-9]`. The final
+        # segment of the name must be between 6 and 30 characters in length.
+    "labels": { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud
+        # resources into groups that reflect a customer's organizational needs and
+        # deployment strategies. Cloud Labels can be used to filter collections of
+        # resources. They can be used to control how resource metrics are aggregated.
+        # And they can be used as arguments to policy management rules (e.g. route,
+        # firewall, load balancing, etc.).
+        #
+        #  * Label keys must be between 1 and 63 characters long and must conform to
+        #    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+        #  * Label values must be between 0 and 63 characters long and must conform
+        #    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+        #  * No more than 64 labels can be associated with a given resource.
+        #
+        # See https://goo.gl/xmQnxf for more information on and examples of labels.
+        #
+        # If you plan to use labels in your own code, please note that additional
+        # characters may be allowed in the future. And so you are advised to use an
+        # internal label representation, such as JSON, which doesn't rely upon
+        # specific characters being disallowed.  For example, representing labels
+        # as the string:  name + "_" + value  would prove problematic if we were to
+        # allow "_" in a future release.
+      "a_key": "A String",
+    },
+    "state": "A String", # Output only. The current instance state. For
+        # CreateInstance, the state must be
+        # either omitted or set to `CREATING`. For
+        # UpdateInstance, the state must be
+        # either omitted or set to `READY`.
+    "nodeCount": 42, # Required. The number of nodes allocated to this instance.
+    "config": "A String", # Required. The name of the instance's configuration. Values are of the form
+        # `projects/<project>/instanceConfigs/<configuration>`. See
+        # also InstanceConfig and
+        # ListInstanceConfigs.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
+  <pre>Gets the access control policy for an instance resource. Returns an empty
+policy if an instance exists but does not have a policy set.
+
+Authorization requires `spanner.instances.getIamPolicy` on
+resource.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which the policy is being retrieved. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for database resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `GetIamPolicy` method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+            # logging for the `service` specified above.
+            # Follows the same format of Binding.members.
+            # This field is deprecated in favor of per-permission-type exemptions.
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all instances in the given project.
+
+Args:
+  parent: string, Required. The name of the project for which a list of instances is
+requested. Values are of the form `projects/<project>`. (required)
+  pageSize: integer, Number of instances to be returned in the response. If 0 or less, defaults
+to the server's maximum allowed page size.
+  filter: string, An expression for filtering the results of the request. Filter rules are
+case insensitive. The fields eligible for filtering are:
+
+  * name
+  * display_name
+  * labels.key where key is the name of a label
+
+Some examples of using filters are:
+
+  * name:* --> The instance has a name.
+  * name:Howl --> The instance's name contains the string "howl".
+  * name:HOWL --> Equivalent to above.
+  * NAME:howl --> Equivalent to above.
+  * labels.env:* --> The instance has the label "env".
+  * labels.env:dev --> The instance has the label "env" and the value of
+                       the label contains the string "dev".
+  * name:howl labels.env:dev --> The instance's name contains "howl" and
+                                 it has the label "env" with its value
+                                 containing "dev".
+  pageToken: string, If non-empty, `page_token` should contain a
+next_page_token from a
+previous ListInstancesResponse.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response for ListInstances.
+    "nextPageToken": "A String", # `next_page_token` can be sent in a subsequent
+        # ListInstances call to fetch more
+        # of the matching instances.
+    "instances": [ # The list of requested instances.
+      { # An isolated set of Cloud Spanner resources on which databases can be hosted.
+        "displayName": "A String", # Required. The descriptive name for this instance as it appears in UIs.
+            # Must be unique per project and between 4 and 30 characters in length.
+        "name": "A String", # Required. A unique identifier for the instance, which cannot be changed
+            # after the instance is created. Values are of the form
+            # `projects/<project>/instances/a-z*[a-z0-9]`. The final
+            # segment of the name must be between 6 and 30 characters in length.
+        "labels": { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud
+            # resources into groups that reflect a customer's organizational needs and
+            # deployment strategies. Cloud Labels can be used to filter collections of
+            # resources. They can be used to control how resource metrics are aggregated.
+            # And they can be used as arguments to policy management rules (e.g. route,
+            # firewall, load balancing, etc.).
+            #
+            #  * Label keys must be between 1 and 63 characters long and must conform to
+            #    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+            #  * Label values must be between 0 and 63 characters long and must conform
+            #    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+            #  * No more than 64 labels can be associated with a given resource.
+            #
+            # See https://goo.gl/xmQnxf for more information on and examples of labels.
+            #
+            # If you plan to use labels in your own code, please note that additional
+            # characters may be allowed in the future. And so you are advised to use an
+            # internal label representation, such as JSON, which doesn't rely upon
+            # specific characters being disallowed.  For example, representing labels
+            # as the string:  name + "_" + value  would prove problematic if we were to
+            # allow "_" in a future release.
+          "a_key": "A String",
+        },
+        "state": "A String", # Output only. The current instance state. For
+            # CreateInstance, the state must be
+            # either omitted or set to `CREATING`. For
+            # UpdateInstance, the state must be
+            # either omitted or set to `READY`.
+        "nodeCount": 42, # Required. The number of nodes allocated to this instance.
+        "config": "A String", # Required. The name of the instance's configuration. Values are of the form
+            # `projects/<project>/instanceConfigs/<configuration>`. See
+            # also InstanceConfig and
+            # ListInstanceConfigs.
+      },
+    ],
+  }</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(name=None, body, x__xgafv=None)</code>
+  <pre>Updates an instance, and begins allocating or releasing resources
+as requested. The returned long-running
+operation can be used to track the
+progress of updating the instance. If the named instance does not
+exist, returns `NOT_FOUND`.
+
+Immediately upon completion of this request:
+
+  * For resource types for which a decrease in the instance's allocation
+    has been requested, billing is based on the newly-requested level.
+
+Until completion of the returned operation:
+
+  * Cancelling the operation sets its metadata's
+    cancel_time, and begins
+    restoring resources to their pre-request values. The operation
+    is guaranteed to succeed at undoing all resource changes,
+    after which point it terminates with a `CANCELLED` status.
+  * All other attempts to modify the instance are rejected.
+  * Reading the instance via the API continues to give the pre-request
+    resource levels.
+
+Upon completion of the returned operation:
+
+  * Billing begins for all successfully-allocated resources (some types
+    may have lower than the requested levels).
+  * All newly-reserved resources are available for serving the instance's
+    tables.
+  * The instance's new resource levels are readable via the API.
+
+The returned long-running operation will
+have a name of the format `<instance_name>/operations/<operation_id>` and
+can be used to track the instance modification.  The
+metadata field type is
+UpdateInstanceMetadata.
+The response field type is
+Instance, if successful.
+
+Authorization requires `spanner.instances.update` permission on
+resource name.
+
+Args:
+  name: string, Required. A unique identifier for the instance, which cannot be changed
+after the instance is created. Values are of the form
+`projects/<project>/instances/a-z*[a-z0-9]`. The final
+segment of the name must be between 6 and 30 characters in length. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request for UpdateInstance.
+    "instance": { # An isolated set of Cloud Spanner resources on which databases can be hosted. # Required. The instance to update, which must always include the instance
+        # name.  Otherwise, only fields mentioned in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included.
+      "displayName": "A String", # Required. The descriptive name for this instance as it appears in UIs.
+          # Must be unique per project and between 4 and 30 characters in length.
+      "name": "A String", # Required. A unique identifier for the instance, which cannot be changed
+          # after the instance is created. Values are of the form
+          # `projects/<project>/instances/a-z*[a-z0-9]`. The final
+          # segment of the name must be between 6 and 30 characters in length.
+      "labels": { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud
+          # resources into groups that reflect a customer's organizational needs and
+          # deployment strategies. Cloud Labels can be used to filter collections of
+          # resources. They can be used to control how resource metrics are aggregated.
+          # And they can be used as arguments to policy management rules (e.g. route,
+          # firewall, load balancing, etc.).
+          #
+          #  * Label keys must be between 1 and 63 characters long and must conform to
+          #    the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
+          #  * Label values must be between 0 and 63 characters long and must conform
+          #    to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
+          #  * No more than 64 labels can be associated with a given resource.
+          #
+          # See https://goo.gl/xmQnxf for more information on and examples of labels.
+          #
+          # If you plan to use labels in your own code, please note that additional
+          # characters may be allowed in the future. And so you are advised to use an
+          # internal label representation, such as JSON, which doesn't rely upon
+          # specific characters being disallowed.  For example, representing labels
+          # as the string:  name + "_" + value  would prove problematic if we were to
+          # allow "_" in a future release.
+        "a_key": "A String",
+      },
+      "state": "A String", # Output only. The current instance state. For
+          # CreateInstance, the state must be
+          # either omitted or set to `CREATING`. For
+          # UpdateInstance, the state must be
+          # either omitted or set to `READY`.
+      "nodeCount": 42, # Required. The number of nodes allocated to this instance.
+      "config": "A String", # Required. The name of the instance's configuration. Values are of the form
+          # `projects/<project>/instanceConfigs/<configuration>`. See
+          # also InstanceConfig and
+          # ListInstanceConfigs.
+    },
+    "fieldMask": "A String", # Required. A mask specifying which fields in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be updated.
+        # The field mask must always be specified; this prevents any future fields in
+        # [][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know
+        # about them.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
+  <pre>Sets the access control policy on an instance resource. Replaces any
+existing policy.
+
+Authorization requires `spanner.instances.setIamPolicy` on
+resource.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for databases resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+        # the policy is limited to a few 10s of KB. An empty policy is a
+        # valid policy but certain Cloud Platform services (such as Projects)
+        # might reject them.
+        # specify access control policies for Cloud Platform resources.
+        #
+        #
+        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+        # `members` to a `role`, where the members can be user accounts, Google groups,
+        # Google domains, and service accounts. A `role` is a named list of permissions
+        # defined by IAM.
+        #
+        # **Example**
+        #
+        #     {
+        #       "bindings": [
+        #         {
+        #           "role": "roles/owner",
+        #           "members": [
+        #             "user:mike@example.com",
+        #             "group:admins@example.com",
+        #             "domain:google.com",
+        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+        #           ]
+        #         },
+        #         {
+        #           "role": "roles/viewer",
+        #           "members": ["user:sean@example.com"]
+        #         }
+        #       ]
+        #     }
+        #
+        # For a description of IAM and its features, see the
+        # [IAM developer's guide](https://cloud.google.com/iam).
+      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+        { # Specifies the audit configuration for a service.
+            # It consists of which permission types are logged, and what identities, if
+            # any, are exempted from logging.
+            # An AuditConifg must have one or more AuditLogConfigs.
+          "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+              # logging for the `service` specified above.
+              # Follows the same format of Binding.members.
+              # This field is deprecated in favor of per-permission-type exemptions.
+            "A String",
+          ],
+          "auditLogConfigs": [ # The configuration for logging of each type of permission.
+              # Next ID: 4
+            { # Provides the configuration for logging a type of permissions.
+                # Example:
+                #
+                #     {
+                #       "audit_log_configs": [
+                #         {
+                #           "log_type": "DATA_READ",
+                #           "exempted_members": [
+                #             "user:foo@gmail.com"
+                #           ]
+                #         },
+                #         {
+                #           "log_type": "DATA_WRITE",
+                #         }
+                #       ]
+                #     }
+                #
+                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+                # foo@gmail.com from DATA_READ logging.
+              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                  # permission.
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
+              # For example, `resourcemanager`, `storage`, `compute`.
+              # `allServices` is a special value that covers all services.
+        },
+      ],
+      "rules": [ # If more than one rule is specified, the rules are applied in the following
+          # manner:
+          # - All matching LOG rules are always applied.
+          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+          #   granted.
+          #   Logging will be applied if one or more matching rule requires logging.
+          # - Otherwise, if no rule applies, permission is denied.
+        { # A rule to be applied in a Policy.
+          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+              # The format for in and not_in entries is the same as for members in a
+              # Binding (see google/iam/v1/policy.proto).
+            "A String",
+          ],
+          "description": "A String", # Human-readable description of the rule.
+          "in": [ # If one or more 'in' clauses are specified, the rule matches if
+              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+            "A String",
+          ],
+          "action": "A String", # Required
+          "conditions": [ # Additional restrictions that must be met
+            { # A condition to be met.
+              "iam": "A String", # Trusted attributes supplied by the IAM system.
+              "svc": "A String", # Trusted attributes discharged by the service.
+              "value": "A String", # DEPRECATED. Use 'values' instead.
+              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                  # the IAM system for access control.
+              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+                "A String",
+              ],
+              "op": "A String", # An operator to apply the subject with.
+            },
+          ],
+          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+              # that match the LOG action.
+            { # Specifies what kind of log the caller must write
+                # Increment a streamz counter with the specified metric and field names.
+                #
+                # Metric names should start with a '/', generally be lowercase-only,
+                # and end in "_count". Field names should not contain an initial slash.
+                # The actual exported metric names will have "/iam/policy" prepended.
+                #
+                # Field names correspond to IAM request parameters and field values are
+                # their respective values.
+                #
+                # At present the only supported field names are
+                #    - "iam_principal", corresponding to IAMContext.principal;
+                #    - "" (empty string), resulting in one aggretated counter with no field.
+                #
+                # Examples:
+                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+                #   ==> increment counter /iam/policy/backend_debug_access_count
+                #                         {iam_principal=[value of IAMContext.principal]}
+                #
+                # At this time we do not support:
+                # * multiple field names (though this may be supported in the future)
+                # * decrementing the counter
+                # * incrementing it by anything other than 1
+              "counter": { # Options for counters # Counter options.
+                "field": "A String", # The field value to attribute.
+                "metric": "A String", # The metric to update.
+              },
+              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+              },
+              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              },
+            },
+          ],
+          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+            "A String",
+          ],
+        },
+      ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
+      "iamOwned": True or False,
+    },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to
+      # specify access control policies for Cloud Platform resources.
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+      # `members` to a `role`, where the members can be user accounts, Google groups,
+      # Google domains, and service accounts. A `role` is a named list of permissions
+      # defined by IAM.
+      #
+      # **Example**
+      #
+      #     {
+      #       "bindings": [
+      #         {
+      #           "role": "roles/owner",
+      #           "members": [
+      #             "user:mike@example.com",
+      #             "group:admins@example.com",
+      #             "domain:google.com",
+      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+      #           ]
+      #         },
+      #         {
+      #           "role": "roles/viewer",
+      #           "members": ["user:sean@example.com"]
+      #         }
+      #       ]
+      #     }
+      #
+      # For a description of IAM and its features, see the
+      # [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service.
+          # It consists of which permission types are logged, and what identities, if
+          # any, are exempted from logging.
+          # An AuditConifg must have one or more AuditLogConfigs.
+        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
+            # logging for the `service` specified above.
+            # Follows the same format of Binding.members.
+            # This field is deprecated in favor of per-permission-type exemptions.
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+            # Next ID: 4
+          { # Provides the configuration for logging a type of permissions.
+              # Example:
+              #
+              #     {
+              #       "audit_log_configs": [
+              #         {
+              #           "log_type": "DATA_READ",
+              #           "exempted_members": [
+              #             "user:foo@gmail.com"
+              #           ]
+              #         },
+              #         {
+              #           "log_type": "DATA_WRITE",
+              #         }
+              #       ]
+              #     }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+              # foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
+                # permission.
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
+            # For example, `resourcemanager`, `storage`, `compute`.
+            # `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following
+        # manner:
+        # - All matching LOG rules are always applied.
+        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+        #   granted.
+        #   Logging will be applied if one or more matching rule requires logging.
+        # - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
+            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+            # The format for in and not_in entries is the same as for members in a
+            # Binding (see google/iam/v1/policy.proto).
+          "A String",
+        ],
+        "description": "A String", # Human-readable description of the rule.
+        "in": [ # If one or more 'in' clauses are specified, the rule matches if
+            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
+                # the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+            # that match the LOG action.
+          { # Specifies what kind of log the caller must write
+              # Increment a streamz counter with the specified metric and field names.
+              #
+              # Metric names should start with a '/', generally be lowercase-only,
+              # and end in "_count". Field names should not contain an initial slash.
+              # The actual exported metric names will have "/iam/policy" prepended.
+              #
+              # Field names correspond to IAM request parameters and field values are
+              # their respective values.
+              #
+              # At present the only supported field names are
+              #    - "iam_principal", corresponding to IAMContext.principal;
+              #    - "" (empty string), resulting in one aggretated counter with no field.
+              #
+              # Examples:
+              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
+              #   ==> increment counter /iam/policy/backend_debug_access_count
+              #                         {iam_principal=[value of IAMContext.principal]}
+              #
+              # At this time we do not support:
+              # * multiple field names (though this may be supported in the future)
+              # * decrementing the counter
+              # * incrementing it by anything other than 1
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            },
+          },
+        ],
+        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
+            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
+  <pre>Returns permissions that the caller has on the specified instance resource.
+
+Attempting this RPC on a non-existent Cloud Spanner instance resource will
+result in a NOT_FOUND error if the user has `spanner.instances.list`
+permission on the containing Google Cloud Project. Otherwise returns an
+empty set of permissions.
+
+Args:
+  resource: string, REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects/<project ID>/instances/<instance ID>` for instance resources and `projects/<project ID>/instances/<instance ID>/databases/<database ID>` for database resources. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # REQUIRED: The set of permissions to check for 'resource'.
+        # Permissions with wildcards (such as '*', 'spanner.*', 'spanner.instances.*') are not allowed.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
+        # allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spanner_v1.projects.instances.operations.html b/docs/dyn/spanner_v1.projects.instances.operations.html
new file mode 100644
index 0000000..547dda2
--- /dev/null
+++ b/docs/dyn/spanner_v1.projects.instances.operations.html
@@ -0,0 +1,393 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instances.html">instances</a> . <a href="spanner_v1.projects.instances.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation.  The server</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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="cancel">cancel(name, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation.  The server
+makes a best effort to cancel the operation, but success is not
+guaranteed.  If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.  Clients can use
+Operations.GetOperation or
+other methods to check whether the cancellation succeeded or whether the
+operation completed despite cancellation. On successful cancellation,
+the operation is not deleted; instead, it becomes an operation with
+an Operation.error value with a google.rpc.Status.code of 1,
+corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is
+no longer interested in the operation result. It does not cancel the
+operation. If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` which can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting purpose.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding below allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`.
+
+Args:
+  name: string, The name of the operation collection. (required)
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+      },
+    ],
+  }</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/speech_v1beta1.operations.html b/docs/dyn/speech_v1beta1.operations.html
index b7eb168..f2a7915 100644
--- a/docs/dyn/speech_v1beta1.operations.html
+++ b/docs/dyn/speech_v1beta1.operations.html
@@ -75,7 +75,7 @@
 <h1><a href="speech_v1beta1.html">Google Cloud Speech API</a> . <a href="speech_v1beta1.operations.html">operations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#cancel">cancel(name, body, x__xgafv=None)</a></code></p>
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Starts asynchronous cancellation on a long-running operation.  The server</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
@@ -91,7 +91,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="cancel">cancel(name, body, x__xgafv=None)</code>
+    <code class="details" id="cancel">cancel(name, x__xgafv=None)</code>
   <pre>Starts asynchronous cancellation on a long-running operation.  The server
 makes a best effort to cancel the operation, but success is not
 guaranteed.  If the server doesn't support this method, it returns
@@ -105,12 +105,6 @@
 
 Args:
   name: string, The name of the operation resource to be cancelled. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request message for Operations.CancelOperation.
-  }
-
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -184,22 +178,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -263,6 +241,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -298,22 +292,6 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -377,6 +355,22 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/speech_v1beta1.speech.html b/docs/dyn/speech_v1beta1.speech.html
index 628ebbc..06ba9a0 100644
--- a/docs/dyn/speech_v1beta1.speech.html
+++ b/docs/dyn/speech_v1beta1.speech.html
@@ -94,9 +94,8 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # `AsyncRecognizeRequest` is the top-level message sent by the client for
-      # the `AsyncRecognize` method.
-    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # [Required] The audio data to be recognized.
+{ # The top-level message sent by the client for the `AsyncRecognize` method.
+    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # *Required* The audio data to be recognized.
         # Either `content` or `uri` must be supplied. Supplying both or neither
         # returns google.rpc.Code.INVALID_ARGUMENT. See
         # [audio limits](https://cloud.google.com/speech/limits#content).
@@ -110,17 +109,17 @@
           # google.rpc.Code.INVALID_ARGUMENT). For more information, see
           # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
     },
-    "config": { # The `RecognitionConfig` message provides information to the recognizer # [Required] The `config` message provides information to the recognizer
-        # that specifies how to process the request.
-        # that specifies how to process the request.
-      "languageCode": "A String", # [Optional] The language of the supplied audio as a BCP-47 language tag.
+    "config": { # Provides information to the recognizer that specifies how to process the # *Required* Provides information to the recognizer that specifies how to
+        # process the request.
+        # request.
+      "languageCode": "A String", # *Optional* The language of the supplied audio as a BCP-47 language tag.
           # Example: "en-GB"  https://www.rfc-editor.org/rfc/bcp/bcp47.txt
           # If omitted, defaults to "en-US". See
           # [Language Support](https://cloud.google.com/speech/docs/languages)
           # for a list of the currently supported language codes.
-      "speechContext": { # Provides "hints" to the speech recognizer to favor specific words and phrases # [Optional] A means to provide context to assist the speech recognition.
+      "speechContext": { # Provides "hints" to the speech recognizer to favor specific words and phrases # *Optional* A means to provide context to assist the speech recognition.
           # in the results.
-        "phrases": [ # [Optional] A list of strings containing words and phrases "hints" so that
+        "phrases": [ # *Optional* A list of strings containing words and phrases "hints" so that
             # the speech recognition is more likely to recognize them. This can be used
             # to improve the accuracy for specific words and phrases, for example, if
             # specific commands are typically spoken by the user. This can also be used
@@ -129,18 +128,18 @@
           "A String",
         ],
       },
-      "encoding": "A String", # [Required] Encoding of audio data sent in all `RecognitionAudio` messages.
-      "maxAlternatives": 42, # [Optional] Maximum number of recognition hypotheses to be returned.
+      "encoding": "A String", # *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
+      "maxAlternatives": 42, # *Optional* Maximum number of recognition hypotheses to be returned.
           # Specifically, the maximum number of `SpeechRecognitionAlternative` messages
           # within each `SpeechRecognitionResult`.
           # The server may return fewer than `max_alternatives`.
           # Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of
-          # `1`. If omitted, defaults to `1`.
-      "profanityFilter": True or False, # [Optional] If set to `true`, the server will attempt to filter out
+          # one. If omitted, will return a maximum of one.
+      "profanityFilter": True or False, # *Optional* If set to `true`, the server will attempt to filter out
           # profanities, replacing all but the initial character in each filtered word
           # with asterisks, e.g. "f***". If set to `false` or omitted, profanities
           # won't be filtered out.
-      "sampleRate": 42, # [Required] Sample rate in Hertz of the audio data sent in all
+      "sampleRate": 42, # *Required* Sample rate in Hertz of the audio data sent in all
           # `RecognitionAudio` messages. Valid values are: 8000-48000.
           # 16000 is optimal. For best results, set the sampling rate of the audio
           # source to 16000 Hz. If that's not possible, use the native sample rate of
@@ -164,22 +163,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -243,6 +226,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -255,9 +254,8 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # `SyncRecognizeRequest` is the top-level message sent by the client for
-      # the `SyncRecognize` method.
-    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # [Required] The audio data to be recognized.
+{ # The top-level message sent by the client for the `SyncRecognize` method.
+    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # *Required* The audio data to be recognized.
         # Either `content` or `uri` must be supplied. Supplying both or neither
         # returns google.rpc.Code.INVALID_ARGUMENT. See
         # [audio limits](https://cloud.google.com/speech/limits#content).
@@ -271,17 +269,17 @@
           # google.rpc.Code.INVALID_ARGUMENT). For more information, see
           # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
     },
-    "config": { # The `RecognitionConfig` message provides information to the recognizer # [Required] The `config` message provides information to the recognizer
-        # that specifies how to process the request.
-        # that specifies how to process the request.
-      "languageCode": "A String", # [Optional] The language of the supplied audio as a BCP-47 language tag.
+    "config": { # Provides information to the recognizer that specifies how to process the # *Required* Provides information to the recognizer that specifies how to
+        # process the request.
+        # request.
+      "languageCode": "A String", # *Optional* The language of the supplied audio as a BCP-47 language tag.
           # Example: "en-GB"  https://www.rfc-editor.org/rfc/bcp/bcp47.txt
           # If omitted, defaults to "en-US". See
           # [Language Support](https://cloud.google.com/speech/docs/languages)
           # for a list of the currently supported language codes.
-      "speechContext": { # Provides "hints" to the speech recognizer to favor specific words and phrases # [Optional] A means to provide context to assist the speech recognition.
+      "speechContext": { # Provides "hints" to the speech recognizer to favor specific words and phrases # *Optional* A means to provide context to assist the speech recognition.
           # in the results.
-        "phrases": [ # [Optional] A list of strings containing words and phrases "hints" so that
+        "phrases": [ # *Optional* A list of strings containing words and phrases "hints" so that
             # the speech recognition is more likely to recognize them. This can be used
             # to improve the accuracy for specific words and phrases, for example, if
             # specific commands are typically spoken by the user. This can also be used
@@ -290,18 +288,18 @@
           "A String",
         ],
       },
-      "encoding": "A String", # [Required] Encoding of audio data sent in all `RecognitionAudio` messages.
-      "maxAlternatives": 42, # [Optional] Maximum number of recognition hypotheses to be returned.
+      "encoding": "A String", # *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
+      "maxAlternatives": 42, # *Optional* Maximum number of recognition hypotheses to be returned.
           # Specifically, the maximum number of `SpeechRecognitionAlternative` messages
           # within each `SpeechRecognitionResult`.
           # The server may return fewer than `max_alternatives`.
           # Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of
-          # `1`. If omitted, defaults to `1`.
-      "profanityFilter": True or False, # [Optional] If set to `true`, the server will attempt to filter out
+          # one. If omitted, will return a maximum of one.
+      "profanityFilter": True or False, # *Optional* If set to `true`, the server will attempt to filter out
           # profanities, replacing all but the initial character in each filtered word
           # with asterisks, e.g. "f***". If set to `false` or omitted, profanities
           # won't be filtered out.
-      "sampleRate": 42, # [Required] Sample rate in Hertz of the audio data sent in all
+      "sampleRate": 42, # *Required* Sample rate in Hertz of the audio data sent in all
           # `RecognitionAudio` messages. Valid values are: 8000-48000.
           # 16000 is optimal. For best results, set the sampling rate of the audio
           # source to 16000 Hz. If that's not possible, use the native sample rate of
@@ -317,21 +315,23 @@
 Returns:
   An object of the form:
 
-    { # `SyncRecognizeResponse` is the only message returned to the client by
-      # `SyncRecognize`. It contains the result as zero or more sequential
-      # `SpeechRecognitionResult` messages.
-    "results": [ # [Output-only] Sequential list of transcription results corresponding to
+    { # The only message returned to the client by `SyncRecognize`. method. It
+      # contains the result as zero or more sequential `SpeechRecognitionResult`
+      # messages.
+    "results": [ # *Output-only* Sequential list of transcription results corresponding to
         # sequential portions of audio.
       { # A speech recognition result corresponding to a portion of the audio.
-        "alternatives": [ # [Output-only] May contain one or more recognition hypotheses (up to the
+        "alternatives": [ # *Output-only* May contain one or more recognition hypotheses (up to the
             # maximum specified in `max_alternatives`).
           { # Alternative hypotheses (a.k.a. n-best list).
-            "confidence": 3.14, # [Output-only] The confidence estimate between 0.0 and 1.0. A higher number
-                # means the system is more confident that the recognition is correct.
-                # This field is typically provided only for the top hypothesis, and only for
-                # `is_final=true` results.
-                # The default of 0.0 is a sentinel value indicating confidence was not set.
-            "transcript": "A String", # [Output-only] Transcript text representing the words that the user spoke.
+            "confidence": 3.14, # *Output-only* The confidence estimate between 0.0 and 1.0. A higher number
+                # indicates an estimated greater likelihood that the recognized words are
+                # correct. This field is typically provided only for the top hypothesis, and
+                # only for `is_final=true` results. Clients should not rely on the
+                # `confidence` field as it is not guaranteed to be accurate, or even set, in
+                # any of the results.
+                # The default of 0.0 is a sentinel value indicating `confidence` was not set.
+            "transcript": "A String", # *Output-only* Transcript text representing the words that the user spoke.
           },
         ],
       },
diff --git a/docs/dyn/sqladmin_v1beta4.flags.html b/docs/dyn/sqladmin_v1beta4.flags.html
index 2d1e233..d266b1a 100644
--- a/docs/dyn/sqladmin_v1beta4.flags.html
+++ b/docs/dyn/sqladmin_v1beta4.flags.html
@@ -75,14 +75,15 @@
 <h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.flags.html">flags</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list()</a></code></p>
+  <code><a href="#list">list(databaseVersion=None)</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>
+    <code class="details" id="list">list(databaseVersion=None)</code>
   <pre>List all available database flags for Google Cloud SQL instances.
 
 Args:
+  databaseVersion: string, Database version for flag retrieval. Flags are specific to the database version.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
index f4b3ef0..ddf5588 100644
--- a/docs/dyn/sqladmin_v1beta4.instances.html
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -96,7 +96,7 @@
   <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>
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=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>
@@ -543,6 +543,13 @@
           "day": 42, # day of week (1-7), starting on Monday.
           "hour": 42, # hour of day - 0 to 23.
         },
+        "availabilityType": "A String", # Reserved for future use.
+        "labels": [ # User defined labels.
+          { # User defined labels for Cloud SQL instances.
+            "value": "A String", # The value of the label.
+            "key": "A String", # The key of the label.
+          },
+        ],
         "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
           "A String",
         ],
@@ -571,6 +578,7 @@
         "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
         "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
         "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
+        "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. Applies only to Second Generation instances.
         "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
         "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
         "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.
@@ -777,6 +785,13 @@
         "day": 42, # day of week (1-7), starting on Monday.
         "hour": 42, # hour of day - 0 to 23.
       },
+      "availabilityType": "A String", # Reserved for future use.
+      "labels": [ # User defined labels.
+        { # User defined labels for Cloud SQL instances.
+          "value": "A String", # The value of the label.
+          "key": "A String", # The key of the label.
+        },
+      ],
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -805,6 +820,7 @@
       "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
       "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
       "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
+      "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. Applies only to Second Generation instances.
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "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.
@@ -902,13 +918,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=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.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  filter: string, A filter expression for filtering listed instances.
 
 Returns:
   An object of the form:
@@ -989,6 +1006,13 @@
               "day": 42, # day of week (1-7), starting on Monday.
               "hour": 42, # hour of day - 0 to 23.
             },
+            "availabilityType": "A String", # Reserved for future use.
+            "labels": [ # User defined labels.
+              { # User defined labels for Cloud SQL instances.
+                "value": "A String", # The value of the label.
+                "key": "A String", # The key of the label.
+              },
+            ],
             "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
               "A String",
             ],
@@ -1017,6 +1041,7 @@
             "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
             "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
             "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
+            "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. Applies only to Second Generation instances.
             "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
             "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
             "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.
@@ -1151,6 +1176,13 @@
         "day": 42, # day of week (1-7), starting on Monday.
         "hour": 42, # hour of day - 0 to 23.
       },
+      "availabilityType": "A String", # Reserved for future use.
+      "labels": [ # User defined labels.
+        { # User defined labels for Cloud SQL instances.
+          "value": "A String", # The value of the label.
+          "key": "A String", # The key of the label.
+        },
+      ],
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -1179,6 +1211,7 @@
       "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
       "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
       "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
+      "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. Applies only to Second Generation instances.
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "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.
@@ -1869,6 +1902,13 @@
         "day": 42, # day of week (1-7), starting on Monday.
         "hour": 42, # hour of day - 0 to 23.
       },
+      "availabilityType": "A String", # Reserved for future use.
+      "labels": [ # User defined labels.
+        { # User defined labels for Cloud SQL instances.
+          "value": "A String", # The value of the label.
+          "key": "A String", # The key of the label.
+        },
+      ],
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -1897,6 +1937,7 @@
       "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
       "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
       "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First Generation instances.
+      "storageAutoResizeLimit": "A String", # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. Applies only to Second Generation instances.
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "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.
diff --git a/docs/dyn/storage_v1.buckets.html b/docs/dyn/storage_v1.buckets.html
index ccb8de0..e4928c9 100644
--- a/docs/dyn/storage_v1.buckets.html
+++ b/docs/dyn/storage_v1.buckets.html
@@ -240,7 +240,7 @@
           },
         ],
       },
-      "id": "A String", # The ID of the bucket.
+      "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
     }</pre>
@@ -372,7 +372,7 @@
         },
       ],
     },
-    "id": "A String", # The ID of the bucket.
+    "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
   }
@@ -517,7 +517,7 @@
           },
         ],
       },
-      "id": "A String", # The ID of the bucket.
+      "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
     }</pre>
@@ -535,7 +535,7 @@
       noAcl - Omit owner, acl and defaultObjectAcl properties.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
   prefix: string, Filter results to buckets whose names begin with this prefix.
-  maxResults: integer, Maximum number of buckets to return.
+  maxResults: integer, Maximum number of buckets to return in a single response. The service will use this parameter or 1,000 items, whichever is smaller.
 
 Returns:
   An object of the form:
@@ -660,7 +660,7 @@
               },
             ],
           },
-          "id": "A String", # The ID of the bucket.
+          "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
           "projectNumber": "A String", # The project number of the project the bucket belongs to.
           "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
         },
@@ -809,7 +809,7 @@
         },
       ],
     },
-    "id": "A String", # The ID of the bucket.
+    "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
   }
@@ -956,7 +956,7 @@
           },
         ],
       },
-      "id": "A String", # The ID of the bucket.
+      "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
     }</pre>
@@ -1088,7 +1088,7 @@
         },
       ],
     },
-    "id": "A String", # The ID of the bucket.
+    "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
   }
@@ -1235,7 +1235,7 @@
           },
         ],
       },
-      "id": "A String", # The ID of the bucket.
+      "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
     }</pre>
diff --git a/docs/dyn/storage_v1.objects.html b/docs/dyn/storage_v1.objects.html
index 8502dec..2993d9f 100644
--- a/docs/dyn/storage_v1.objects.html
+++ b/docs/dyn/storage_v1.objects.html
@@ -175,7 +175,7 @@
             "selfLink": "A String", # The link to this access-control entry.
           },
         ],
-        "id": "A String", # The ID of the object.
+        "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
         "size": "A String", # Content-Length of the data in bytes.
         "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
         "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -195,7 +195,7 @@
         "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
         "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
         "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.
+        "name": "A String", # The name of the object. Required if not specified by URL parameter.
         "bucket": "A String", # The name of the bucket containing this object.
         "contentEncoding": "A String", # Content-Encoding of the object data.
         "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -267,7 +267,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -287,7 +287,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -348,7 +348,7 @@
             "selfLink": "A String", # The link to this access-control entry.
           },
         ],
-        "id": "A String", # The ID of the object.
+        "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
         "size": "A String", # Content-Length of the data in bytes.
         "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
         "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -368,7 +368,7 @@
         "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
         "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
         "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.
+        "name": "A String", # The name of the object. Required if not specified by URL parameter.
         "bucket": "A String", # The name of the bucket containing this object.
         "contentEncoding": "A String", # Content-Encoding of the object data.
         "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -455,7 +455,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -475,7 +475,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -548,7 +548,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -568,7 +568,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -629,7 +629,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -649,7 +649,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -760,7 +760,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -780,7 +780,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -861,7 +861,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -881,7 +881,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -953,7 +953,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -973,7 +973,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1031,7 +1031,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1051,7 +1051,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1098,7 +1098,7 @@
       noAcl - Omit the owner, acl property.
   versions: boolean, If true, lists all versions of an object as distinct results. The default is false. For more information, see Object Versioning.
   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. The default value of this parameter is 1,000 items.
+  maxResults: integer, Maximum number of items plus prefixes to return in a single page of responses. As duplicate prefixes are omitted, fewer total results may be returned than requested. The service will use this parameter or 1,000 items, whichever is smaller.
   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.
 
@@ -1148,7 +1148,7 @@
               "selfLink": "A String", # The link to this access-control entry.
             },
           ],
-          "id": "A String", # The ID of the object.
+          "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
           "size": "A String", # Content-Length of the data in bytes.
           "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
           "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1168,7 +1168,7 @@
           "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
           "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
           "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.
+          "name": "A String", # The name of the object. Required if not specified by URL parameter.
           "bucket": "A String", # The name of the bucket containing this object.
           "contentEncoding": "A String", # Content-Encoding of the object data.
           "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1247,7 +1247,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1267,7 +1267,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1336,7 +1336,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1356,7 +1356,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1417,7 +1417,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1437,7 +1437,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1515,7 +1515,7 @@
             "selfLink": "A String", # The link to this access-control entry.
           },
         ],
-        "id": "A String", # The ID of the object.
+        "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
         "size": "A String", # Content-Length of the data in bytes.
         "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
         "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1535,7 +1535,7 @@
         "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
         "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
         "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.
+        "name": "A String", # The name of the object. Required if not specified by URL parameter.
         "bucket": "A String", # The name of the bucket containing this object.
         "contentEncoding": "A String", # Content-Encoding of the object data.
         "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1598,7 +1598,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1618,7 +1618,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1687,7 +1687,7 @@
           "selfLink": "A String", # The link to this access-control entry.
         },
       ],
-      "id": "A String", # The ID of the object.
+      "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
       "size": "A String", # Content-Length of the data in bytes.
       "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
       "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1707,7 +1707,7 @@
       "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
       "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
       "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.
+      "name": "A String", # The name of the object. Required if not specified by URL parameter.
       "bucket": "A String", # The name of the bucket containing this object.
       "contentEncoding": "A String", # Content-Encoding of the object data.
       "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1766,7 +1766,7 @@
         "selfLink": "A String", # The link to this access-control entry.
       },
     ],
-    "id": "A String", # The ID of the object.
+    "id": "A String", # The ID of the object, including the bucket name, object name, and generation number.
     "size": "A String", # Content-Length of the data in bytes.
     "timeDeleted": "A String", # The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
     "timeCreated": "A String", # The creation time of the object in RFC 3339 format.
@@ -1786,7 +1786,7 @@
     "metageneration": "A String", # The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.
     "timeStorageClassUpdated": "A String", # The time at which the object's storage class was last changed. When the object is initially created, it will be set to timeCreated.
     "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.
+    "name": "A String", # The name of the object. Required if not specified by URL parameter.
     "bucket": "A String", # The name of the bucket containing this object.
     "contentEncoding": "A String", # Content-Encoding of the object data.
     "contentDisposition": "A String", # Content-Disposition of the object data.
@@ -1848,7 +1848,7 @@
       noAcl - Omit the owner, acl property.
   versions: boolean, If true, lists all versions of an object as distinct results. The default is false. For more information, see Object Versioning.
   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. The default value of this parameter is 1,000 items.
+  maxResults: integer, Maximum number of items plus prefixes to return in a single page of responses. As duplicate prefixes are omitted, fewer total results may be returned than requested. The service will use this parameter or 1,000 items, whichever is smaller.
   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.
 
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
index dfa3ecc..016f52a 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
@@ -129,6 +129,8 @@
         # 
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -156,6 +158,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -181,6 +191,8 @@
         # 
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -208,6 +220,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -278,6 +298,8 @@
           #
           # - In response: always set - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -305,6 +327,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
@@ -330,6 +360,8 @@
           #
           # - In response: set if the execution state is COMPLETE. - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -357,6 +389,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
@@ -443,6 +483,8 @@
           #
           # - In response: always set - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -470,6 +512,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
@@ -495,6 +545,8 @@
           #
           # - In response: set if the execution state is COMPLETE. - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -522,6 +574,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
@@ -622,6 +682,8 @@
               #
               # - In response: always set - In create/update request: never set
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -649,6 +711,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -674,6 +744,8 @@
               #
               # - In response: set if the execution state is COMPLETE. - In create/update request: never set
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -701,6 +773,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -796,6 +876,8 @@
         # 
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -823,6 +905,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -848,6 +938,8 @@
         # 
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -875,6 +967,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -945,6 +1045,8 @@
           #
           # - In response: always set - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -972,6 +1074,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
@@ -997,6 +1107,8 @@
           #
           # - In response: set if the execution state is COMPLETE. - In create/update request: never set
           #
+          # # Examples
+          #
           # Example 1: Compute Timestamp from POSIX `time()`.
           #
           # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1024,6 +1136,14 @@
           # Example 5: Compute Timestamp from current time in Python.
           #
           # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
         "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
         "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
       },
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
index fe6e05c..09621b3 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
@@ -75,6 +75,16 @@
 <h1><a href="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.projects.html">projects</a> . <a href="toolresults_v1beta3.projects.histories.html">histories</a> . <a href="toolresults_v1beta3.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.html">steps</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.html">perfMetricsSummary()</a></code>
+</p>
+<p class="firstline">Returns the perfMetricsSummary Resource.</p>
+
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries()</a></code>
+</p>
+<p class="firstline">Returns the perfSampleSeries Resource.</p>
+
+<p class="toc_element">
   <code><a href="toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html">thumbnails()</a></code>
 </p>
 <p class="firstline">Returns the thumbnails Resource.</p>
@@ -86,6 +96,9 @@
   <code><a href="#get">get(projectId=None, historyId=None, executionId=None, stepId=None)</a></code></p>
 <p class="firstline">Gets a Step.</p>
 <p class="toc_element">
+  <code><a href="#getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId)</a></code></p>
+<p class="firstline">Retrieves a PerfMetricsSummary.</p>
+<p class="toc_element">
   <code><a href="#list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists Steps for a given Execution.</p>
 <p class="toc_element">
@@ -140,6 +153,8 @@
           #
           # - In response: present if previously set. - In create/update request: optional
           #
+          # # Examples
+          #
           # Example 1: Compute Duration from two Timestamps in pseudo code.
           #
           # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -159,6 +174,10 @@
           # Example 3: Compute Duration from datetime.timedelta in Python.
           #
           # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
         "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
         "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
       },
@@ -264,6 +283,8 @@
               #
               # - In response: present if set by create/update request - In create/update request: optional
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -291,6 +312,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -379,6 +408,8 @@
               #
               # - In response: present if set by create/update request - In create/update request: optional
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -406,6 +437,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -431,6 +470,8 @@
       # 
       # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
       #
+      # # Examples
+      #
       # Example 1: Compute Duration from two Timestamps in pseudo code.
       #
       # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -450,6 +491,10 @@
       # Example 3: Compute Duration from datetime.timedelta in Python.
       #
       # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
     "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
     "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
   },
@@ -472,6 +517,8 @@
       # 
       # - In response: always set - In create/update request: never set
       #
+      # # Examples
+      #
       # Example 1: Compute Timestamp from POSIX `time()`.
       #
       # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -499,6 +546,14 @@
       # Example 5: Compute Timestamp from current time in Python.
       #
       # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
     "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
     "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
   },
@@ -520,6 +575,8 @@
       # 
       # - In response: set if the execution state is COMPLETE. - In create/update request: never set
       #
+      # # Examples
+      #
       # Example 1: Compute Timestamp from POSIX `time()`.
       #
       # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -547,6 +604,14 @@
       # Example 5: Compute Timestamp from current time in Python.
       #
       # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
     "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
     "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
   },
@@ -624,6 +689,8 @@
       # 
       # - In response: present if previously set. - In create request: optional - In update request: optional
       #
+      # # Examples
+      #
       # Example 1: Compute Duration from two Timestamps in pseudo code.
       #
       # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -643,6 +710,10 @@
       # Example 3: Compute Duration from datetime.timedelta in Python.
       #
       # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
     "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
     "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
   },
@@ -677,6 +748,8 @@
             #
             # - In response: present if previously set. - In create/update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -696,6 +769,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -801,6 +878,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -828,6 +907,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -916,6 +1003,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -943,6 +1032,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -968,6 +1065,8 @@
         #
         # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -987,6 +1086,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -1009,6 +1112,8 @@
         #
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1036,6 +1141,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -1057,6 +1170,8 @@
         #
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1084,6 +1199,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -1161,6 +1284,8 @@
         #
         # - In response: present if previously set. - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -1180,6 +1305,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -1233,6 +1362,8 @@
             #
             # - In response: present if previously set. - In create/update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -1252,6 +1383,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -1357,6 +1492,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1384,6 +1521,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -1472,6 +1617,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1499,6 +1646,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -1524,6 +1679,8 @@
         #
         # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -1543,6 +1700,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -1565,6 +1726,8 @@
         #
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1592,6 +1755,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -1613,6 +1784,8 @@
         #
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1640,6 +1813,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -1717,6 +1898,8 @@
         #
         # - In response: present if previously set. - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -1736,6 +1919,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -1746,6 +1933,43 @@
 </div>
 
 <div class="method">
+    <code class="details" id="getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId)</code>
+  <pre>Retrieves a PerfMetricsSummary.
+
+May return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # A summary of perf metrics collected and performance environment info
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+      "cpuInfo": { # CPU related environment info
+        "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+        "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+        "numberOfCores": 42, # the number of CPU cores
+      },
+      "memoryInfo": { # Memory related environment info
+        "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+        "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+      },
+    },
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "perfMetrics": [ # Set of resource collected
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</code>
   <pre>Lists Steps for a given Execution.
 
@@ -1801,6 +2025,8 @@
                 #
                 # - In response: present if previously set. - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Duration from two Timestamps in pseudo code.
                 #
                 # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -1820,6 +2046,10 @@
                 # Example 3: Compute Duration from datetime.timedelta in Python.
                 #
                 # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
               "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
               "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
             },
@@ -1925,6 +2155,8 @@
                     #
                     # - In response: present if set by create/update request - In create/update request: optional
                     #
+                    # # Examples
+                    #
                     # Example 1: Compute Timestamp from POSIX `time()`.
                     #
                     # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -1952,6 +2184,14 @@
                     # Example 5: Compute Timestamp from current time in Python.
                     #
                     # timestamp = Timestamp() timestamp.GetCurrentTime()
+                    #
+                    # # JSON Mapping
+                    #
+                    # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                    #
+                    # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                    #
+                    # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
                   "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
                   "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
                 },
@@ -2040,6 +2280,8 @@
                     #
                     # - In response: present if set by create/update request - In create/update request: optional
                     #
+                    # # Examples
+                    #
                     # Example 1: Compute Timestamp from POSIX `time()`.
                     #
                     # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2067,6 +2309,14 @@
                     # Example 5: Compute Timestamp from current time in Python.
                     #
                     # timestamp = Timestamp() timestamp.GetCurrentTime()
+                    #
+                    # # JSON Mapping
+                    #
+                    # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                    #
+                    # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                    #
+                    # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
                   "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
                   "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
                 },
@@ -2092,6 +2342,8 @@
             #
             # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2111,6 +2363,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -2133,6 +2389,8 @@
             #
             # - In response: always set - In create/update request: never set
             #
+            # # Examples
+            #
             # Example 1: Compute Timestamp from POSIX `time()`.
             #
             # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2160,6 +2418,14 @@
             # Example 5: Compute Timestamp from current time in Python.
             #
             # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
           "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
           "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
         },
@@ -2181,6 +2447,8 @@
             #
             # - In response: set if the execution state is COMPLETE. - In create/update request: never set
             #
+            # # Examples
+            #
             # Example 1: Compute Timestamp from POSIX `time()`.
             #
             # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2208,6 +2476,14 @@
             # Example 5: Compute Timestamp from current time in Python.
             #
             # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
           "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
           "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
         },
@@ -2285,6 +2561,8 @@
             #
             # - In response: present if previously set. - In create request: optional - In update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2304,6 +2582,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -2372,6 +2654,8 @@
           #
           # - In response: present if previously set. - In create/update request: optional
           #
+          # # Examples
+          #
           # Example 1: Compute Duration from two Timestamps in pseudo code.
           #
           # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2391,6 +2675,10 @@
           # Example 3: Compute Duration from datetime.timedelta in Python.
           #
           # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
         "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
         "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
       },
@@ -2496,6 +2784,8 @@
               #
               # - In response: present if set by create/update request - In create/update request: optional
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2523,6 +2813,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -2611,6 +2909,8 @@
               #
               # - In response: present if set by create/update request - In create/update request: optional
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2638,6 +2938,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
@@ -2663,6 +2971,8 @@
       # 
       # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
       #
+      # # Examples
+      #
       # Example 1: Compute Duration from two Timestamps in pseudo code.
       #
       # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2682,6 +2992,10 @@
       # Example 3: Compute Duration from datetime.timedelta in Python.
       #
       # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
     "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
     "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
   },
@@ -2704,6 +3018,8 @@
       # 
       # - In response: always set - In create/update request: never set
       #
+      # # Examples
+      #
       # Example 1: Compute Timestamp from POSIX `time()`.
       #
       # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2731,6 +3047,14 @@
       # Example 5: Compute Timestamp from current time in Python.
       #
       # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
     "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
     "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
   },
@@ -2752,6 +3076,8 @@
       # 
       # - In response: set if the execution state is COMPLETE. - In create/update request: never set
       #
+      # # Examples
+      #
       # Example 1: Compute Timestamp from POSIX `time()`.
       #
       # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -2779,6 +3105,14 @@
       # Example 5: Compute Timestamp from current time in Python.
       #
       # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
     "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
     "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
   },
@@ -2856,6 +3190,8 @@
       # 
       # - In response: present if previously set. - In create request: optional - In update request: optional
       #
+      # # Examples
+      #
       # Example 1: Compute Duration from two Timestamps in pseudo code.
       #
       # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2875,6 +3211,10 @@
       # Example 3: Compute Duration from datetime.timedelta in Python.
       #
       # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
     "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
     "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
   },
@@ -2909,6 +3249,8 @@
             #
             # - In response: present if previously set. - In create/update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -2928,6 +3270,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -3033,6 +3379,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3060,6 +3408,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -3148,6 +3504,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3175,6 +3533,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -3200,6 +3566,8 @@
         #
         # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -3219,6 +3587,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -3241,6 +3613,8 @@
         #
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3268,6 +3642,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -3289,6 +3671,8 @@
         #
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3316,6 +3700,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -3393,6 +3785,8 @@
         #
         # - In response: present if previously set. - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -3412,6 +3806,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -3486,6 +3884,8 @@
             #
             # - In response: present if previously set. - In create/update request: optional
             #
+            # # Examples
+            #
             # Example 1: Compute Duration from two Timestamps in pseudo code.
             #
             # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -3505,6 +3905,10 @@
             # Example 3: Compute Duration from datetime.timedelta in Python.
             #
             # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
           "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
           "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
         },
@@ -3610,6 +4014,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3637,6 +4043,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -3725,6 +4139,8 @@
                 #
                 # - In response: present if set by create/update request - In create/update request: optional
                 #
+                # # Examples
+                #
                 # Example 1: Compute Timestamp from POSIX `time()`.
                 #
                 # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3752,6 +4168,14 @@
                 # Example 5: Compute Timestamp from current time in Python.
                 #
                 # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
               "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
               "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
             },
@@ -3777,6 +4201,8 @@
         #
         # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -3796,6 +4222,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
@@ -3818,6 +4248,8 @@
         #
         # - In response: always set - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3845,6 +4277,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -3866,6 +4306,8 @@
         #
         # - In response: set if the execution state is COMPLETE. - In create/update request: never set
         #
+        # # Examples
+        #
         # Example 1: Compute Timestamp from POSIX `time()`.
         #
         # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -3893,6 +4335,14 @@
         # Example 5: Compute Timestamp from current time in Python.
         #
         # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
       "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
       "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
     },
@@ -3970,6 +4420,8 @@
         #
         # - In response: present if previously set. - In create request: optional - In update request: optional
         #
+        # # Examples
+        #
         # Example 1: Compute Duration from two Timestamps in pseudo code.
         #
         # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
@@ -3989,6 +4441,10 @@
         # Example 3: Compute Duration from datetime.timedelta in Python.
         #
         # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
       "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
       "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
     },
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.html
new file mode 100644
index 0000000..8cae2d3
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.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="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.projects.html">projects</a> . <a href="toolresults_v1beta3.projects.histories.html">histories</a> . <a href="toolresults_v1beta3.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.perfMetricsSummary.html">perfMetricsSummary</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(projectId, historyId, executionId, stepId, body)</a></code></p>
+<p class="firstline">Creates a PerfMetricsSummary resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, historyId, executionId, stepId, body)</code>
+  <pre>Creates a PerfMetricsSummary resource.
+
+May return any of the following error code(s): - ALREADY_EXISTS - A PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A summary of perf metrics collected and performance environment info
+  "stepId": "A String", # A tool results step ID.
+  "projectId": "A String", # The cloud project
+  "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+    "cpuInfo": { # CPU related environment info
+      "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+      "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+      "numberOfCores": 42, # the number of CPU cores
+    },
+    "memoryInfo": { # Memory related environment info
+      "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+      "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+    },
+  },
+  "historyId": "A String", # A tool results history ID.
+  "executionId": "A String", # A tool results execution ID.
+  "perfMetrics": [ # Set of resource collected
+    "A String",
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A summary of perf metrics collected and performance environment info
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+      "cpuInfo": { # CPU related environment info
+        "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+        "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+        "numberOfCores": 42, # the number of CPU cores
+      },
+      "memoryInfo": { # Memory related environment info
+        "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+        "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+      },
+    },
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "perfMetrics": [ # Set of resource collected
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html
new file mode 100644
index 0000000..87556b1
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.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="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.projects.html">projects</a> . <a href="toolresults_v1beta3.projects.histories.html">histories</a> . <a href="toolresults_v1beta3.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.samples.html">samples()</a></code>
+</p>
+<p class="firstline">Returns the samples Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId, historyId, executionId, stepId, body)</a></code></p>
+<p class="firstline">Creates a PerfSampleSeries.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, historyId, executionId, stepId, sampleSeriesId)</a></code></p>
+<p class="firstline">Gets a PerfSampleSeries.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, filter=None)</a></code></p>
+<p class="firstline">Lists PerfSampleSeries for a given Step.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, historyId, executionId, stepId, body)</code>
+  <pre>Creates a PerfSampleSeries.
+
+May return any of the following error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Resource representing a collection of performance samples (or data points)
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "sampleSeriesId": "A String", # A sample series id
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+      "sampleSeriesLabel": "A String",
+      "perfUnit": "A String",
+      "perfMetricType": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Resource representing a collection of performance samples (or data points)
+      "stepId": "A String", # A tool results step ID.
+      "projectId": "A String", # The cloud project
+      "sampleSeriesId": "A String", # A sample series id
+      "historyId": "A String", # A tool results history ID.
+      "executionId": "A String", # A tool results execution ID.
+      "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+        "sampleSeriesLabel": "A String",
+        "perfUnit": "A String",
+        "perfMetricType": "A String",
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, historyId, executionId, stepId, sampleSeriesId)</code>
+  <pre>Gets a PerfSampleSeries.
+
+May return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+
+Returns:
+  An object of the form:
+
+    { # Resource representing a collection of performance samples (or data points)
+      "stepId": "A String", # A tool results step ID.
+      "projectId": "A String", # The cloud project
+      "sampleSeriesId": "A String", # A sample series id
+      "historyId": "A String", # A tool results history ID.
+      "executionId": "A String", # A tool results execution ID.
+      "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+        "sampleSeriesLabel": "A String",
+        "perfUnit": "A String",
+        "perfMetricType": "A String",
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, filter=None)</code>
+  <pre>Lists PerfSampleSeries for a given Step.
+
+The request provides an optional filter which specifies one or more PerfMetricsType to include in the result; if none returns all. The resulting PerfSampleSeries are sorted by ids.
+
+May return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  filter: string, Specify one or more PerfMetricType values such as CPU to filter the result (repeated)
+    Allowed values
+      cpu - 
+      memory - 
+      network - 
+      perfMetricTypeUnspecified - 
+
+Returns:
+  An object of the form:
+
+    {
+    "perfSampleSeries": [ # The resulting PerfSampleSeries sorted by id
+      { # Resource representing a collection of performance samples (or data points)
+          "stepId": "A String", # A tool results step ID.
+          "projectId": "A String", # The cloud project
+          "sampleSeriesId": "A String", # A sample series id
+          "historyId": "A String", # A tool results history ID.
+          "executionId": "A String", # A tool results execution ID.
+          "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+            "sampleSeriesLabel": "A String",
+            "perfUnit": "A String",
+            "perfMetricType": "A String",
+          },
+        },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.samples.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.samples.html
new file mode 100644
index 0000000..82048f1
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.samples.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="toolresults_v1beta3.html">Cloud Tool Results API</a> . <a href="toolresults_v1beta3.projects.html">projects</a> . <a href="toolresults_v1beta3.projects.histories.html">histories</a> . <a href="toolresults_v1beta3.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries</a> . <a href="toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.samples.html">samples</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchCreate">batchCreate(projectId, historyId, executionId, stepId, sampleSeriesId, body)</a></code></p>
+<p class="firstline">Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database).</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, sampleSeriesId, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit</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="batchCreate">batchCreate(projectId, historyId, executionId, stepId, sampleSeriesId, body)</code>
+  <pre>Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database).
+
+May return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request must provide up to a maximum of 5000 samples to be created; a larger sample size will cause an INVALID_ARGUMENT error
+    "perfSamples": [ # The set of PerfSamples to create should not include existing timestamps
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "perfSamples": [
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, sampleSeriesId, pageSize=None, pageToken=None)</code>
+  <pre>Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit
+
+May return any of the following canonical error codes: - OUT_OF_RANGE - The specified request page_token is out of valid range - NOT_FOUND - The containing PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+  pageSize: integer, The default page size is 500 samples, and the maximum size is 5000. If the page_size is greater than 5000, the effective page size will be 5000
+  pageToken: string, Optional, the next_page_token returned in the previous response
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Optional, returned if result size exceeds the page size specified in the request (or the default page size, 500, if unspecified). It indicates the last sample timestamp to be used as page_token in subsequent request
+    "perfSamples": [
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }</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/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
index 9076835..a233859 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
@@ -170,6 +170,8 @@
               #
               # - In response: present if set by create/update request - In create/update request: optional
               #
+              # # Examples
+              #
               # Example 1: Compute Timestamp from POSIX `time()`.
               #
               # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
@@ -197,6 +199,14 @@
               # Example 5: Compute Timestamp from current time in Python.
               #
               # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
             "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
             "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
           },
diff --git a/docs/dyn/toolresults_v1beta3firstparty.html b/docs/dyn/toolresults_v1beta3firstparty.html
new file mode 100644
index 0000000..d0b2487
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.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="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html
new file mode 100644
index 0000000..0459c0a
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html
@@ -0,0 +1,1197 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps()</a></code>
+</p>
+<p class="firstline">Returns the steps Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId=None, historyId=None, body, requestId=None)</a></code></p>
+<p class="firstline">Creates an Execution.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId=None, historyId=None, executionId=None)</a></code></p>
+<p class="firstline">Gets an Execution.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId=None, historyId=None, pageToken=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists Histories 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(projectId, historyId, executionId, body, requestId=None)</a></code></p>
+<p class="firstline">Updates an existing Execution with the supplied partial entity.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId=None, historyId=None, body, requestId=None)</code>
+  <pre>Creates an Execution.
+
+The returned Execution will have the id set.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+      # 
+      # The maximum size of an execution message is 1 MiB.
+      # 
+      # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+        # 
+        # - In response: present if set by create - In create: optional - In update: never set
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+        # 
+        # This value will be set automatically when CreateExecution is called.
+        # 
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "state": "A String", # The initial state is IN_PROGRESS.
+        # 
+        # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+        # 
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        # 
+        # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+        # 
+        # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+        # 
+        # - In response always set - In create/update request: optional
+    "executionId": "A String", # A unique identifier within a History for this Execution.
+        # 
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        # 
+        # - In response always set - In create/update request: never set
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+        # 
+        # This value will be set automatically when state transitions to COMPLETE.
+        # 
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+        # 
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+  }
+
+  requestId: string, A unique request ID for server to detect duplicated requests. For example, a UUID.
+
+Optional, but strongly recommended.
+
+Returns:
+  An object of the form:
+
+    { # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+        #
+        # The maximum size of an execution message is 1 MiB.
+        #
+        # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+          #
+          # - In response: present if set by create - In create: optional - In update: never set
+      "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+          #
+          # This value will be set automatically when CreateExecution is called.
+          #
+          # - In response: always set - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "state": "A String", # The initial state is IN_PROGRESS.
+          #
+          # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+          #
+          # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+          #
+          # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+          #
+          # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+          #
+          # - In response always set - In create/update request: optional
+      "executionId": "A String", # A unique identifier within a History for this Execution.
+          #
+          # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+          #
+          # - In response always set - In create/update request: never set
+      "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+          #
+          # This value will be set automatically when state transitions to COMPLETE.
+          #
+          # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+            #
+            # Optional
+          "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+              #
+              # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+        },
+        "skippedDetail": { # More information about a SKIPPED outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+            #
+            # Optional
+          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+        },
+        "successDetail": { # More information about a SUCCESS outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        },
+        "failureDetail": { # More information about a FAILURE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+          "crashed": True or False, # If the failure was severe because the system under test crashed.
+          "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+          "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+        },
+        "summary": "A String", # The simplest way to interpret a result.
+            #
+            # Required
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None)</code>
+  <pre>Gets an Execution.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Execution does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, An Execution id.
+
+Required. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+        #
+        # The maximum size of an execution message is 1 MiB.
+        #
+        # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+          #
+          # - In response: present if set by create - In create: optional - In update: never set
+      "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+          #
+          # This value will be set automatically when CreateExecution is called.
+          #
+          # - In response: always set - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "state": "A String", # The initial state is IN_PROGRESS.
+          #
+          # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+          #
+          # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+          #
+          # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+          #
+          # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+          #
+          # - In response always set - In create/update request: optional
+      "executionId": "A String", # A unique identifier within a History for this Execution.
+          #
+          # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+          #
+          # - In response always set - In create/update request: never set
+      "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+          #
+          # This value will be set automatically when state transitions to COMPLETE.
+          #
+          # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+            #
+            # Optional
+          "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+              #
+              # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+        },
+        "skippedDetail": { # More information about a SKIPPED outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+            #
+            # Optional
+          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+        },
+        "successDetail": { # More information about a SUCCESS outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        },
+        "failureDetail": { # More information about a FAILURE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+          "crashed": True or False, # If the failure was severe because the system under test crashed.
+          "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+          "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+        },
+        "summary": "A String", # The simplest way to interpret a result.
+            #
+            # Required
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId=None, historyId=None, pageToken=None, pageSize=None)</code>
+  <pre>Lists Histories for a given Project.
+
+The executions are sorted by creation_time in descending order. The execution_id key will be used to order the executions with the same creation_time.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing History does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  pageToken: string, A continuation token to resume the query at the next item.
+
+Optional.
+  pageSize: integer, The maximum number of Executions to fetch.
+
+Default value: 25. The server will use this default if the field is not set or has a value of 0.
+
+Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
+        #
+        # Will only be set if there are more Executions to fetch.
+    "executions": [ # Executions.
+        #
+        # Always set.
+      { # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+            #
+            # The maximum size of an execution message is 1 MiB.
+            #
+            # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+          "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+              #
+              # - In response: present if set by create - In create: optional - In update: never set
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+              #
+              # This value will be set automatically when CreateExecution is called.
+              #
+              # - In response: always set - In create/update request: never set
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+          "state": "A String", # The initial state is IN_PROGRESS.
+              #
+              # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+              #
+              # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+              #
+              # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+              #
+              # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+              #
+              # - In response always set - In create/update request: optional
+          "executionId": "A String", # A unique identifier within a History for this Execution.
+              #
+              # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+              #
+              # - In response always set - In create/update request: never set
+          "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+              #
+              # This value will be set automatically when state transitions to COMPLETE.
+              #
+              # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+          "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+            "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+                #
+                # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+                #
+                # Optional
+              "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+                  #
+                  # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+              "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+            },
+            "skippedDetail": { # More information about a SKIPPED outcome.
+                #
+                # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+                #
+                # Optional
+              "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+              "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+              "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+            },
+            "successDetail": { # More information about a SUCCESS outcome.
+                #
+                # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+                #
+                # Optional
+              "otherNativeCrash": True or False, # If a native process other than the app crashed.
+            },
+            "failureDetail": { # More information about a FAILURE outcome.
+                #
+                # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+                #
+                # Optional
+              "otherNativeCrash": True or False, # If a native process other than the app crashed.
+              "crashed": True or False, # If the failure was severe because the system under test crashed.
+              "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+              "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+              "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+            },
+            "summary": "A String", # The simplest way to interpret a result.
+                #
+                # Required
+          },
+        },
+    ],
+  }</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, historyId, executionId, body, requestId=None)</code>
+  <pre>Updates an existing Execution with the supplied partial entity.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal - NOT_FOUND - if the containing History does not exist
+
+Args:
+  projectId: string, A Project id. Required. (required)
+  historyId: string, Required. (required)
+  executionId: string, Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+      # 
+      # The maximum size of an execution message is 1 MiB.
+      # 
+      # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+    "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+        # 
+        # - In response: present if set by create - In create: optional - In update: never set
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+        # 
+        # This value will be set automatically when CreateExecution is called.
+        # 
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "state": "A String", # The initial state is IN_PROGRESS.
+        # 
+        # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+        # 
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        # 
+        # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+        # 
+        # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+        # 
+        # - In response always set - In create/update request: optional
+    "executionId": "A String", # A unique identifier within a History for this Execution.
+        # 
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        # 
+        # - In response always set - In create/update request: never set
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+        # 
+        # This value will be set automatically when state transitions to COMPLETE.
+        # 
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+        # 
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+  }
+
+  requestId: string, A unique request ID for server to detect duplicated requests. For example, a UUID.
+
+Optional, but strongly recommended.
+
+Returns:
+  An object of the form:
+
+    { # An Execution represents a collection of Steps. For instance, it could represent: - a mobile test executed across a range of device configurations - a jenkins job with a build step followed by a test step
+        #
+        # The maximum size of an execution message is 1 MiB.
+        #
+        # An Execution can be updated until its state is set to COMPLETE at which point it becomes immutable.
+      "testExecutionMatrixId": "A String", # TestExecution Matrix ID that the Test Service uses.
+          #
+          # - In response: present if set by create - In create: optional - In update: never set
+      "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution was created.
+          #
+          # This value will be set automatically when CreateExecution is called.
+          #
+          # - In response: always set - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "state": "A String", # The initial state is IN_PROGRESS.
+          #
+          # The only legal state transitions is from IN_PROGRESS to COMPLETE.
+          #
+          # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+          #
+          # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be returned if the state is set to COMPLETE multiple times.
+          #
+          # If the state is set to COMPLETE, all the in-progress steps within the execution will be set as COMPLETE. If the outcome of the step is not set, the outcome will be set to INCONCLUSIVE.
+          #
+          # - In response always set - In create/update request: optional
+      "executionId": "A String", # A unique identifier within a History for this Execution.
+          #
+          # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+          #
+          # - In response always set - In create/update request: never set
+      "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the Execution status transitioned to COMPLETE.
+          #
+          # This value will be set automatically when state transitions to COMPLETE.
+          #
+          # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+          #
+          # # Examples
+          #
+          # Example 1: Compute Timestamp from POSIX `time()`.
+          #
+          # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+          #
+          # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+          #
+          # struct timeval tv; gettimeofday(&tv, NULL);
+          #
+          # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+          #
+          # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+          #
+          # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+          #
+          # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+          #
+          # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+          #
+          # long millis = System.currentTimeMillis();
+          #
+          # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+          #
+          #
+          #
+          # Example 5: Compute Timestamp from current time in Python.
+          #
+          # timestamp = Timestamp() timestamp.GetCurrentTime()
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+          #
+          # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+          #
+          # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+        "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+        "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+      },
+      "outcome": { # Interprets a result so that humans and machines can act on it. # Classify the result, for example into SUCCESS or FAILURE
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+            #
+            # Optional
+          "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+              #
+              # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+          "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+        },
+        "skippedDetail": { # More information about a SKIPPED outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+            #
+            # Optional
+          "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+          "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+          "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+        },
+        "successDetail": { # More information about a SUCCESS outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        },
+        "failureDetail": { # More information about a FAILURE outcome.
+            #
+            # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+            #
+            # Optional
+          "otherNativeCrash": True or False, # If a native process other than the app crashed.
+          "crashed": True or False, # If the failure was severe because the system under test crashed.
+          "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+          "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+          "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+        },
+        "summary": "A String", # The simplest way to interpret a result.
+            #
+            # Required
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html
new file mode 100644
index 0000000..5773820
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html
@@ -0,0 +1,4457 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfMetricsSummary.html">perfMetricsSummary()</a></code>
+</p>
+<p class="firstline">Returns the perfMetricsSummary Resource.</p>
+
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries()</a></code>
+</p>
+<p class="firstline">Returns the perfSampleSeries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html">thumbnails()</a></code>
+</p>
+<p class="firstline">Returns the thumbnails Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId=None, historyId=None, executionId=None, body, requestId=None)</a></code></p>
+<p class="firstline">Creates a Step.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId=None, historyId=None, executionId=None, stepId=None)</a></code></p>
+<p class="firstline">Gets a Step.</p>
+<p class="toc_element">
+  <code><a href="#getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId)</a></code></p>
+<p class="firstline">Retrieves a PerfMetricsSummary.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists Steps for a given Execution.</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=None, historyId=None, executionId=None, stepId=None, body, requestId=None)</a></code></p>
+<p class="firstline">Updates an existing Step with the supplied partial entity.</p>
+<p class="toc_element">
+  <code><a href="#publishXunitXmlFiles">publishXunitXmlFiles(projectId=None, historyId=None, executionId=None, stepId=None, body)</a></code></p>
+<p class="firstline">Publish xml files to an existing Step.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId=None, historyId=None, executionId=None, body, requestId=None)</code>
+  <pre>Creates a Step.
+
+The returned Step will have the id set.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, A Execution id.
+
+Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+    # 
+    # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+    # 
+    # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+    # 
+    # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+  "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+      #
+      # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+      #
+      # Users can also add test results manually by using the test_result field.
+    "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+        #
+        # - In response: present if set by create or update - In create/update request: optional
+      "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+          #
+          # - In response: present if previously set. - In create/update request: optional
+          #
+          # # Examples
+          #
+          # Example 1: Compute Duration from two Timestamps in pseudo code.
+          #
+          # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+          #
+          # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+          #
+          # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+          #
+          # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+          #
+          # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+          #
+          # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+          #
+          # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+          #
+          # Example 3: Compute Duration from datetime.timedelta in Python.
+          #
+          # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+        "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+        "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+      },
+    },
+    "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+        #
+        # The maximum allowed number of test suite overviews per step is 1000.
+        #
+        # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+      { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+          #
+          # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+        "name": "A String", # The name of the test suite.
+            #
+            # - In create/response: always set - In update request: never
+        "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+        "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+        "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+            #
+            # Note: Multiple test suites can share the same xml_source
+            #
+            # Returns INVALID_ARGUMENT if the uri format is not supported.
+            #
+            # - In create/response: optional - In update request: never
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+            #
+            # - In create/response: always set - In update request: never
+        "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+      },
+    ],
+    "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+        #
+        # The exit code of this tool will be used to determine if the test passed.
+        #
+        # - In response: always set - In create/update request: optional
+      "toolLogs": [ # References to any plain text logs output the tool execution.
+          #
+          # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+          #
+          # The maximum allowed number of tool logs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a file.
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+      ],
+      "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+        "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+            #
+            # - In response: always set - In create/update request: always set
+      },
+      "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+          #
+          # The maximum allowed number of tool outputs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a ToolExecution output file.
+          "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+            "className": "A String", # The name of the class.
+            "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+            "name": "A String", # The name of the test case.
+                #
+                # Required.
+          },
+          "output": { # A reference to a file. # A FileReference to an output file.
+              #
+              # - In response: always set - In create/update request: always set
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+        },
+      ],
+      "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+          #
+          # - In response: present if set by create request - In create request: optional - In update request: never set
+        "A String",
+      ],
+    },
+    "testIssues": [ # Issues observed during the test execution.
+        #
+        # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+        #
+        # - In response: present if set by create or update - In create/update request: optional
+      { # An abnormal event observed during the test execution.
+        "stackTrace": { # A stacktrace. # Optional.
+          "exception": "A String", # The stack trace message.
+              #
+              # Required
+        },
+        "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+            #
+            # Required.
+      },
+    ],
+  },
+  "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+    "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "toolLogs": [ # References to any plain text logs output the tool execution.
+          #
+          # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+          #
+          # The maximum allowed number of tool logs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a file.
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+      ],
+      "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+        "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+            #
+            # - In response: always set - In create/update request: always set
+      },
+      "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+          #
+          # The maximum allowed number of tool outputs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a ToolExecution output file.
+          "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+            "className": "A String", # The name of the class.
+            "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+            "name": "A String", # The name of the test case.
+                #
+                # Required.
+          },
+          "output": { # A reference to a file. # A FileReference to an output file.
+              #
+              # - In response: always set - In create/update request: always set
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+        },
+      ],
+      "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+          #
+          # - In response: present if set by create request - In create request: optional - In update request: never set
+        "A String",
+      ],
+    },
+  },
+  "stepId": "A String", # A unique identifier within a Execution for this Step.
+      # 
+      # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+      # 
+      # - In response: always set - In create/update request: never set
+  "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+      # 
+      # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+      # 
+      # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+      # 
+      # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+      #
+      # # Examples
+      #
+      # Example 1: Compute Duration from two Timestamps in pseudo code.
+      #
+      # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+      #
+      # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+      #
+      # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+      #
+      # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+      #
+      # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+      #
+      # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+      #
+      # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+      #
+      # Example 3: Compute Duration from datetime.timedelta in Python.
+      #
+      # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+  },
+  "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+      # 
+      # - In response: present if set by create/update request - In create/update request: optional
+  "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+      # 
+      # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+      # 
+      # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+      # 
+      # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+    {
+      "value": "A String",
+      "key": "A String",
+    },
+  ],
+  "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+      # 
+      # - In response: always set - In create/update request: never set
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+      # 
+      # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+      # 
+      # - In response: always set - In create request: always set - In update request: never set
+  "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+      # 
+      # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+      # 
+      # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+      # 
+      # - In response: always set - In create/update request: optional
+  "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+      # 
+      # This value will be set automatically when state transitions to COMPLETE.
+      # 
+      # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+      # 
+      # The keys must exactly match the dimension_definition of the execution.
+      # 
+      # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+      # 
+      # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+      # 
+      # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+      # 
+      # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+      # 
+      # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+      # 
+      # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+      # 
+      # - In response: present if set by create - In create request: optional - In update request: never set
+    {
+      "value": "A String",
+      "key": "A String",
+    },
+  ],
+  "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+      # 
+      # - In response: present if set by create/update request - In create/update request: optional
+    "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+        #
+        # Optional
+      "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+          #
+          # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+      "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+    },
+    "skippedDetail": { # More information about a SKIPPED outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+        #
+        # Optional
+      "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+      "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+      "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+    },
+    "successDetail": { # More information about a SUCCESS outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+        #
+        # Optional
+      "otherNativeCrash": True or False, # If a native process other than the app crashed.
+    },
+    "failureDetail": { # More information about a FAILURE outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+        #
+        # Optional
+      "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      "crashed": True or False, # If the failure was severe because the system under test crashed.
+      "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+      "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+      "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+    },
+    "summary": "A String", # The simplest way to interpret a result.
+        #
+        # Required
+  },
+  "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+      # 
+      # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+      # 
+      # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+      # 
+      # - In response: present if previously set. - In create request: optional - In update request: optional
+      #
+      # # Examples
+      #
+      # Example 1: Compute Duration from two Timestamps in pseudo code.
+      #
+      # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+      #
+      # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+      #
+      # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+      #
+      # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+      #
+      # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+      #
+      # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+      #
+      # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+      #
+      # Example 3: Compute Duration from datetime.timedelta in Python.
+      #
+      # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+  },
+  "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+      # 
+      # - In response: always set - In create/update request: never set
+}
+
+  requestId: string, A unique request ID for server to detect duplicated requests. For example, a UUID.
+
+Optional, but strongly recommended.
+
+Returns:
+  An object of the form:
+
+    { # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+      #
+      # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+      #
+      # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+      #
+      # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+    "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+        #
+        # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+        #
+        # Users can also add test results manually by using the test_result field.
+      "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+            #
+            # - In response: present if previously set. - In create/update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+      },
+      "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+          #
+          # The maximum allowed number of test suite overviews per step is 1000.
+          #
+          # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+        { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+            #
+            # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+          "name": "A String", # The name of the test suite.
+              #
+              # - In create/response: always set - In update request: never
+          "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+              #
+              # Note: Multiple test suites can share the same xml_source
+              #
+              # Returns INVALID_ARGUMENT if the uri format is not supported.
+              #
+              # - In create/response: optional - In update request: never
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+              #
+              # - In create/response: always set - In update request: never
+          "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+        },
+      ],
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+          #
+          # The exit code of this tool will be used to determine if the test passed.
+          #
+          # - In response: always set - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+      "testIssues": [ # Issues observed during the test execution.
+          #
+          # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        { # An abnormal event observed during the test execution.
+          "stackTrace": { # A stacktrace. # Optional.
+            "exception": "A String", # The stack trace message.
+                #
+                # Required
+          },
+          "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+              #
+              # Required.
+        },
+      ],
+    },
+    "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+    },
+    "stepId": "A String", # A unique identifier within a Execution for this Step.
+        #
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        #
+        # - In response: always set - In create/update request: never set
+    "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+        #
+        # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+        #
+        # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+    "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+        #
+        # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+        #
+        # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+        #
+        # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+        #
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+        #
+        # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+        #
+        # - In response: always set - In create request: always set - In update request: never set
+    "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+        #
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        #
+        # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+        #
+        # - In response: always set - In create/update request: optional
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+        #
+        # This value will be set automatically when state transitions to COMPLETE.
+        #
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+        #
+        # The keys must exactly match the dimension_definition of the execution.
+        #
+        # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+        #
+        # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+        #
+        # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+        #
+        # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+        #
+        # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+        #
+        # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+        #
+        # - In response: present if set by create - In create request: optional - In update request: never set
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+    "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+        #
+        # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+        #
+        # - In response: present if previously set. - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+        #
+        # - In response: always set - In create/update request: never set
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None, stepId=None)</code>
+  <pre>Gets a Step.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Step does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, A Execution id.
+
+Required. (required)
+  stepId: string, A Step id.
+
+Required. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+      #
+      # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+      #
+      # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+      #
+      # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+    "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+        #
+        # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+        #
+        # Users can also add test results manually by using the test_result field.
+      "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+            #
+            # - In response: present if previously set. - In create/update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+      },
+      "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+          #
+          # The maximum allowed number of test suite overviews per step is 1000.
+          #
+          # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+        { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+            #
+            # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+          "name": "A String", # The name of the test suite.
+              #
+              # - In create/response: always set - In update request: never
+          "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+              #
+              # Note: Multiple test suites can share the same xml_source
+              #
+              # Returns INVALID_ARGUMENT if the uri format is not supported.
+              #
+              # - In create/response: optional - In update request: never
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+              #
+              # - In create/response: always set - In update request: never
+          "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+        },
+      ],
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+          #
+          # The exit code of this tool will be used to determine if the test passed.
+          #
+          # - In response: always set - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+      "testIssues": [ # Issues observed during the test execution.
+          #
+          # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        { # An abnormal event observed during the test execution.
+          "stackTrace": { # A stacktrace. # Optional.
+            "exception": "A String", # The stack trace message.
+                #
+                # Required
+          },
+          "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+              #
+              # Required.
+        },
+      ],
+    },
+    "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+    },
+    "stepId": "A String", # A unique identifier within a Execution for this Step.
+        #
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        #
+        # - In response: always set - In create/update request: never set
+    "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+        #
+        # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+        #
+        # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+    "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+        #
+        # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+        #
+        # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+        #
+        # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+        #
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+        #
+        # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+        #
+        # - In response: always set - In create request: always set - In update request: never set
+    "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+        #
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        #
+        # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+        #
+        # - In response: always set - In create/update request: optional
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+        #
+        # This value will be set automatically when state transitions to COMPLETE.
+        #
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+        #
+        # The keys must exactly match the dimension_definition of the execution.
+        #
+        # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+        #
+        # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+        #
+        # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+        #
+        # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+        #
+        # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+        #
+        # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+        #
+        # - In response: present if set by create - In create request: optional - In update request: never set
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+    "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+        #
+        # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+        #
+        # - In response: present if previously set. - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+        #
+        # - In response: always set - In create/update request: never set
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getPerfMetricsSummary">getPerfMetricsSummary(projectId, historyId, executionId, stepId)</code>
+  <pre>Retrieves a PerfMetricsSummary.
+
+May return any of the following error code(s): - NOT_FOUND - The specified PerfMetricsSummary does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # A summary of perf metrics collected and performance environment info
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+      "cpuInfo": { # CPU related environment info
+        "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+        "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+        "numberOfCores": 42, # the number of CPU cores
+      },
+      "memoryInfo": { # Memory related environment info
+        "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+        "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+      },
+    },
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "perfMetrics": [ # Set of resource collected
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</code>
+  <pre>Lists Steps for a given Execution.
+
+The steps are sorted by creation_time in descending order. The step_id key will be used to order the steps with the same creation_time.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if an argument in the request happens to be invalid; e.g. if an attempt is made to list the children of a nonexistent Step - NOT_FOUND - if the containing Execution does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, A Execution id.
+
+Required. (required)
+  pageToken: string, A continuation token to resume the query at the next item.
+
+Optional.
+  pageSize: integer, The maximum number of Steps to fetch.
+
+Default value: 25. The server will use this default if the field is not set or has a value of 0.
+
+Optional.
+
+Returns:
+  An object of the form:
+
+    { # Response message for StepService.List.
+    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
+        #
+        # If set, indicates that there are more steps to read, by calling list again with this value in the page_token field.
+    "steps": [ # Steps.
+      { # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+          #
+          # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+          #
+          # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+          #
+          # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+        "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+            #
+            # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+            #
+            # Users can also add test results manually by using the test_result field.
+          "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+              #
+              # - In response: present if set by create or update - In create/update request: optional
+            "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+                #
+                # - In response: present if previously set. - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Duration from two Timestamps in pseudo code.
+                #
+                # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+                #
+                # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+                #
+                # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+                #
+                # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+                #
+                # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+                #
+                # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+                #
+                # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+                #
+                # Example 3: Compute Duration from datetime.timedelta in Python.
+                #
+                # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+              "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+              "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+            },
+          },
+          "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+              #
+              # The maximum allowed number of test suite overviews per step is 1000.
+              #
+              # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+            { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+                #
+                # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+              "name": "A String", # The name of the test suite.
+                  #
+                  # - In create/response: always set - In update request: never
+              "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+                  #
+                  # - In create/response: always set - In update request: never
+              "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+                  #
+                  # - In create/response: always set - In update request: never
+              "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+                  #
+                  # Note: Multiple test suites can share the same xml_source
+                  #
+                  # Returns INVALID_ARGUMENT if the uri format is not supported.
+                  #
+                  # - In create/response: optional - In update request: never
+                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                    #
+                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                    #
+                    # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                    #
+                    # - In response: always set - In create/update request: always set
+              },
+              "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+                  #
+                  # - In create/response: always set - In update request: never
+              "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+                  #
+                  # - In create/response: always set - In update request: never
+            },
+          ],
+          "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+              #
+              # The exit code of this tool will be used to determine if the test passed.
+              #
+              # - In response: always set - In create/update request: optional
+            "toolLogs": [ # References to any plain text logs output the tool execution.
+                #
+                # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+                #
+                # The maximum allowed number of tool logs per step is 1000.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+              { # A reference to a file.
+                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                    #
+                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                    #
+                    # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                    #
+                    # - In response: always set - In create/update request: always set
+              },
+            ],
+            "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+              "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+                #
+                # The maximum allowed number of tool outputs per step is 1000.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+              { # A reference to a ToolExecution output file.
+                "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                    #
+                    # - In response: present if set by create/update request - In create/update request: optional
+                    #
+                    # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+                  "className": "A String", # The name of the class.
+                  "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+                  "name": "A String", # The name of the test case.
+                      #
+                      # Required.
+                },
+                "output": { # A reference to a file. # A FileReference to an output file.
+                    #
+                    # - In response: always set - In create/update request: always set
+                  "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                      #
+                      # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                      #
+                      # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                      #
+                      # - In response: always set - In create/update request: always set
+                },
+                "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                    #
+                    # - In response: present if set by create/update request - In create/update request: optional
+                    #
+                    # # Examples
+                    #
+                    # Example 1: Compute Timestamp from POSIX `time()`.
+                    #
+                    # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                    #
+                    # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                    #
+                    # struct timeval tv; gettimeofday(&tv, NULL);
+                    #
+                    # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                    #
+                    # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                    #
+                    # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                    #
+                    # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                    #
+                    # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                    #
+                    # long millis = System.currentTimeMillis();
+                    #
+                    # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                    #
+                    #
+                    #
+                    # Example 5: Compute Timestamp from current time in Python.
+                    #
+                    # timestamp = Timestamp() timestamp.GetCurrentTime()
+                    #
+                    # # JSON Mapping
+                    #
+                    # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                    #
+                    # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                    #
+                    # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+                  "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+                  "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+                },
+              },
+            ],
+            "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+                #
+                # - In response: present if set by create request - In create request: optional - In update request: never set
+              "A String",
+            ],
+          },
+          "testIssues": [ # Issues observed during the test execution.
+              #
+              # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+              #
+              # - In response: present if set by create or update - In create/update request: optional
+            { # An abnormal event observed during the test execution.
+              "stackTrace": { # A stacktrace. # Optional.
+                "exception": "A String", # The stack trace message.
+                    #
+                    # Required
+              },
+              "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+                  #
+                  # Required.
+            },
+          ],
+        },
+        "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+          "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+            "toolLogs": [ # References to any plain text logs output the tool execution.
+                #
+                # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+                #
+                # The maximum allowed number of tool logs per step is 1000.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+              { # A reference to a file.
+                "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                    #
+                    # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                    #
+                    # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                    #
+                    # - In response: always set - In create/update request: always set
+              },
+            ],
+            "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+              "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+                #
+                # The maximum allowed number of tool outputs per step is 1000.
+                #
+                # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+              { # A reference to a ToolExecution output file.
+                "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                    #
+                    # - In response: present if set by create/update request - In create/update request: optional
+                    #
+                    # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+                  "className": "A String", # The name of the class.
+                  "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+                  "name": "A String", # The name of the test case.
+                      #
+                      # Required.
+                },
+                "output": { # A reference to a file. # A FileReference to an output file.
+                    #
+                    # - In response: always set - In create/update request: always set
+                  "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                      #
+                      # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                      #
+                      # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                      #
+                      # - In response: always set - In create/update request: always set
+                },
+                "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                    #
+                    # - In response: present if set by create/update request - In create/update request: optional
+                    #
+                    # # Examples
+                    #
+                    # Example 1: Compute Timestamp from POSIX `time()`.
+                    #
+                    # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                    #
+                    # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                    #
+                    # struct timeval tv; gettimeofday(&tv, NULL);
+                    #
+                    # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                    #
+                    # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                    #
+                    # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                    #
+                    # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                    #
+                    # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                    #
+                    # long millis = System.currentTimeMillis();
+                    #
+                    # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                    #
+                    #
+                    #
+                    # Example 5: Compute Timestamp from current time in Python.
+                    #
+                    # timestamp = Timestamp() timestamp.GetCurrentTime()
+                    #
+                    # # JSON Mapping
+                    #
+                    # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                    #
+                    # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                    #
+                    # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+                  "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+                  "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+                },
+              },
+            ],
+            "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+                #
+                # - In response: present if set by create request - In create request: optional - In update request: never set
+              "A String",
+            ],
+          },
+        },
+        "stepId": "A String", # A unique identifier within a Execution for this Step.
+            #
+            # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+            #
+            # - In response: always set - In create/update request: never set
+        "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+            #
+            # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+            #
+            # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+            #
+            # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+        "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+            #
+            # - In response: present if set by create/update request - In create/update request: optional
+        "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+            #
+            # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+            #
+            # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+            #
+            # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+          {
+            "value": "A String",
+            "key": "A String",
+          },
+        ],
+        "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+            #
+            # - In response: always set - In create/update request: never set
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+            #
+            # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+            #
+            # - In response: always set - In create request: always set - In update request: never set
+        "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+            #
+            # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+            #
+            # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+            #
+            # - In response: always set - In create/update request: optional
+        "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+            #
+            # This value will be set automatically when state transitions to COMPLETE.
+            #
+            # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+            #
+            # The keys must exactly match the dimension_definition of the execution.
+            #
+            # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+            #
+            # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+            #
+            # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+            #
+            # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+            #
+            # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+            #
+            # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+            #
+            # - In response: present if set by create - In create request: optional - In update request: never set
+          {
+            "value": "A String",
+            "key": "A String",
+          },
+        ],
+        "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+            #
+            # - In response: present if set by create/update request - In create/update request: optional
+          "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+              #
+              # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+              #
+              # Optional
+            "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+                #
+                # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+            "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+          },
+          "skippedDetail": { # More information about a SKIPPED outcome.
+              #
+              # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+              #
+              # Optional
+            "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+            "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+            "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+          },
+          "successDetail": { # More information about a SUCCESS outcome.
+              #
+              # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+              #
+              # Optional
+            "otherNativeCrash": True or False, # If a native process other than the app crashed.
+          },
+          "failureDetail": { # More information about a FAILURE outcome.
+              #
+              # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+              #
+              # Optional
+            "otherNativeCrash": True or False, # If a native process other than the app crashed.
+            "crashed": True or False, # If the failure was severe because the system under test crashed.
+            "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+            "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+            "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+          },
+          "summary": "A String", # The simplest way to interpret a result.
+              #
+              # Required
+        },
+        "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+            #
+            # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+            #
+            # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+            #
+            # - In response: present if previously set. - In create request: optional - In update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+        "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+            #
+            # - In response: always set - In create/update request: never set
+      },
+    ],
+  }</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=None, historyId=None, executionId=None, stepId=None, body, requestId=None)</code>
+  <pre>Updates an existing Step with the supplied partial entity.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal (e.g try to upload a duplicate xml file), if the updated step is too large (more than 10Mib) - NOT_FOUND - if the containing Execution does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, A Execution id.
+
+Required. (required)
+  stepId: string, A Step id.
+
+Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+    # 
+    # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+    # 
+    # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+    # 
+    # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+  "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+      #
+      # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+      #
+      # Users can also add test results manually by using the test_result field.
+    "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+        #
+        # - In response: present if set by create or update - In create/update request: optional
+      "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+          #
+          # - In response: present if previously set. - In create/update request: optional
+          #
+          # # Examples
+          #
+          # Example 1: Compute Duration from two Timestamps in pseudo code.
+          #
+          # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+          #
+          # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+          #
+          # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+          #
+          # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+          #
+          # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+          #
+          # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+          #
+          # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+          #
+          # Example 3: Compute Duration from datetime.timedelta in Python.
+          #
+          # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+          #
+          # # JSON Mapping
+          #
+          # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+        "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+        "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+      },
+    },
+    "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+        #
+        # The maximum allowed number of test suite overviews per step is 1000.
+        #
+        # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+      { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+          #
+          # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+        "name": "A String", # The name of the test suite.
+            #
+            # - In create/response: always set - In update request: never
+        "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+        "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+        "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+            #
+            # Note: Multiple test suites can share the same xml_source
+            #
+            # Returns INVALID_ARGUMENT if the uri format is not supported.
+            #
+            # - In create/response: optional - In update request: never
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+            #
+            # - In create/response: always set - In update request: never
+        "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+            #
+            # - In create/response: always set - In update request: never
+      },
+    ],
+    "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+        #
+        # The exit code of this tool will be used to determine if the test passed.
+        #
+        # - In response: always set - In create/update request: optional
+      "toolLogs": [ # References to any plain text logs output the tool execution.
+          #
+          # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+          #
+          # The maximum allowed number of tool logs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a file.
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+      ],
+      "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+        "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+            #
+            # - In response: always set - In create/update request: always set
+      },
+      "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+          #
+          # The maximum allowed number of tool outputs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a ToolExecution output file.
+          "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+            "className": "A String", # The name of the class.
+            "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+            "name": "A String", # The name of the test case.
+                #
+                # Required.
+          },
+          "output": { # A reference to a file. # A FileReference to an output file.
+              #
+              # - In response: always set - In create/update request: always set
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+        },
+      ],
+      "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+          #
+          # - In response: present if set by create request - In create request: optional - In update request: never set
+        "A String",
+      ],
+    },
+    "testIssues": [ # Issues observed during the test execution.
+        #
+        # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+        #
+        # - In response: present if set by create or update - In create/update request: optional
+      { # An abnormal event observed during the test execution.
+        "stackTrace": { # A stacktrace. # Optional.
+          "exception": "A String", # The stack trace message.
+              #
+              # Required
+        },
+        "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+            #
+            # Required.
+      },
+    ],
+  },
+  "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+    "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "toolLogs": [ # References to any plain text logs output the tool execution.
+          #
+          # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+          #
+          # The maximum allowed number of tool logs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a file.
+          "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+              #
+              # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+              #
+              # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+      ],
+      "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+        "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+            #
+            # - In response: always set - In create/update request: always set
+      },
+      "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+          #
+          # The maximum allowed number of tool outputs per step is 1000.
+          #
+          # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+        { # A reference to a ToolExecution output file.
+          "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+            "className": "A String", # The name of the class.
+            "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+            "name": "A String", # The name of the test case.
+                #
+                # Required.
+          },
+          "output": { # A reference to a file. # A FileReference to an output file.
+              #
+              # - In response: always set - In create/update request: always set
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+        },
+      ],
+      "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+          #
+          # - In response: present if set by create request - In create request: optional - In update request: never set
+        "A String",
+      ],
+    },
+  },
+  "stepId": "A String", # A unique identifier within a Execution for this Step.
+      # 
+      # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+      # 
+      # - In response: always set - In create/update request: never set
+  "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+      # 
+      # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+      # 
+      # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+      # 
+      # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+      #
+      # # Examples
+      #
+      # Example 1: Compute Duration from two Timestamps in pseudo code.
+      #
+      # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+      #
+      # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+      #
+      # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+      #
+      # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+      #
+      # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+      #
+      # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+      #
+      # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+      #
+      # Example 3: Compute Duration from datetime.timedelta in Python.
+      #
+      # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+  },
+  "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+      # 
+      # - In response: present if set by create/update request - In create/update request: optional
+  "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+      # 
+      # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+      # 
+      # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+      # 
+      # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+    {
+      "value": "A String",
+      "key": "A String",
+    },
+  ],
+  "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+      # 
+      # - In response: always set - In create/update request: never set
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+      # 
+      # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+      # 
+      # - In response: always set - In create request: always set - In update request: never set
+  "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+      # 
+      # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+      # 
+      # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+      # 
+      # - In response: always set - In create/update request: optional
+  "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+      # 
+      # This value will be set automatically when state transitions to COMPLETE.
+      # 
+      # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+      # 
+      # The keys must exactly match the dimension_definition of the execution.
+      # 
+      # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+      # 
+      # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+      # 
+      # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+      # 
+      # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+      # 
+      # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+      # 
+      # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+      # 
+      # - In response: present if set by create - In create request: optional - In update request: never set
+    {
+      "value": "A String",
+      "key": "A String",
+    },
+  ],
+  "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+      # 
+      # - In response: present if set by create/update request - In create/update request: optional
+    "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+        #
+        # Optional
+      "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+          #
+          # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+      "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+    },
+    "skippedDetail": { # More information about a SKIPPED outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+        #
+        # Optional
+      "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+      "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+      "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+    },
+    "successDetail": { # More information about a SUCCESS outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+        #
+        # Optional
+      "otherNativeCrash": True or False, # If a native process other than the app crashed.
+    },
+    "failureDetail": { # More information about a FAILURE outcome.
+        #
+        # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+        #
+        # Optional
+      "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      "crashed": True or False, # If the failure was severe because the system under test crashed.
+      "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+      "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+      "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+    },
+    "summary": "A String", # The simplest way to interpret a result.
+        #
+        # Required
+  },
+  "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+      # 
+      # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+      # 
+      # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+      # 
+      # - In response: present if previously set. - In create request: optional - In update request: optional
+      #
+      # # Examples
+      #
+      # Example 1: Compute Duration from two Timestamps in pseudo code.
+      #
+      # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+      #
+      # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+      #
+      # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+      #
+      # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+      #
+      # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+      #
+      # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+      #
+      # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+      #
+      # Example 3: Compute Duration from datetime.timedelta in Python.
+      #
+      # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+    "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+    "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+  },
+  "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+      # 
+      # - In response: always set - In create/update request: never set
+}
+
+  requestId: string, A unique request ID for server to detect duplicated requests. For example, a UUID.
+
+Optional, but strongly recommended.
+
+Returns:
+  An object of the form:
+
+    { # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+      #
+      # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+      #
+      # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+      #
+      # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+    "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+        #
+        # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+        #
+        # Users can also add test results manually by using the test_result field.
+      "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+            #
+            # - In response: present if previously set. - In create/update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+      },
+      "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+          #
+          # The maximum allowed number of test suite overviews per step is 1000.
+          #
+          # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+        { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+            #
+            # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+          "name": "A String", # The name of the test suite.
+              #
+              # - In create/response: always set - In update request: never
+          "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+              #
+              # Note: Multiple test suites can share the same xml_source
+              #
+              # Returns INVALID_ARGUMENT if the uri format is not supported.
+              #
+              # - In create/response: optional - In update request: never
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+              #
+              # - In create/response: always set - In update request: never
+          "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+        },
+      ],
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+          #
+          # The exit code of this tool will be used to determine if the test passed.
+          #
+          # - In response: always set - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+      "testIssues": [ # Issues observed during the test execution.
+          #
+          # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        { # An abnormal event observed during the test execution.
+          "stackTrace": { # A stacktrace. # Optional.
+            "exception": "A String", # The stack trace message.
+                #
+                # Required
+          },
+          "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+              #
+              # Required.
+        },
+      ],
+    },
+    "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+    },
+    "stepId": "A String", # A unique identifier within a Execution for this Step.
+        #
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        #
+        # - In response: always set - In create/update request: never set
+    "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+        #
+        # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+        #
+        # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+    "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+        #
+        # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+        #
+        # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+        #
+        # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+        #
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+        #
+        # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+        #
+        # - In response: always set - In create request: always set - In update request: never set
+    "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+        #
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        #
+        # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+        #
+        # - In response: always set - In create/update request: optional
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+        #
+        # This value will be set automatically when state transitions to COMPLETE.
+        #
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+        #
+        # The keys must exactly match the dimension_definition of the execution.
+        #
+        # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+        #
+        # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+        #
+        # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+        #
+        # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+        #
+        # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+        #
+        # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+        #
+        # - In response: present if set by create - In create request: optional - In update request: never set
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+    "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+        #
+        # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+        #
+        # - In response: present if previously set. - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+        #
+        # - In response: always set - In create/update request: never set
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId=None, historyId=None, executionId=None, stepId=None, body)</code>
+  <pre>Publish xml files to an existing Step.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write project - INVALID_ARGUMENT - if the request is malformed - FAILED_PRECONDITION - if the requested state transition is illegal, e.g try to upload a duplicate xml file or a file too large. - NOT_FOUND - if the containing Execution does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, A Execution id.
+
+Required. (required)
+  stepId: string, A Step id. Note: This step must include a TestExecutionStep.
+
+Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for StepService.PublishXunitXmlFiles.
+    "xunitXmlFiles": [ # URI of the Xunit XML files to publish.
+        # 
+        # The maximum size of the file this reference is pointing to is 50MB.
+        # 
+        # Required.
+      { # A reference to a file.
+        "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+            #
+            # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+            #
+            # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+            #
+            # - In response: always set - In create/update request: always set
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A Step represents a single operation performed as part of Execution. A step can be used to represent the execution of a tool ( for example a test runner execution or an execution of a compiler).
+      #
+      # Steps can overlap (for instance two steps might have the same start time if some operations are done in parallel).
+      #
+      # Here is an example, let's consider that we have a continuous build is executing a test runner for each iteration. The workflow would look like: - user creates a Execution with id 1 - user creates an TestExecutionStep with id 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw xml log + the service parses the xml logs and returns a TestExecutionStep with updated TestResult(s). - user update the status of TestExecutionStep with id 100 to COMPLETE
+      #
+      # A Step can be updated until its state is set to COMPLETE at which points it becomes immutable.
+    "testExecutionStep": { # A step that represents running tests. # An execution of a test runner.
+        #
+        # It accepts ant-junit xml files which will be parsed into structured test results by the service. Xml file paths are updated in order to append more files, however they can't be deleted.
+        #
+        # Users can also add test results manually by using the test_result field.
+      "testTiming": { # Testing timing break down to know phases. # The timing break down of the test execution.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        "testProcessDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took to run the test process.
+            #
+            # - In response: present if previously set. - In create/update request: optional
+            #
+            # # Examples
+            #
+            # Example 1: Compute Duration from two Timestamps in pseudo code.
+            #
+            # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+            #
+            # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+            #
+            # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+            #
+            # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+            #
+            # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+            #
+            # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+            #
+            # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+            #
+            # Example 3: Compute Duration from datetime.timedelta in Python.
+            #
+            # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+          "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+          "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+        },
+      },
+      "testSuiteOverviews": [ # List of test suite overview contents. This could be parsed from xUnit XML log by server, or uploaded directly by user. This references should only be called when test suites are fully parsed or uploaded.
+          #
+          # The maximum allowed number of test suite overviews per step is 1000.
+          #
+          # - In response: always set - In create request: optional - In update request: never (use publishXunitXmlFiles custom method instead)
+        { # A summary of a test suite result either parsed from XML or uploaded directly by a user.
+            #
+            # Note: the API related comments are for StepService only. This message is also being used in ExecutionService in a read only mode for the corresponding step.
+          "name": "A String", # The name of the test suite.
+              #
+              # - In create/response: always set - In update request: never
+          "errorCount": 42, # Number of test cases in error, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "totalCount": 42, # Number of test cases, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+          "xmlSource": { # A reference to a file. # If this test suite was parsed from XML, this is the URI where the original XML file is stored.
+              #
+              # Note: Multiple test suites can share the same xml_source
+              #
+              # Returns INVALID_ARGUMENT if the uri format is not supported.
+              #
+              # - In create/response: optional - In update request: never
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "failureCount": 42, # Number of failed test cases, typically set by the service by parsing the xml_source. May also be set by the user.
+              #
+              # - In create/response: always set - In update request: never
+          "skippedCount": 42, # Number of test cases not run, typically set by the service by parsing the xml_source.
+              #
+              # - In create/response: always set - In update request: never
+        },
+      ],
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # Represents the execution of the test runner.
+          #
+          # The exit code of this tool will be used to determine if the test passed.
+          #
+          # - In response: always set - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+      "testIssues": [ # Issues observed during the test execution.
+          #
+          # For example, if the mobile app under test crashed during the test, the error message and the stack trace content can be recorded here to assist debugging.
+          #
+          # - In response: present if set by create or update - In create/update request: optional
+        { # An abnormal event observed during the test execution.
+          "stackTrace": { # A stacktrace. # Optional.
+            "exception": "A String", # The stack trace message.
+                #
+                # Required
+          },
+          "errorMessage": "A String", # A brief human-readable message describing the abnormal event.
+              #
+              # Required.
+        },
+      ],
+    },
+    "toolExecutionStep": { # Generic tool step to be used for binaries we do not explicitly support. For example: running cp to copy artifacts from one location to another. # An execution of a tool (used for steps we don't explicitly support).
+      "toolExecution": { # An execution of an arbitrary tool. It could be a test runner or a tool copying artifacts or deploying code. # A Tool execution.
+          #
+          # - In response: present if set by create/update request - In create/update request: optional
+        "toolLogs": [ # References to any plain text logs output the tool execution.
+            #
+            # This field can be set before the tool has exited in order to be able to have access to a live view of the logs while the tool is running.
+            #
+            # The maximum allowed number of tool logs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a file.
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+        ],
+        "exitCode": { # Exit code from a tool execution. # Tool execution exit code. This field will be set once the tool has exited.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, a FAILED_PRECONDITION error will be returned if an exit_code is already set.
+          "number": 42, # Tool execution exit code. A value of 0 means that the execution was successful.
+              #
+              # - In response: always set - In create/update request: always set
+        },
+        "toolOutputs": [ # References to opaque files of any format output by the tool execution.
+            #
+            # The maximum allowed number of tool outputs per step is 1000.
+            #
+            # - In response: present if set by create/update request - In create request: optional - In update request: optional, any value provided will be appended to the existing list
+          { # A reference to a ToolExecution output file.
+            "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+              "className": "A String", # The name of the class.
+              "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+              "name": "A String", # The name of the test case.
+                  #
+                  # Required.
+            },
+            "output": { # A reference to a file. # A FileReference to an output file.
+                #
+                # - In response: always set - In create/update request: always set
+              "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                  #
+                  # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                  #
+                  # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                  #
+                  # - In response: always set - In create/update request: always set
+            },
+            "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+                #
+                # - In response: present if set by create/update request - In create/update request: optional
+                #
+                # # Examples
+                #
+                # Example 1: Compute Timestamp from POSIX `time()`.
+                #
+                # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+                #
+                # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+                #
+                # struct timeval tv; gettimeofday(&tv, NULL);
+                #
+                # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+                #
+                # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+                #
+                # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+                #
+                # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+                #
+                # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+                #
+                # long millis = System.currentTimeMillis();
+                #
+                # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+                #
+                #
+                #
+                # Example 5: Compute Timestamp from current time in Python.
+                #
+                # timestamp = Timestamp() timestamp.GetCurrentTime()
+                #
+                # # JSON Mapping
+                #
+                # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+                #
+                # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+                #
+                # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+              "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+              "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+            },
+          },
+        ],
+        "commandLineArguments": [ # The full tokenized command line including the program name (equivalent to argv in a C program).
+            #
+            # - In response: present if set by create request - In create request: optional - In update request: never set
+          "A String",
+        ],
+      },
+    },
+    "stepId": "A String", # A unique identifier within a Execution for this Step.
+        #
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        #
+        # - In response: always set - In create/update request: never set
+    "runDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How long it took for this step to run.
+        #
+        # If unset, this is set to the difference between creation_time and completion_time when the step is set to the COMPLETE state. In some cases, it is appropriate to set this value separately: For instance, if a step is created, but the operation it represents is queued for a few minutes before it executes, it would be appropriate not to include the time spent queued in its run_duration.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a run_duration on a step which already has this field set.
+        #
+        # - In response: present if previously set; always present on COMPLETE step - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "description": "A String", # A description of this tool For example: mvn clean package -D skipTests=true
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+    "labels": [ # Arbitrary user-supplied key/value pairs that are associated with the step.
+        #
+        # Users are responsible for managing the key namespace such that keys don't accidentally collide.
+        #
+        # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if the length of any of the keys or values exceeds 100 characters.
+        #
+        # - In response: always set - In create request: optional - In update request: optional; any new key/value pair will be added to the map, and any new value for an existing key will update that key's value
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step was created.
+        #
+        # - In response: always set - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # A short human-readable name to display in the UI. Maximum of 100 characters. For example: Clean build
+        #
+        # A PRECONDITION_FAILED will be returned upon creating a new step if it shares its name and dimension_value with an existing step. If two steps represent a similar action, but have different dimension values, they should share the same name. For instance, if the same set of tests is run on two different platforms, the two steps should have the same name.
+        #
+        # - In response: always set - In create request: always set - In update request: never set
+    "state": "A String", # The initial state is IN_PROGRESS. The only legal state transitions are * IN_PROGRESS -> COMPLETE
+        #
+        # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
+        #
+        # It is valid to create Step with a state set to COMPLETE. The state can only be set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is set to COMPLETE multiple times.
+        #
+        # - In response: always set - In create/update request: optional
+    "completionTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The time when the step status was set to complete.
+        #
+        # This value will be set automatically when state transitions to COMPLETE.
+        #
+        # - In response: set if the execution state is COMPLETE. - In create/update request: never set
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "dimensionValue": [ # If the execution containing this step has any dimension_definition set, then this field allows the child to specify the values of the dimensions.
+        #
+        # The keys must exactly match the dimension_definition of the execution.
+        #
+        # For example, if the execution has `dimension_definition = ['attempt', 'device']` then a step must define values for those dimensions, eg. `dimension_value = ['attempt': '1', 'device': 'Nexus 6']`
+        #
+        # If a step does not participate in one dimension of the matrix, the value for that dimension should be empty string. For example, if one of the tests is executed by a runner which does not support retries, the step could have `dimension_value = ['attempt': '', 'device': 'Nexus 6']`
+        #
+        # If the step does not participate in any dimensions of the matrix, it may leave dimension_value unset.
+        #
+        # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the dimension_definition of the execution.
+        #
+        # A PRECONDITION_FAILED will be returned if another step in this execution already has the same name and dimension_value, but differs on other data fields, for example, step field is different.
+        #
+        # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is a dimension_definition in the execution which is not specified as one of the keys.
+        #
+        # - In response: present if set by create - In create request: optional - In update request: never set
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "outcome": { # Interprets a result so that humans and machines can act on it. # Classification of the result, for example into SUCCESS or FAILURE
+        #
+        # - In response: present if set by create/update request - In create/update request: optional
+      "inconclusiveDetail": { # More information about an INCONCLUSIVE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not INCONCLUSIVE.
+          #
+          # Optional
+        "infrastructureFailure": True or False, # If the test runner could not determine success or failure because the test depends on a component other than the system under test which failed.
+            #
+            # For example, a mobile test requires provisioning a device where the test executes, and that provisioning can fail.
+        "abortedByUser": True or False, # If the end user aborted the test execution before a pass or fail could be determined. For example, the user pressed ctrl-c which sent a kill signal to the test runner while the test was running.
+      },
+      "skippedDetail": { # More information about a SKIPPED outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
+          #
+          # Optional
+        "incompatibleAppVersion": True or False, # If the App doesn't support the specific API level.
+        "incompatibleArchitecture": True or False, # If the App doesn't run on the specific architecture, for example, x86.
+        "incompatibleDevice": True or False, # If the requested OS version doesn't run on the specific device model.
+      },
+      "successDetail": { # More information about a SUCCESS outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+      },
+      "failureDetail": { # More information about a FAILURE outcome.
+          #
+          # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
+          #
+          # Optional
+        "otherNativeCrash": True or False, # If a native process other than the app crashed.
+        "crashed": True or False, # If the failure was severe because the system under test crashed.
+        "unableToCrawl": True or False, # If the robo was unable to crawl the app; perhaps because the app did not start.
+        "notInstalled": True or False, # If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.
+        "timedOut": True or False, # If the test overran some time limit, and that is why it failed.
+      },
+      "summary": "A String", # The simplest way to interpret a result.
+          #
+          # Required
+    },
+    "deviceUsageDuration": { # A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # How much the device resource is used to perform the test.
+        #
+        # This is the device usage used for billing purpose, which is different from the run_duration, for example, infrastructure failure won't be charged for device usage.
+        #
+        # PRECONDITION_FAILED will be returned if one attempts to set a device_usage on a step which already has this field set.
+        #
+        # - In response: present if previously set. - In create request: optional - In update request: optional
+        #
+        # # Examples
+        #
+        # Example 1: Compute Duration from two Timestamps in pseudo code.
+        #
+        # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
+        #
+        # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos;
+        #
+        # if (duration.seconds  0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
+        #
+        # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+        #
+        # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
+        #
+        # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos;
+        #
+        # if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -= 1000000000; }
+        #
+        # Example 3: Compute Duration from datetime.timedelta in Python.
+        #
+        # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
+      "nanos": 42, # Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 `seconds` field and a positive or negative `nanos` field. For durations of one second or more, a non-zero value for the `nanos` field must be of the same sign as the `seconds` field. Must be from -999,999,999 to +999,999,999 inclusive.
+      "seconds": "A String", # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive.
+    },
+    "hasImages": True or False, # Whether any of the outputs of this step are images whose thumbnails can be fetched with ListThumbnails.
+        #
+        # - In response: always set - In create/update request: never set
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfMetricsSummary.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfMetricsSummary.html
new file mode 100644
index 0000000..dcd8170
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfMetricsSummary.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="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfMetricsSummary.html">perfMetricsSummary</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(projectId, historyId, executionId, stepId, body)</a></code></p>
+<p class="firstline">Creates a PerfMetricsSummary resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, historyId, executionId, stepId, body)</code>
+  <pre>Creates a PerfMetricsSummary resource.
+
+May return any of the following error code(s): - ALREADY_EXISTS - A PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A summary of perf metrics collected and performance environment info
+  "stepId": "A String", # A tool results step ID.
+  "projectId": "A String", # The cloud project
+  "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+    "cpuInfo": { # CPU related environment info
+      "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+      "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+      "numberOfCores": 42, # the number of CPU cores
+    },
+    "memoryInfo": { # Memory related environment info
+      "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+      "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+    },
+  },
+  "historyId": "A String", # A tool results history ID.
+  "executionId": "A String", # A tool results execution ID.
+  "perfMetrics": [ # Set of resource collected
+    "A String",
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A summary of perf metrics collected and performance environment info
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "perfEnvironment": { # Encapsulates performance environment info # Describes the environment in which the performance metrics were collected
+      "cpuInfo": { # CPU related environment info
+        "cpuSpeedInGhz": 3.14, # the CPU clock speed in GHz
+        "cpuProcessor": "A String", # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
+        "numberOfCores": 42, # the number of CPU cores
+      },
+      "memoryInfo": { # Memory related environment info
+        "memoryTotalInKibibyte": "A String", # Total memory available on the device in KiB
+        "memoryCapInKibibyte": "A String", # Maximum memory that can be allocated to the process in KiB
+      },
+    },
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "perfMetrics": [ # Set of resource collected
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html
new file mode 100644
index 0000000..db77d6e
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.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="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.samples.html">samples()</a></code>
+</p>
+<p class="firstline">Returns the samples Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId, historyId, executionId, stepId, body)</a></code></p>
+<p class="firstline">Creates a PerfSampleSeries.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, historyId, executionId, stepId, sampleSeriesId)</a></code></p>
+<p class="firstline">Gets a PerfSampleSeries.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, filter=None)</a></code></p>
+<p class="firstline">Lists PerfSampleSeries for a given Step.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, historyId, executionId, stepId, body)</code>
+  <pre>Creates a PerfSampleSeries.
+
+May return any of the following error code(s): - ALREADY_EXISTS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Resource representing a collection of performance samples (or data points)
+    "stepId": "A String", # A tool results step ID.
+    "projectId": "A String", # The cloud project
+    "sampleSeriesId": "A String", # A sample series id
+    "historyId": "A String", # A tool results history ID.
+    "executionId": "A String", # A tool results execution ID.
+    "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+      "sampleSeriesLabel": "A String",
+      "perfUnit": "A String",
+      "perfMetricType": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Resource representing a collection of performance samples (or data points)
+      "stepId": "A String", # A tool results step ID.
+      "projectId": "A String", # The cloud project
+      "sampleSeriesId": "A String", # A sample series id
+      "historyId": "A String", # A tool results history ID.
+      "executionId": "A String", # A tool results execution ID.
+      "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+        "sampleSeriesLabel": "A String",
+        "perfUnit": "A String",
+        "perfMetricType": "A String",
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, historyId, executionId, stepId, sampleSeriesId)</code>
+  <pre>Gets a PerfSampleSeries.
+
+May return any of the following error code(s): - NOT_FOUND - The specified PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+
+Returns:
+  An object of the form:
+
+    { # Resource representing a collection of performance samples (or data points)
+      "stepId": "A String", # A tool results step ID.
+      "projectId": "A String", # The cloud project
+      "sampleSeriesId": "A String", # A sample series id
+      "historyId": "A String", # A tool results history ID.
+      "executionId": "A String", # A tool results execution ID.
+      "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+        "sampleSeriesLabel": "A String",
+        "perfUnit": "A String",
+        "perfMetricType": "A String",
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, filter=None)</code>
+  <pre>Lists PerfSampleSeries for a given Step.
+
+The request provides an optional filter which specifies one or more PerfMetricsType to include in the result; if none returns all. The resulting PerfSampleSeries are sorted by ids.
+
+May return any of the following canonical error codes: - NOT_FOUND - The containing Step does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  filter: string, Specify one or more PerfMetricType values such as CPU to filter the result (repeated)
+    Allowed values
+      cpu - 
+      memory - 
+      network - 
+      perfMetricTypeUnspecified - 
+
+Returns:
+  An object of the form:
+
+    {
+    "perfSampleSeries": [ # The resulting PerfSampleSeries sorted by id
+      { # Resource representing a collection of performance samples (or data points)
+          "stepId": "A String", # A tool results step ID.
+          "projectId": "A String", # The cloud project
+          "sampleSeriesId": "A String", # A sample series id
+          "historyId": "A String", # A tool results history ID.
+          "executionId": "A String", # A tool results execution ID.
+          "basicPerfSampleSeries": { # Encapsulates the metadata for basic sample series represented by a line chart # Basic series represented by a line chart
+            "sampleSeriesLabel": "A String",
+            "perfUnit": "A String",
+            "perfMetricType": "A String",
+          },
+        },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.samples.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.samples.html
new file mode 100644
index 0000000..a26bfe5
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.samples.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="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html">perfSampleSeries</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.samples.html">samples</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchCreate">batchCreate(projectId, historyId, executionId, stepId, sampleSeriesId, body)</a></code></p>
+<p class="firstline">Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database).</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, sampleSeriesId, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit</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="batchCreate">batchCreate(projectId, historyId, executionId, stepId, sampleSeriesId, body)</code>
+  <pre>Creates a batch of PerfSamples - a client can submit multiple batches of Perf Samples through repeated calls to this method in order to split up a large request payload - duplicates and existing timestamp entries will be ignored. - the batch operation may partially succeed - the set of elements successfully inserted is returned in the response (omits items which already existed in the database).
+
+May return any of the following canonical error codes: - NOT_FOUND - The containing PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request must provide up to a maximum of 5000 samples to be created; a larger sample size will cause an INVALID_ARGUMENT error
+    "perfSamples": [ # The set of PerfSamples to create should not include existing timestamps
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "perfSamples": [
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, sampleSeriesId, pageSize=None, pageToken=None)</code>
+  <pre>Lists the Performance Samples of a given Sample Series - The list results are sorted by timestamps ascending - The default page size is 500 samples; and maximum size allowed 5000 - The response token indicates the last returned PerfSample timestamp - When the results size exceeds the page size, submit a subsequent request including the page token to return the rest of the samples up to the page limit
+
+May return any of the following canonical error codes: - OUT_OF_RANGE - The specified request page_token is out of valid range - NOT_FOUND - The containing PerfSampleSeries does not exist
+
+Args:
+  projectId: string, The cloud project (required)
+  historyId: string, A tool results history ID. (required)
+  executionId: string, A tool results execution ID. (required)
+  stepId: string, A tool results step ID. (required)
+  sampleSeriesId: string, A sample series id (required)
+  pageSize: integer, The default page size is 500 samples, and the maximum size is 5000. If the page_size is greater than 5000, the effective page size will be 5000
+  pageToken: string, Optional, the next_page_token returned in the previous response
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Optional, returned if result size exceeds the page size specified in the request (or the default page size, 500, if unspecified). It indicates the last sample timestamp to be used as page_token in subsequent request
+    "perfSamples": [
+      { # Resource representing a single performance measure or data point
+        "sampleTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # Timestamp of collection
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "value": 3.14, # Value observed
+      },
+    ],
+  }</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/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
new file mode 100644
index 0000000..44b070f
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.html">steps</a> . <a href="toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html">thumbnails</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(projectId=None, historyId=None, executionId=None, stepId=None, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists thumbnails of images attached to a step.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(projectId=None, historyId=None, executionId=None, stepId=None, pageSize=None, pageToken=None)</code>
+  <pre>Lists thumbnails of images attached to a step.
+
+May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to read from the project, or from any of the images - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the step does not exist, or if any of the images do not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+  executionId: string, An Execution id.
+
+Required. (required)
+  stepId: string, A Step id.
+
+Required. (required)
+  pageSize: integer, The maximum number of thumbnails to fetch.
+
+Default value: 50. The server will use this default if the field is not set or has a value of 0.
+
+Optional.
+  pageToken: string, A continuation token to resume the query at the next item.
+
+Optional.
+
+Returns:
+  An object of the form:
+
+    { # A response containing the thumbnails in a step.
+    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
+        #
+        # If set, indicates that there are more thumbnails to read, by calling list again with this value in the page_token field.
+    "thumbnails": [ # A list of image data.
+        #
+        # Images are returned in a deterministic order; they are ordered by these factors, in order of importance: * First, by their associated test case. Images without a test case are considered greater than images with one. * Second, by their creation time. Images without a creation time are greater than images with one. * Third, by the order in which they were added to the step (by calls to CreateStep or UpdateStep).
+      { # An image, with a link to the main image and a thumbnail.
+        "thumbnail": { # A single thumbnail, with its size and format. # The thumbnail.
+          "data": "A String", # The thumbnail file itself.
+              #
+              # That is, the bytes here are precisely the bytes that make up the thumbnail file; they can be served as an image as-is (with the appropriate content type.)
+              #
+              # Always set.
+          "widthPx": 42, # The width of the thumbnail, in pixels.
+              #
+              # Always set.
+          "contentType": "A String", # The thumbnail's content type, i.e. "image/png".
+              #
+              # Always set.
+          "heightPx": 42, # The height of the thumbnail, in pixels.
+              #
+              # Always set.
+        },
+        "stepId": "A String", # The step to which the image is attached.
+            #
+            # Always set.
+        "sourceImage": { # A reference to a ToolExecution output file. # A reference to the full-size, original image.
+            #
+            # This is the same as the tool_outputs entry for the image under its Step.
+            #
+            # Always set.
+          "testCase": { # A reference to a test case. # The test case to which this output file belongs.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # Test case references are canonically ordered lexicographically by these three factors: * First, by test_suite_name. * Second, by class_name. * Third, by name.
+            "className": "A String", # The name of the class.
+            "testSuiteName": "A String", # The name of the test suite to which this test case belongs.
+            "name": "A String", # The name of the test case.
+                #
+                # Required.
+          },
+          "output": { # A reference to a file. # A FileReference to an output file.
+              #
+              # - In response: always set - In create/update request: always set
+            "fileUri": "A String", # The URI of a file stored in Google Cloud Storage.
+                #
+                # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://mybucket/path/to/test.xml#1360383693690000
+                #
+                # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
+                #
+                # - In response: always set - In create/update request: always set
+          },
+          "creationTime": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The creation time of the file.
+              #
+              # - In response: present if set by create/update request - In create/update request: optional
+              #
+              # # Examples
+              #
+              # Example 1: Compute Timestamp from POSIX `time()`.
+              #
+              # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+              #
+              # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+              #
+              # struct timeval tv; gettimeofday(&tv, NULL);
+              #
+              # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+              #
+              # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+              #
+              # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+              #
+              # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+              #
+              # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+              #
+              # long millis = System.currentTimeMillis();
+              #
+              # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+              #
+              #
+              #
+              # Example 5: Compute Timestamp from current time in Python.
+              #
+              # timestamp = Timestamp() timestamp.GetCurrentTime()
+              #
+              # # JSON Mapping
+              #
+              # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+              #
+              # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+              #
+              # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+            "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+            "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+          },
+        },
+        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: # An error explaining why the thumbnail could not be rendered.
+            #
+            # - Simple to use and understand for most users - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][] field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of [google.rpc.Code][].
+          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+            { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.
+                #
+                # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
+                #
+                # Example 1: Pack and unpack a message in C++.
+                #
+                # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
+                #
+                # Example 2: Pack and unpack a message in Java.
+                #
+                # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
+                #
+                # Example 3: Pack and unpack a message in Python.
+                #
+                # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
+                #
+                # The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".
+                #
+                #
+                #
+                # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
+                #
+                # package google.profile; message Person { string first_name = 1; string last_name = 2; }
+                #
+                # { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName":  }
+                #
+                # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
+                #
+                # { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
+              "typeUrl": "A String", # A URL/resource name whose content describes the type of the serialized protocol buffer message.
+                  #
+                  # For URLs which use the scheme `http`, `https`, or no scheme, the following restrictions and interpretations apply:
+                  #
+                  # * If no scheme is provided, `https` is assumed. * The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
+                  #
+                  # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
+              "value": "A String", # Must be a valid serialized protocol buffer of the above specified 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/toolresults_v1beta3firstparty.projects.histories.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html
new file mode 100644
index 0000000..1f032a5
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html
@@ -0,0 +1,257 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a> . <a href="toolresults_v1beta3firstparty.projects.histories.html">histories</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.executions.html">executions()</a></code>
+</p>
+<p class="firstline">Returns the executions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId=None, body, requestId=None)</a></code></p>
+<p class="firstline">Creates a History.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId=None, historyId=None)</a></code></p>
+<p class="firstline">Gets a History.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId=None, pageToken=None, pageSize=None, filterByName=None)</a></code></p>
+<p class="firstline">Lists Histories for a given Project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId=None, body, requestId=None)</code>
+  <pre>Creates a History.
+
+The returned History will have the id set.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the containing project does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all the Executions of a continuous build.
+      # 
+      # Note that the ordering only operates on one-dimension. If a repository has multiple branches, it means that multiple histories will need to be used in order to order Executions per branch.
+    "displayName": "A String", # A short human-readable (plain text) name to display in the UI. Maximum of 100 characters.
+        # 
+        # - In response: present if set during create. - In create request: optional
+    "name": "A String", # A name to uniquely identify a history within a project. Maximum of 100 characters.
+        # 
+        # - In response always set - In create request: always set
+    "historyId": "A String", # A unique identifier within a project for this History.
+        # 
+        # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+        # 
+        # - In response always set - In create request: never set
+  }
+
+  requestId: string, A unique request ID for server to detect duplicated requests. For example, a UUID.
+
+Optional, but strongly recommended.
+
+Returns:
+  An object of the form:
+
+    { # A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all the Executions of a continuous build.
+        #
+        # Note that the ordering only operates on one-dimension. If a repository has multiple branches, it means that multiple histories will need to be used in order to order Executions per branch.
+      "displayName": "A String", # A short human-readable (plain text) name to display in the UI. Maximum of 100 characters.
+          #
+          # - In response: present if set during create. - In create request: optional
+      "name": "A String", # A name to uniquely identify a history within a project. Maximum of 100 characters.
+          #
+          # - In response always set - In create request: always set
+      "historyId": "A String", # A unique identifier within a project for this History.
+          #
+          # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+          #
+          # - In response always set - In create request: never set
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId=None, historyId=None)</code>
+  <pre>Gets a History.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  historyId: string, A History id.
+
+Required. (required)
+
+Returns:
+  An object of the form:
+
+    { # A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all the Executions of a continuous build.
+        #
+        # Note that the ordering only operates on one-dimension. If a repository has multiple branches, it means that multiple histories will need to be used in order to order Executions per branch.
+      "displayName": "A String", # A short human-readable (plain text) name to display in the UI. Maximum of 100 characters.
+          #
+          # - In response: present if set during create. - In create request: optional
+      "name": "A String", # A name to uniquely identify a history within a project. Maximum of 100 characters.
+          #
+          # - In response always set - In create request: always set
+      "historyId": "A String", # A unique identifier within a project for this History.
+          #
+          # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+          #
+          # - In response always set - In create request: never set
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId=None, pageToken=None, pageSize=None, filterByName=None)</code>
+  <pre>Lists Histories for a given Project.
+
+The histories are sorted by modification time in descending order. The history_id key will be used to order the history with the same modification time.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the History does not exist
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+  pageToken: string, A continuation token to resume the query at the next item.
+
+Optional.
+  pageSize: integer, The maximum number of Histories to fetch.
+
+Default value: 20. The server will use this default if the field is not set or has a value of 0. Any value greater than 100 will be treated as 100.
+
+Optional.
+  filterByName: string, If set, only return histories with the given name.
+
+Optional.
+
+Returns:
+  An object of the form:
+
+    { # Response message for HistoryService.List
+    "nextPageToken": "A String", # A continuation token to resume the query at the next item.
+        #
+        # Will only be set if there are more histories to fetch.
+        #
+        # Tokens are valid for up to one hour from the time of the first list request. For instance, if you make a list request at 1PM and use the token from this first request 10 minutes later, the token from this second response will only be valid for 50 minutes.
+    "histories": [ # Histories.
+      { # A History represents a sorted list of Executions ordered by the start_timestamp_millis field (descending). It can be used to group all the Executions of a continuous build.
+            #
+            # Note that the ordering only operates on one-dimension. If a repository has multiple branches, it means that multiple histories will need to be used in order to order Executions per branch.
+          "displayName": "A String", # A short human-readable (plain text) name to display in the UI. Maximum of 100 characters.
+              #
+              # - In response: present if set during create. - In create request: optional
+          "name": "A String", # A name to uniquely identify a history within a project. Maximum of 100 characters.
+              #
+              # - In response always set - In create request: always set
+          "historyId": "A String", # A unique identifier within a project for this History.
+              #
+              # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
+              #
+              # - In response always set - In create request: never set
+        },
+    ],
+  }</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/toolresults_v1beta3firstparty.projects.html b/docs/dyn/toolresults_v1beta3firstparty.projects.html
new file mode 100644
index 0000000..aa5d14a
--- /dev/null
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.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="toolresults_v1beta3firstparty.html">Cloud Tool Results firstparty API</a> . <a href="toolresults_v1beta3firstparty.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="toolresults_v1beta3firstparty.projects.histories.html">histories()</a></code>
+</p>
+<p class="firstline">Returns the histories Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#getSettings">getSettings(projectId=None)</a></code></p>
+<p class="firstline">Gets the Tool Results settings for a project.</p>
+<p class="toc_element">
+  <code><a href="#initializeSettings">initializeSettings(projectId=None)</a></code></p>
+<p class="firstline">Creates resources for settings which have not yet been set.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getSettings">getSettings(projectId=None)</code>
+  <pre>Gets the Tool Results settings for a project.
+
+May return any of the following canonical error codes:
+
+- PERMISSION_DENIED - if the user is not authorized to read from project
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+
+Returns:
+  An object of the form:
+
+    { # Per-project settings for the Tool Results service.
+    "defaultBucket": "A String", # The name of the Google Cloud Storage bucket to which results are written.
+        #
+        # By default, this is unset.
+        #
+        # In update request: optional In response: optional
+    "name": "A String", # The name of the project's settings.
+        #
+        # Always of the form: projects/{project-id}/settings
+        #
+        # In update request: never set In response: always set
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="initializeSettings">initializeSettings(projectId=None)</code>
+  <pre>Creates resources for settings which have not yet been set.
+
+Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in the name of the user calling. Except in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.
+
+The bucket is created with the project-private ACL: All project team members are given permissions to the bucket and objects created within it according to their roles. Project owners have owners rights, and so on. The default ACL on objects created in the bucket is project-private as well. See Google Cloud Storage documentation for more details.
+
+If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deteleted, a new bucket will be created.
+
+May return any canonical error codes, including the following:
+
+- PERMISSION_DENIED - if the user is not authorized to write to project - Any error code raised by Google Cloud Storage
+
+Args:
+  projectId: string, A Project id.
+
+Required. (required)
+
+Returns:
+  An object of the form:
+
+    { # Per-project settings for the Tool Results service.
+    "defaultBucket": "A String", # The name of the Google Cloud Storage bucket to which results are written.
+        #
+        # By default, this is unset.
+        #
+        # In update request: optional In response: optional
+    "name": "A String", # The name of the project's settings.
+        #
+        # Always of the form: projects/{project-id}/settings
+        #
+        # In update request: never set In response: always set
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tracing_v1.html b/docs/dyn/tracing_v1.html
new file mode 100644
index 0000000..295b2bb
--- /dev/null
+++ b/docs/dyn/tracing_v1.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="tracing_v1.html">Google Tracing API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tracing_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tracing_v1.projects.html b/docs/dyn/tracing_v1.projects.html
new file mode 100644
index 0000000..4282596
--- /dev/null
+++ b/docs/dyn/tracing_v1.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="tracing_v1.html">Google Tracing API</a> . <a href="tracing_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tracing_v1.projects.traces.html">traces()</a></code>
+</p>
+<p class="firstline">Returns the traces Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tracing_v1.projects.traces.html b/docs/dyn/tracing_v1.projects.traces.html
new file mode 100644
index 0000000..382f6ed
--- /dev/null
+++ b/docs/dyn/tracing_v1.projects.traces.html
@@ -0,0 +1,610 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="tracing_v1.html">Google Tracing API</a> . <a href="tracing_v1.projects.html">projects</a> . <a href="tracing_v1.projects.traces.html">traces</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchUpdate">batchUpdate(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sends new spans to Stackdriver Trace or updates existing spans. If the</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a specific trace.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</a></code></p>
+<p class="firstline">Returns of a list of traces that match the specified filter conditions.</p>
+<p class="toc_element">
+  <code><a href="#listSpans">listSpans(name, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a list of spans within a trace.</p>
+<p class="toc_element">
+  <code><a href="#listSpans_next">listSpans_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="batchUpdate">batchUpdate(parent, body, x__xgafv=None)</code>
+  <pre>Sends new spans to Stackdriver Trace or updates existing spans. If the
+name of a trace that you send matches that of an existing trace, any fields
+in the existing trace and its spans are overwritten by the provided values,
+and any new fields provided are merged with the existing trace data. If the
+name does not match, a new trace is created with given set of spans.
+
+Args:
+  parent: string, ID of the Cloud project where the trace data is stored. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for the `BatchUpdateSpans` method.
+    "spanUpdates": { # A map from trace name to spans to be stored or updated.
+      "a_key": { # Collection of spans to update.
+        "spans": [ # A collection of spans.
+          { # A span represents a single operation within a trace. Spans can be nested
+              # and form a trace tree. Often, a trace contains a root span that describes the
+              # end-to-end latency and, optionally, one or more subspans for
+              # its sub-operations. Spans do not need to be contiguous. There may be gaps
+              # between spans in a trace.
+            "status": { # The `Status` type defines a logical error model that is suitable for different # The final status of the Span. This is optional.
+                # programming environments, including REST APIs and RPC APIs. It is used by
+                # [gRPC](https://github.com/grpc). The error model is designed to be:
+                #
+                # - Simple to use and understand for most users
+                # - Flexible enough to meet unexpected needs
+                #
+                # # Overview
+                #
+                # The `Status` message contains three pieces of data: error code, error message,
+                # and error details. The error code should be an enum value of
+                # google.rpc.Code, but it may accept additional error codes if needed.  The
+                # error message should be a developer-facing English message that helps
+                # developers *understand* and *resolve* the error. If a localized user-facing
+                # error message is needed, put the localized message in the error details or
+                # localize it in the client. The optional error details may contain arbitrary
+                # information about the error. There is a predefined set of error detail types
+                # in the package `google.rpc` which can be used for common error conditions.
+                #
+                # # Language mapping
+                #
+                # The `Status` message is the logical representation of the error model, but it
+                # is not necessarily the actual wire format. When the `Status` message is
+                # exposed in different client libraries and different wire protocols, it can be
+                # mapped differently. For example, it will likely be mapped to some exceptions
+                # in Java, but more likely mapped to some error codes in C.
+                #
+                # # Other uses
+                #
+                # The error model and the `Status` message can be used in a variety of
+                # environments, either with or without APIs, to provide a
+                # consistent developer experience across different environments.
+                #
+                # Example uses of this error model include:
+                #
+                # - Partial errors. If a service needs to return partial errors to the client,
+                #     it may embed the `Status` in the normal response to indicate the partial
+                #     errors.
+                #
+                # - Workflow errors. A typical workflow has multiple steps. Each step may
+                #     have a `Status` message for error reporting purpose.
+                #
+                # - Batch operations. If a client uses batch request and batch response, the
+                #     `Status` message should be used directly inside batch response, one for
+                #     each error sub-response.
+                #
+                # - Asynchronous operations. If an API call embeds asynchronous operation
+                #     results in its response, the status of those operations should be
+                #     represented directly using the `Status` message.
+                #
+                # - Logging. If some API errors are stored in logs, the message `Status` could
+                #     be used directly after any stripping needed for security/privacy reasons.
+              "message": "A String", # A developer-facing error message, which should be in English. Any
+                  # user-facing error message should be localized and sent in the
+                  # google.rpc.Status.details field, or localized by the client.
+              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+              "details": [ # A list of messages that carry the error details.  There will be a
+                  # common set of message types for APIs to use.
+                {
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              ],
+            },
+            "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span. This is optional.
+              "stackTraceHashId": "A String", # User can choose to use their own hash function to hash large attributes to
+                  # save network bandwidth and storage.
+                  # Typical usage is to pass both stack_frame and stack_trace_hash_id initially
+                  # to inform the storage of the mapping. And in subsequent calls, pass in
+                  # stack_trace_hash_id only. User shall verify the hash value is
+                  # successfully stored.
+              "stackFrame": [ # Stack frames of this stack trace.
+                { # Presents a single stack frame in a stack trace.
+                  "columnNumber": "A String", # Column number is important in JavaScript(anonymous functions),
+                      # Might not be available in some languages.
+                  "functionName": "A String", # Fully qualified names which uniquely identify function/method/etc.
+                  "fileName": "A String", # File name of the frame.
+                  "sourceVersion": "A String", # source_version is deployment specific. It might be
+                      # better to be stored in deployment metadata.
+                  "loadModule": { # Binary module. # Binary module the code is loaded from.
+                    "buildId": "A String", # Build_id is a unique identifier for the module,
+                        # usually a hash of its contents
+                    "module": "A String", # E.g. main binary, kernel modules, and dynamic libraries
+                        # such as libc.so, sharedlib.so
+                  },
+                  "lineNumber": "A String", # Line number of the frame.
+                  "originalFunctionName": "A String", # Used when function name is ‘mangled’. Not guaranteed to be fully
+                      # qualified but usually it is.
+                },
+              ],
+            },
+            "hasRemoteParent": True or False, # True if this Span has a remote parent (is an RPC server Span).
+            "links": [ # A collection of links.
+              { # Link one span with another which may be in a different Trace. Used (for
+                  # example) in batching operations, where a single batch handler processes
+                  # multiple requests from different traces.
+                "spanId": "A String", # The span identifier of the linked span.
+                "traceId": "A String", # The trace identifier of the linked span.
+                "type": "A String", # The type of the link.
+              },
+            ],
+            "parentId": "A String", # ID of parent span. 0 or missing if this is a root span.
+            "localEndTime": "A String", # Local machine clock time from the UNIX epoch,
+                # at which span execution ended.
+                # On the server side these are the times when the server application
+                # handler finishes running.
+            "attributes": { # Properties of a span. Attributes at the span level.
+                # E.g.
+                # "/instance_id": "my-instance"
+                # "/zone": "us-central1-a"
+                # "/grpc/peer_address": "ip:port" (dns, etc.)
+                # "/grpc/deadline": "Duration"
+                # "/http/user_agent"
+                # "/http/request_bytes": 300
+                # "/http/response_bytes": 1200
+                # "/http/url": google.com/apis
+                # "/pid"
+                # "abc.com/myattribute": "my attribute value"
+                #
+                # Maximum length for attribute key is 128 characters, for string attribute
+                # value is 2K characters.
+              "a_key": { # Allowed attribute values.
+                "stringValue": "A String", # A string value.
+                "boolValue": True or False, # A boolean value.
+                "intValue": "A String", # An integer value.
+              },
+            },
+            "timeEvents": [ # A collection of time-stamped events.
+              { # A time-stamped annotation in the Span.
+                "networkEvent": { # An event describing an RPC message sent/received on the network. # Optional field that can be used only for network events.
+                  "messageSize": "A String", # Number of bytes send/receive.
+                  "type": "A String", # Type of a NetworkEvent.
+                  "kernelTime": "A String", # If available, this is the kernel time:
+                      # For sent messages, this is the time at which the first bit was sent.
+                      # For received messages, this is the time at which the last bit was
+                      # received.
+                  "messageId": "A String", # Every message has an identifier, which must be different from all the
+                      # network messages in this span.
+                      # This is especially important when the request/response are streamed.
+                },
+                "annotation": { # Text annotation with a set of attributes. # Optional field for user supplied <string, AttributeValue> map
+                  "attributes": { # A set of attributes on the annotation.
+                    "a_key": { # Allowed attribute values.
+                      "stringValue": "A String", # A string value.
+                      "boolValue": True or False, # A boolean value.
+                      "intValue": "A String", # An integer value.
+                    },
+                  },
+                  "description": "A String", # A user-supplied message describing the event.
+                },
+                "localTime": "A String", # The local machine absolute timestamp when this event happened.
+              },
+            ],
+            "id": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
+                # unique within a trace.
+            "localStartTime": "A String", # Local machine clock time from the UNIX epoch,
+                # at which span execution started.
+                # On the server side these are the times when the server application
+                # handler starts running.
+            "name": "A String", # Name of the span. The span name is sanitized and displayed in the
+                # Stackdriver Trace tool in the {% dynamic print site_values.console_name %}.
+                # The name may be a method name or some other per-call site name.
+                # For the same executable and the same call point, a best practice is
+                # to use a consistent name, which makes it easier to correlate
+                # cross-trace spans.
+          },
+        ],
+      },
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns a specific trace.
+
+Args:
+  name: string, ID of the trace which is "projects/<project_id>/traces/<trace_id>". (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A trace describes how long it takes for an application to perform some
+      # operations. It consists of a set of spans, each of which contains details
+      # about an operation with time information and operation details.
+    "name": "A String", # ID of the trace which is "projects/<project_id>/traces/<trace_id>".
+        # trace_id is globally unique identifier for the trace. Common to all the
+        # spans. It is conceptually a 128-bit hex-encoded value.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</code>
+  <pre>Returns of a list of traces that match the specified filter conditions.
+
+Args:
+  parent: string, ID of the Cloud project where the trace data is stored. (required)
+  orderBy: string, Field used to sort the returned traces. Optional.
+Can be one of the following:
+
+*   `trace_id`
+*   `name` (`name` field of root span in the trace)
+*   `duration` (difference between `end_time` and `start_time` fields of
+     the root span)
+*   `start` (`start_time` field of the root span)
+
+Descending order can be specified by appending `desc` to the sort field
+(for example, `name desc`).
+
+Only one sort field is permitted.
+  startTime: string, Start of the time interval (inclusive) during which the trace data was
+collected from the application.
+  pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the
+implementation selects a reasonable value.  The implementation may
+return fewer traces than the requested page size. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Token identifying the page of results to return. If provided, use the
+value of the `next_page_token` field from a previous request. Optional.
+  filter: string, An optional filter for the request.
+Example:
+"version_label_key:a some_label:some_label_key"
+returns traces from version a and has some_label with some_label_key.
+  endTime: string, End of the time interval (inclusive) during which the trace data was
+collected from the application.
+
+Returns:
+  An object of the form:
+
+    { # The response message for the `ListTraces` method.
+    "nextPageToken": "A String", # If defined, indicates that there are more traces that match the request
+        # and that this value should be passed to the next request to continue
+        # retrieving additional traces.
+    "traces": [ # List of trace records returned.
+      { # A trace describes how long it takes for an application to perform some
+          # operations. It consists of a set of spans, each of which contains details
+          # about an operation with time information and operation details.
+        "name": "A String", # ID of the trace which is "projects/<project_id>/traces/<trace_id>".
+            # trace_id is globally unique identifier for the trace. Common to all the
+            # spans. It is conceptually a 128-bit hex-encoded value.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSpans">listSpans(name, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns a list of spans within a trace.
+
+Args:
+  name: string, ID of the span set where is "projects/<project_id>/traces/<trace_id>". (required)
+  pageToken: string, Token identifying the page of results to return. If provided, use the
+value of the `page_token` field from a previous request. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for the 'ListSpans' method.
+    "nextPageToken": "A String", # If defined, indicates that there are more spans that match the request
+        # and that this value should be passed to the next request to continue
+        # retrieving additional spans.
+    "spans": [ # The requested spans if they are any in the specified trace.
+      { # A span represents a single operation within a trace. Spans can be nested
+          # and form a trace tree. Often, a trace contains a root span that describes the
+          # end-to-end latency and, optionally, one or more subspans for
+          # its sub-operations. Spans do not need to be contiguous. There may be gaps
+          # between spans in a trace.
+        "status": { # The `Status` type defines a logical error model that is suitable for different # The final status of the Span. This is optional.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span. This is optional.
+          "stackTraceHashId": "A String", # User can choose to use their own hash function to hash large attributes to
+              # save network bandwidth and storage.
+              # Typical usage is to pass both stack_frame and stack_trace_hash_id initially
+              # to inform the storage of the mapping. And in subsequent calls, pass in
+              # stack_trace_hash_id only. User shall verify the hash value is
+              # successfully stored.
+          "stackFrame": [ # Stack frames of this stack trace.
+            { # Presents a single stack frame in a stack trace.
+              "columnNumber": "A String", # Column number is important in JavaScript(anonymous functions),
+                  # Might not be available in some languages.
+              "functionName": "A String", # Fully qualified names which uniquely identify function/method/etc.
+              "fileName": "A String", # File name of the frame.
+              "sourceVersion": "A String", # source_version is deployment specific. It might be
+                  # better to be stored in deployment metadata.
+              "loadModule": { # Binary module. # Binary module the code is loaded from.
+                "buildId": "A String", # Build_id is a unique identifier for the module,
+                    # usually a hash of its contents
+                "module": "A String", # E.g. main binary, kernel modules, and dynamic libraries
+                    # such as libc.so, sharedlib.so
+              },
+              "lineNumber": "A String", # Line number of the frame.
+              "originalFunctionName": "A String", # Used when function name is ‘mangled’. Not guaranteed to be fully
+                  # qualified but usually it is.
+            },
+          ],
+        },
+        "hasRemoteParent": True or False, # True if this Span has a remote parent (is an RPC server Span).
+        "links": [ # A collection of links.
+          { # Link one span with another which may be in a different Trace. Used (for
+              # example) in batching operations, where a single batch handler processes
+              # multiple requests from different traces.
+            "spanId": "A String", # The span identifier of the linked span.
+            "traceId": "A String", # The trace identifier of the linked span.
+            "type": "A String", # The type of the link.
+          },
+        ],
+        "parentId": "A String", # ID of parent span. 0 or missing if this is a root span.
+        "localEndTime": "A String", # Local machine clock time from the UNIX epoch,
+            # at which span execution ended.
+            # On the server side these are the times when the server application
+            # handler finishes running.
+        "attributes": { # Properties of a span. Attributes at the span level.
+            # E.g.
+            # "/instance_id": "my-instance"
+            # "/zone": "us-central1-a"
+            # "/grpc/peer_address": "ip:port" (dns, etc.)
+            # "/grpc/deadline": "Duration"
+            # "/http/user_agent"
+            # "/http/request_bytes": 300
+            # "/http/response_bytes": 1200
+            # "/http/url": google.com/apis
+            # "/pid"
+            # "abc.com/myattribute": "my attribute value"
+            #
+            # Maximum length for attribute key is 128 characters, for string attribute
+            # value is 2K characters.
+          "a_key": { # Allowed attribute values.
+            "stringValue": "A String", # A string value.
+            "boolValue": True or False, # A boolean value.
+            "intValue": "A String", # An integer value.
+          },
+        },
+        "timeEvents": [ # A collection of time-stamped events.
+          { # A time-stamped annotation in the Span.
+            "networkEvent": { # An event describing an RPC message sent/received on the network. # Optional field that can be used only for network events.
+              "messageSize": "A String", # Number of bytes send/receive.
+              "type": "A String", # Type of a NetworkEvent.
+              "kernelTime": "A String", # If available, this is the kernel time:
+                  # For sent messages, this is the time at which the first bit was sent.
+                  # For received messages, this is the time at which the last bit was
+                  # received.
+              "messageId": "A String", # Every message has an identifier, which must be different from all the
+                  # network messages in this span.
+                  # This is especially important when the request/response are streamed.
+            },
+            "annotation": { # Text annotation with a set of attributes. # Optional field for user supplied <string, AttributeValue> map
+              "attributes": { # A set of attributes on the annotation.
+                "a_key": { # Allowed attribute values.
+                  "stringValue": "A String", # A string value.
+                  "boolValue": True or False, # A boolean value.
+                  "intValue": "A String", # An integer value.
+                },
+              },
+              "description": "A String", # A user-supplied message describing the event.
+            },
+            "localTime": "A String", # The local machine absolute timestamp when this event happened.
+          },
+        ],
+        "id": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
+            # unique within a trace.
+        "localStartTime": "A String", # Local machine clock time from the UNIX epoch,
+            # at which span execution started.
+            # On the server side these are the times when the server application
+            # handler starts running.
+        "name": "A String", # Name of the span. The span name is sanitized and displayed in the
+            # Stackdriver Trace tool in the {% dynamic print site_values.console_name %}.
+            # The name may be a method name or some other per-call site name.
+            # For the same executable and the same call point, a best practice is
+            # to use a consistent name, which makes it easier to correlate
+            # cross-trace spans.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSpans_next">listSpans_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/vision_v1.images.html b/docs/dyn/vision_v1.images.html
index 7db68f0..4070632 100644
--- a/docs/dyn/vision_v1.images.html
+++ b/docs/dyn/vision_v1.images.html
@@ -131,6 +131,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -173,6 +176,9 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                #
+                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -187,6 +193,16 @@
               # [supported languages](/vision/docs/languages).
             "A String",
           ],
+          "cropHintsParams": { # Parameters for crop hints annotation request. # Parameters for crop hints annotation request.
+            "aspectRatios": [ # Aspect ratios in floats, representing the ratio of the width to the height
+                # of the image. For example, if the desired aspect ratio is 4/3, the
+                # corresponding float value should be 1.33333.  If not specified, the
+                # best possible crop is returned. The number of provided aspect ratios is
+                # limited to a maximum of 16; any aspect ratios provided after the 16th are
+                # ignored.
+              3.14,
+            ],
+          },
         },
         "image": { # Client image to perform Google Cloud Vision API tasks over. # The image to be processed.
           "content": "A String", # Image content, represented as a stream of bytes.
@@ -195,10 +211,22 @@
           "source": { # External image source (Google Cloud Storage image location). # Google Cloud Storage image location. If both `content` and `source`
               # are provided for an image, `content` takes precedence and is
               # used to perform the image annotation request.
-            "gcsImageUri": "A String", # Google Cloud Storage image URI, which must be in the following form:
+            "gcsImageUri": "A String", # NOTE: For new code `image_uri` below is preferred.
+                # Google Cloud Storage image URI, which must be in the following form:
                 # `gs://bucket_name/object_name` (for details, see
-                # [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris)).
+                # [Google Cloud Storage Request
+                # URIs](https://cloud.google.com/storage/docs/reference-uris)).
                 # NOTE: Cloud Storage object versioning is not supported.
+            "imageUri": "A String", # Image URI which supports:
+                # 1) Google Cloud Storage image URI, which must be in the following form:
+                # `gs://bucket_name/object_name` (for details, see
+                # [Google Cloud Storage Request
+                # URIs](https://cloud.google.com/storage/docs/reference-uris)).
+                # NOTE: Cloud Storage object versioning is not supported.
+                # 2) Publicly accessible image HTTP/HTTPS URL.
+                # This is preferred over the legacy `gcs_image_uri` above. When both
+                # `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
+                # precedence.
           },
         },
         "features": [ # Requested features.
@@ -225,12 +253,14 @@
     { # Response to a batch image annotation request.
     "responses": [ # Individual responses to image annotation requests within the batch.
       { # Response to an image annotation request.
-        "safeSearchAnnotation": { # If present, safe-search annotation has completed successfully.
+        "safeSearchAnnotation": { # Set of features pertaining to the image, computed by computer vision # If present, safe-search annotation has completed successfully.
+            # methods over safe-search verticals (for example, adult, spoof, medical,
+            # violence).
           "medical": "A String", # Likelihood that this is a medical image.
-          "violence": "A String", # Violence likelihood.
           "spoof": "A String", # Spoof likelihood. The likelihood that an modification
               # was made to the image's canonical version to make it appear
               # funny or offensive.
+          "violence": "A String", # Violence likelihood.
           "adult": "A String", # Represents the adult content likelihood for the image.
         },
         "textAnnotations": [ # If present, text (OCR) detection has completed successfully.
@@ -247,8 +277,6 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -294,11 +322,16 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -315,12 +348,113 @@
             "properties": [ # Some entities may have optional user-supplied `Property` (name/value)
                 # fields, such a score or string that qualifies the entity.
               { # A `Property` consists of a user-supplied name/value pair.
+                "uint64Value": "A String", # Value of numeric properties.
                 "name": "A String", # Name of the property.
                 "value": "A String", # Value of the property.
               },
             ],
           },
         ],
+        "webDetection": { # Relevant information for the image from the Internet. # If present, web detection has completed successfully.
+          "pagesWithMatchingImages": [ # Web pages containing the matching images from the Internet.
+            { # Metadata for web pages.
+              "url": "A String", # The result web page URL.
+              "score": 3.14, # Overall relevancy score for the web page.
+                  # Not normalized and not comparable across different image queries.
+            },
+          ],
+          "webEntities": [ # Deduced entities from similar images on the Internet.
+            { # Entity deduced from similar images on the Internet.
+              "entityId": "A String", # Opaque entity ID.
+              "score": 3.14, # Overall relevancy score for the entity.
+                  # Not normalized and not comparable across different image queries.
+              "description": "A String", # Canonical description of the entity, in English.
+            },
+          ],
+          "partialMatchingImages": [ # Partial matching images from the Internet.
+              # Those images are similar enough to share some key-point features. For
+              # example an original image will likely have partial matching for its crops.
+            { # Metadata for online images.
+              "url": "A String", # The result image URL.
+              "score": 3.14, # Overall relevancy score for the image.
+                  # Not normalized and not comparable across different image queries.
+            },
+          ],
+          "fullMatchingImages": [ # Fully matching images from the Internet.
+              # They're definite neardups and most often a copy of the query image with
+              # merely a size change.
+            { # Metadata for online images.
+              "url": "A String", # The result image URL.
+              "score": 3.14, # Overall relevancy score for the image.
+                  # Not normalized and not comparable across different image queries.
+            },
+          ],
+        },
+        "error": { # The `Status` type defines a logical error model that is suitable for different # If set, represents the error message for the operation.
+            # Note that filled-in image annotations are guaranteed to be
+            # correct, even when `error` is set.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` which can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting purpose.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
         "labelAnnotations": [ # If present, label detection has completed successfully.
           { # Set of detected entity features.
             "confidence": 3.14, # The accuracy of the entity detection in an image.
@@ -335,8 +469,6 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -382,11 +514,16 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -403,6 +540,7 @@
             "properties": [ # Some entities may have optional user-supplied `Property` (name/value)
                 # fields, such a score or string that qualifies the entity.
               { # A `Property` consists of a user-supplied name/value pair.
+                "uint64Value": "A String", # Value of numeric properties.
                 "name": "A String", # Name of the property.
                 "value": "A String", # Value of the property.
               },
@@ -555,7 +693,6 @@
             "panAngle": 3.14, # Yaw angle, which indicates the leftward/rightward angle that the face is
                 # pointing relative to the vertical plane perpendicular to the image. Range
                 # [-180,180].
-            "sorrowLikelihood": "A String", # Sorrow likelihood.
             "underExposedLikelihood": "A String", # Under-exposed likelihood.
             "detectionConfidence": 3.14, # Detection confidence. Range [0, 1].
             "joyLikelihood": "A String", # Joy likelihood.
@@ -575,7 +712,7 @@
                 "type": "A String", # Face landmark type.
               },
             ],
-            "surpriseLikelihood": "A String", # Surprise likelihood.
+            "sorrowLikelihood": "A String", # Sorrow likelihood.
             "blurredLikelihood": "A String", # Blurred likelihood.
             "tiltAngle": 3.14, # Pitch angle, which indicates the upwards/downwards angle that the face is
                 # pointing relative to the image's horizontal plane. Range [-180,180].
@@ -599,6 +736,7 @@
                 # of the face relative to the image vertical about the axis perpendicular to
                 # the face. Range [-180,180].
             "headwearLikelihood": "A String", # Headwear likelihood.
+            "surpriseLikelihood": "A String", # Surprise likelihood.
             "fdBoundingPoly": { # A bounding polygon for the detected image annotation. # The `fd_bounding_poly` bounding polygon is tighter than the
                 # `boundingPoly`, and encloses only the skin part of the face. Typically, it
                 # is used to eliminate the face from any image analysis that detects the
@@ -630,8 +768,6 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -677,11 +813,16 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -698,6 +839,7 @@
             "properties": [ # Some entities may have optional user-supplied `Property` (name/value)
                 # fields, such a score or string that qualifies the entity.
               { # A `Property` consists of a user-supplied name/value pair.
+                "uint64Value": "A String", # Value of numeric properties.
                 "name": "A String", # Name of the property.
                 "value": "A String", # Value of the property.
               },
@@ -718,8 +860,6 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -765,11 +905,16 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                    #
+                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
+                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -786,74 +931,228 @@
             "properties": [ # Some entities may have optional user-supplied `Property` (name/value)
                 # fields, such a score or string that qualifies the entity.
               { # A `Property` consists of a user-supplied name/value pair.
+                "uint64Value": "A String", # Value of numeric properties.
                 "name": "A String", # Name of the property.
                 "value": "A String", # Value of the property.
               },
             ],
           },
         ],
-        "error": { # The `Status` type defines a logical error model that is suitable for different # If set, represents the error message for the operation.
-            # Note that filled-in image annotations are guaranteed to be
-            # correct, even when `error` is set.
-            # programming environments, including REST APIs and RPC APIs. It is used by
-            # [gRPC](https://github.com/grpc). The error model is designed to be:
-            #
-            # - Simple to use and understand for most users
-            # - Flexible enough to meet unexpected needs
-            #
-            # # Overview
-            #
-            # The `Status` message contains three pieces of data: error code, error message,
-            # and error details. The error code should be an enum value of
-            # google.rpc.Code, but it may accept additional error codes if needed.  The
-            # error message should be a developer-facing English message that helps
-            # developers *understand* and *resolve* the error. If a localized user-facing
-            # error message is needed, put the localized message in the error details or
-            # localize it in the client. The optional error details may contain arbitrary
-            # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
-            #
-            # # Language mapping
-            #
-            # The `Status` message is the logical representation of the error model, but it
-            # is not necessarily the actual wire format. When the `Status` message is
-            # exposed in different client libraries and different wire protocols, it can be
-            # mapped differently. For example, it will likely be mapped to some exceptions
-            # in Java, but more likely mapped to some error codes in C.
-            #
-            # # Other uses
-            #
-            # The error model and the `Status` message can be used in a variety of
-            # environments, either with or without APIs, to provide a
-            # consistent developer experience across different environments.
-            #
-            # Example uses of this error model include:
-            #
-            # - Partial errors. If a service needs to return partial errors to the client,
-            #     it may embed the `Status` in the normal response to indicate the partial
-            #     errors.
-            #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
-            #
-            # - Batch operations. If a client uses batch request and batch response, the
-            #     `Status` message should be used directly inside batch response, one for
-            #     each error sub-response.
-            #
-            # - Asynchronous operations. If an API call embeds asynchronous operation
-            #     results in its response, the status of those operations should be
-            #     represented directly using the `Status` message.
-            #
-            # - Logging. If some API errors are stored in logs, the message `Status` could
-            #     be used directly after any stripping needed for security/privacy reasons.
-          "message": "A String", # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There will be a
-              # common set of message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
+        "fullTextAnnotation": { # TextAnnotation contains a structured representation of OCR extracted text. # If present, text (OCR) detection or document (OCR) text detection has
+            # completed successfully.
+            # This annotation provides the structural hierarchy for the OCR detected
+            # text.
+            # The hierarchy of an OCR extracted text structure is like this:
+            #     TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
+            # Each structural component, starting from Page, may further have their own
+            # properties. Properties describe detected languages, breaks etc.. Please
+            # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
+            # definition below for more detail.
+          "text": "A String", # UTF-8 text detected on the pages.
+          "pages": [ # List of pages detected by OCR.
+            { # Detected page from OCR.
+              "width": 42, # Page width in pixels.
+              "property": { # Additional information detected on the structural component. # Additional information detected on the page.
+                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                  "isPrefix": True or False, # True if break prepends the element.
+                  "type": "A String", # Detected break type.
+                },
+                "detectedLanguages": [ # A list of detected languages together with confidence.
+                  { # Detected language for a structural component.
+                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                        # information, see
+                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                  },
+                ],
+              },
+              "blocks": [ # List of blocks of text, images etc on this page.
+                { # Logical element on the page.
+                  "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the block.
+                      # The vertices are in the order of top-left, top-right, bottom-right,
+                      # bottom-left. When a rotation of the bounding box is detected the rotation
+                      # is represented as around the top-left corner as defined when the text is
+                      # read in the 'natural' orientation.
+                      # For example:
+                      #   * when the text is horizontal it might look like:
+                      #      0----1
+                      #      |    |
+                      #      3----2
+                      #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                      #      2----3
+                      #      |    |
+                      #      1----0
+                      #   and the vertice order will still be (0, 1, 2, 3).
+                    "vertices": [ # The bounding polygon vertices.
+                      { # A vertex represents a 2D point in the image.
+                          # NOTE: the vertex coordinates are in the same scale as the original image.
+                        "y": 42, # Y coordinate.
+                        "x": 42, # X coordinate.
+                      },
+                    ],
+                  },
+                  "blockType": "A String", # Detected block type (text, image etc) for this block.
+                  "property": { # Additional information detected on the structural component. # Additional information detected for the block.
+                    "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                      "isPrefix": True or False, # True if break prepends the element.
+                      "type": "A String", # Detected break type.
+                    },
+                    "detectedLanguages": [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                            # information, see
+                            # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                        "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                      },
+                    ],
+                  },
+                  "paragraphs": [ # List of paragraphs in this block (if this blocks is of type text).
+                    { # Structural unit of text representing a number of words in certain order.
+                      "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the paragraph.
+                          # The vertices are in the order of top-left, top-right, bottom-right,
+                          # bottom-left. When a rotation of the bounding box is detected the rotation
+                          # is represented as around the top-left corner as defined when the text is
+                          # read in the 'natural' orientation.
+                          # For example:
+                          #   * when the text is horizontal it might look like:
+                          #      0----1
+                          #      |    |
+                          #      3----2
+                          #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                          #      2----3
+                          #      |    |
+                          #      1----0
+                          #   and the vertice order will still be (0, 1, 2, 3).
+                        "vertices": [ # The bounding polygon vertices.
+                          { # A vertex represents a 2D point in the image.
+                              # NOTE: the vertex coordinates are in the same scale as the original image.
+                            "y": 42, # Y coordinate.
+                            "x": 42, # X coordinate.
+                          },
+                        ],
+                      },
+                      "property": { # Additional information detected on the structural component. # Additional information detected for the paragraph.
+                        "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                          "isPrefix": True or False, # True if break prepends the element.
+                          "type": "A String", # Detected break type.
+                        },
+                        "detectedLanguages": [ # A list of detected languages together with confidence.
+                          { # Detected language for a structural component.
+                            "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                # information, see
+                                # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                            "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                          },
+                        ],
+                      },
+                      "words": [ # List of words in this paragraph.
+                        { # A word representation.
+                          "symbols": [ # List of symbols in the word.
+                              # The order of the symbols follows the natural reading order.
+                            { # A single symbol representation.
+                              "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the symbol.
+                                  # The vertices are in the order of top-left, top-right, bottom-right,
+                                  # bottom-left. When a rotation of the bounding box is detected the rotation
+                                  # is represented as around the top-left corner as defined when the text is
+                                  # read in the 'natural' orientation.
+                                  # For example:
+                                  #   * when the text is horizontal it might look like:
+                                  #      0----1
+                                  #      |    |
+                                  #      3----2
+                                  #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                                  #      2----3
+                                  #      |    |
+                                  #      1----0
+                                  #   and the vertice order will still be (0, 1, 2, 3).
+                                "vertices": [ # The bounding polygon vertices.
+                                  { # A vertex represents a 2D point in the image.
+                                      # NOTE: the vertex coordinates are in the same scale as the original image.
+                                    "y": 42, # Y coordinate.
+                                    "x": 42, # X coordinate.
+                                  },
+                                ],
+                              },
+                              "text": "A String", # The actual UTF-8 representation of the symbol.
+                              "property": { # Additional information detected on the structural component. # Additional information detected for the symbol.
+                                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                                  "isPrefix": True or False, # True if break prepends the element.
+                                  "type": "A String", # Detected break type.
+                                },
+                                "detectedLanguages": [ # A list of detected languages together with confidence.
+                                  { # Detected language for a structural component.
+                                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                        # information, see
+                                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                                  },
+                                ],
+                              },
+                            },
+                          ],
+                          "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the word.
+                              # The vertices are in the order of top-left, top-right, bottom-right,
+                              # bottom-left. When a rotation of the bounding box is detected the rotation
+                              # is represented as around the top-left corner as defined when the text is
+                              # read in the 'natural' orientation.
+                              # For example:
+                              #   * when the text is horizontal it might look like:
+                              #      0----1
+                              #      |    |
+                              #      3----2
+                              #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                              #      2----3
+                              #      |    |
+                              #      1----0
+                              #   and the vertice order will still be (0, 1, 2, 3).
+                            "vertices": [ # The bounding polygon vertices.
+                              { # A vertex represents a 2D point in the image.
+                                  # NOTE: the vertex coordinates are in the same scale as the original image.
+                                "y": 42, # Y coordinate.
+                                "x": 42, # X coordinate.
+                              },
+                            ],
+                          },
+                          "property": { # Additional information detected on the structural component. # Additional information detected for the word.
+                            "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                              "isPrefix": True or False, # True if break prepends the element.
+                              "type": "A String", # Detected break type.
+                            },
+                            "detectedLanguages": [ # A list of detected languages together with confidence.
+                              { # Detected language for a structural component.
+                                "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                    # information, see
+                                    # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                                "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                              },
+                            ],
+                          },
+                        },
+                      ],
+                    },
+                  ],
+                },
+              ],
+              "height": 42, # Page height in pixels.
+            },
+          ],
+        },
+        "cropHintsAnnotation": { # Set of crop hints that are used to generate new crops when serving images. # If present, crop hints have completed successfully.
+          "cropHints": [ # Crop hint results.
+            { # Single crop hint that is used to generate a new crop when serving an image.
+              "confidence": 3.14, # Confidence of this being a salient region.  Range [0, 1].
+              "boundingPoly": { # A bounding polygon for the detected image annotation. # The bounding polygon for the crop region. The coordinates of the bounding
+                  # box are in the original image's scale, as returned in `ImageParams`.
+                "vertices": [ # The bounding polygon vertices.
+                  { # A vertex represents a 2D point in the image.
+                      # NOTE: the vertex coordinates are in the same scale as the original image.
+                    "y": 42, # Y coordinate.
+                    "x": 42, # X coordinate.
+                  },
+                ],
+              },
+              "importanceFraction": 3.14, # Fraction of importance of this salient region with respect to the original
+                  # image.
             },
           ],
         },
diff --git a/docs/dyn/youtubeAnalytics_v1.reports.html b/docs/dyn/youtubeAnalytics_v1.reports.html
index c7f5a94..3a4d95e 100644
--- a/docs/dyn/youtubeAnalytics_v1.reports.html
+++ b/docs/dyn/youtubeAnalytics_v1.reports.html
@@ -75,11 +75,11 @@
 <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, currency=None, filters=None, max_results=None, start_index=None)</a></code></p>
+  <code><a href="#query">query(ids=None, start_date, end_date, metrics, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=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, currency=None, filters=None, max_results=None, start_index=None)</code>
+    <code class="details" id="query">query(ids=None, start_date, end_date, metrics, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</code>
   <pre>Retrieve your YouTube Analytics reports.
 
 Args:
@@ -89,12 +89,13 @@
   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.
   currency: string, The currency to which financial metrics should be converted. The default is US Dollar (USD). If the result contains no financial metrics, this flag will be ignored. Responds with an error if the specified currency is not recognized.
-  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.
+  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.
+  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.
+  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.
   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).
+  include_historical_channel_data: boolean, If set to true historical data (i.e. channel data from before the linking of the channel to the content owner) will be retrieved.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/youtubeAnalytics_v1beta1.reports.html b/docs/dyn/youtubeAnalytics_v1beta1.reports.html
index 312da1c..e5de773 100644
--- a/docs/dyn/youtubeAnalytics_v1beta1.reports.html
+++ b/docs/dyn/youtubeAnalytics_v1beta1.reports.html
@@ -75,11 +75,11 @@
 <h1><a href="youtubeAnalytics_v1beta1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1beta1.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, currency=None, filters=None, max_results=None, start_index=None)</a></code></p>
+  <code><a href="#query">query(ids=None, start_date, end_date, metrics, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=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, currency=None, filters=None, max_results=None, start_index=None)</code>
+    <code class="details" id="query">query(ids=None, start_date, end_date, metrics, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</code>
   <pre>Retrieve your YouTube Analytics reports.
 
 Args:
@@ -89,12 +89,13 @@
   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.
   currency: string, The currency to which financial metrics should be converted. The default is US Dollar (USD). If the result contains no financial metrics, this flag will be ignored. Responds with an error if the specified currency is not recognized.
-  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.
+  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.
+  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.
+  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.
   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).
+  include_historical_channel_data: boolean, If set to true historical data (i.e. channel data from before the linking of the channel to the content owner) will be retrieved.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/youtube_v3.channels.html b/docs/dyn/youtube_v3.channels.html
index b0d359e..72c12aa 100644
--- a/docs/dyn/youtube_v3.channels.html
+++ b/docs/dyn/youtube_v3.channels.html
@@ -167,6 +167,9 @@
           "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",
           ],
+          "topicCategories": [ # A list of Wikipedia URLs that describe the channel's content.
+            "A String",
+          ],
         },
         "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
           "relatedPlaylists": {
@@ -439,6 +442,9 @@
     "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",
     ],
+    "topicCategories": [ # A list of Wikipedia URLs that describe the channel's content.
+      "A String",
+    ],
   },
   "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
     "relatedPlaylists": {
@@ -678,6 +684,9 @@
       "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",
       ],
+      "topicCategories": [ # A list of Wikipedia URLs that describe the channel's content.
+        "A String",
+      ],
     },
     "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
       "relatedPlaylists": {
diff --git a/docs/dyn/youtube_v3.html b/docs/dyn/youtube_v3.html
index b2f03ee..60f008e 100644
--- a/docs/dyn/youtube_v3.html
+++ b/docs/dyn/youtube_v3.html
@@ -180,6 +180,11 @@
 <p class="firstline">Returns the subscriptions Resource.</p>
 
 <p class="toc_element">
+  <code><a href="youtube_v3.superChatEvents.html">superChatEvents()</a></code>
+</p>
+<p class="firstline">Returns the superChatEvents 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>
diff --git a/docs/dyn/youtube_v3.liveChatMessages.html b/docs/dyn/youtube_v3.liveChatMessages.html
index 9a53121..5ff0a55 100644
--- a/docs/dyn/youtube_v3.liveChatMessages.html
+++ b/docs/dyn/youtube_v3.liveChatMessages.html
@@ -111,6 +111,13 @@
       "messageRetractedDetails": {
         "retractedMessageId": "A String",
       },
+      "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
+        "tier": 42, # The tier in which the amount belongs to. Lower amounts belong to lower tiers. Starts at 1.
+        "currency": "A String", # The currency in which the purchase was made.
+        "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
+        "userComment": "A String", # The comment added by the user to this Super Chat event.
+        "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
+      },
       "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
         "currency": "A String", # The currency in which the fund was made.
         "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
@@ -130,7 +137,7 @@
         "banType": "A String", # The type of ban.
       },
       "liveChatId": "A String",
-      "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
+      "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action superChatEvent - the user that made the purchase
       "pollEditedDetails": {
         "items": [
           {
@@ -191,6 +198,13 @@
         "messageRetractedDetails": {
           "retractedMessageId": "A String",
         },
+        "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
+          "tier": 42, # The tier in which the amount belongs to. Lower amounts belong to lower tiers. Starts at 1.
+          "currency": "A String", # The currency in which the purchase was made.
+          "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
+          "userComment": "A String", # The comment added by the user to this Super Chat event.
+          "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
+        },
         "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
           "currency": "A String", # The currency in which the fund was made.
           "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
@@ -210,7 +224,7 @@
           "banType": "A String", # The type of ban.
         },
         "liveChatId": "A String",
-        "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
+        "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action superChatEvent - the user that made the purchase
         "pollEditedDetails": {
           "items": [
             {
@@ -291,6 +305,13 @@
             "messageRetractedDetails": {
               "retractedMessageId": "A String",
             },
+            "superChatDetails": { # Details about the Super Chat event, this is only set if the type is 'superChatEvent'.
+              "tier": 42, # The tier in which the amount belongs to. Lower amounts belong to lower tiers. Starts at 1.
+              "currency": "A String", # The currency in which the purchase was made.
+              "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
+              "userComment": "A String", # The comment added by the user to this Super Chat event.
+              "amountMicros": "A String", # The amount purchased by the user, in micros (1,750,000 micros = 1.75).
+            },
             "fanFundingEventDetails": { # Details about the funding event, this is only set if the type is 'fanFundingEvent'.
               "currency": "A String", # The currency in which the fund was made.
               "amountDisplayString": "A String", # A rendered string that displays the fund amount and currency to the user.
@@ -310,7 +331,7 @@
               "banType": "A String", # The type of ban.
             },
             "liveChatId": "A String",
-            "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action
+            "authorChannelId": "A String", # The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action superChatEvent - the user that made the purchase
             "pollEditedDetails": {
               "items": [
                 {
diff --git a/docs/dyn/youtube_v3.superChatEvents.html b/docs/dyn/youtube_v3.superChatEvents.html
new file mode 100644
index 0000000..2b10c1e
--- /dev/null
+++ b/docs/dyn/youtube_v3.superChatEvents.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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.superChatEvents.html">superChatEvents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists Super Chat events for a 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(part, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Lists Super Chat events for a channel.
+
+Args:
+  part: string, The part parameter specifies the superChatEvent resource parts that the API response will include. Supported values are id and snippet. (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.
+  hl: string, The hl parameter instructs the API to retrieve localized resource metadata for a specific application language that the YouTube website supports. The parameter value must be a language code included in the list returned by the i18nLanguages.list method.
+
+If localized resource details are available in that language, the resource's snippet.localized object will contain the localized values. However, if localized details are not available, the snippet.localized object will contain resource details in the resource's default language.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+
+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#superChatEventListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#superChatEventListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of Super Chat purchases that match the request criteria.
+      { # A superChatEvent resource represents a Super Chat purchase on a YouTube channel.
+        "snippet": { # The snippet object contains basic details about the Super Chat event.
+          "commentText": "A String", # The text contents of the comment left by the user.
+          "channelId": "A String", # Channel id where the event occurred.
+          "messageType": 42, # The tier for the paid message, which is based on the amount of money spent to purchase the message.
+          "amountMicros": "A String", # The purchase amount, in micros of the purchase currency. e.g., 1 is represented as 1000000.
+          "currency": "A String", # The currency in which the purchase was made. ISO 4217.
+          "supporterDetails": { # Details about the supporter.
+            "channelId": "A String", # The YouTube channel ID.
+            "displayName": "A String", # The channel's display name.
+            "profileImageUrl": "A String", # The channels's avatar URL.
+            "channelUrl": "A String", # The channel's URL.
+          },
+          "displayString": "A String", # A rendered string that displays the purchase amount and currency (e.g., "$1.00"). The string is rendered for the given language.
+          "createdAt": "A String", # The date and time when the event occurred. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        },
+        "kind": "youtube#superChatEvent", # Identifies what kind of resource this is. Value: the fixed string "youtube#superChatEvent".
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube assigns to uniquely identify the Super Chat event.
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "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.videos.html b/docs/dyn/youtube_v3.videos.html
index def7113..36c23ff 100644
--- a/docs/dyn/youtube_v3.videos.html
+++ b/docs/dyn/youtube_v3.videos.html
@@ -215,6 +215,9 @@
       "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",
       ],
+      "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
+        "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",
       ],
@@ -524,6 +527,9 @@
         "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",
         ],
+        "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
+          "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",
         ],
@@ -860,6 +866,9 @@
             "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",
             ],
+            "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
+              "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",
             ],
@@ -1226,6 +1235,9 @@
       "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",
       ],
+      "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
+        "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",
       ],
@@ -1525,6 +1537,9 @@
         "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",
         ],
+        "topicCategories": [ # A list of Wikipedia URLs that provide a high-level description of the video's content.
+          "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",
         ],
diff --git a/docs/dyn/youtubereporting_v1.jobs.html b/docs/dyn/youtubereporting_v1.jobs.html
index a4cba0e..66c6ace 100644
--- a/docs/dyn/youtubereporting_v1.jobs.html
+++ b/docs/dyn/youtubereporting_v1.jobs.html
@@ -106,14 +106,21 @@
 { # A job creating reports of a specific type.
     "name": "A String", # The name of the job (max. 100 characters).
     "createTime": "A String", # The creation date/time of the job.
-    "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no new reports are generated.
-    "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a ReportType.
-    "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user; otherwise false.
+    "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
+        # new reports are generated.
+    "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
+        # ReportType.
+    "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
+        # otherwise false.
     "id": "A String", # The server-generated ID of the job (max. 40 characters).
   }
 
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -121,9 +128,12 @@
     { # A job creating reports of a specific type.
       "name": "A String", # The name of the job (max. 100 characters).
       "createTime": "A String", # The creation date/time of the job.
-      "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no new reports are generated.
-      "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a ReportType.
-      "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user; otherwise false.
+      "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
+          # new reports are generated.
+      "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
+          # ReportType.
+      "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
+          # otherwise false.
       "id": "A String", # The server-generated ID of the job (max. 40 characters).
     }</pre>
 </div>
@@ -134,13 +144,25 @@
 
 Args:
   jobId: string, The ID of the job to delete. (required)
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
   }</pre>
 </div>
 
@@ -150,8 +172,12 @@
 
 Args:
   jobId: string, The ID of the job to retrieve. (required)
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -159,9 +185,12 @@
     { # A job creating reports of a specific type.
       "name": "A String", # The name of the job (max. 100 characters).
       "createTime": "A String", # The creation date/time of the job.
-      "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no new reports are generated.
-      "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a ReportType.
-      "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user; otherwise false.
+      "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
+          # new reports are generated.
+      "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
+          # ReportType.
+      "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
+          # otherwise false.
       "id": "A String", # The server-generated ID of the job (max. 40 characters).
     }</pre>
 </div>
@@ -171,24 +200,41 @@
   <pre>Lists jobs.
 
 Args:
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
-  pageSize: integer, Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default.
-  pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method.
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
+  pageSize: integer, Requested page size. Server may return fewer jobs than requested.
+If unspecified, server will pick an appropriate default.
+  pageToken: string, A token identifying a page of results the server should return. Typically,
+this is the value of
+ListReportTypesResponse.next_page_token
+returned in response to the previous call to the `ListJobs` method.
   x__xgafv: string, V1 error format.
-  includeSystemManaged: boolean, If set to true, also system-managed jobs will be returned; otherwise only user-created jobs will be returned. System-managed jobs can neither be modified nor deleted.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  includeSystemManaged: boolean, If set to true, also system-managed jobs will be returned; otherwise only
+user-created jobs will be returned. System-managed jobs can neither be
+modified nor deleted.
 
 Returns:
   An object of the form:
 
     { # Response message for ReportingService.ListJobs.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in the ListJobsRequest.page_token field in the subsequent call to `ListJobs` method to retrieve the next page of results.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the
+        # ListJobsRequest.page_token
+        # field in the subsequent call to `ListJobs` method to retrieve the next
+        # page of results.
     "jobs": [ # The list of jobs.
       { # A job creating reports of a specific type.
           "name": "A String", # The name of the job (max. 100 characters).
           "createTime": "A String", # The creation date/time of the job.
-          "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no new reports are generated.
-          "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a ReportType.
-          "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user; otherwise false.
+          "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
+              # new reports are generated.
+          "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
+              # ReportType.
+          "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
+              # otherwise false.
           "id": "A String", # The server-generated ID of the job (max. 40 characters).
         },
     ],
diff --git a/docs/dyn/youtubereporting_v1.jobs.reports.html b/docs/dyn/youtubereporting_v1.jobs.reports.html
index c1aaba7..9071c0a 100644
--- a/docs/dyn/youtubereporting_v1.jobs.reports.html
+++ b/docs/dyn/youtubereporting_v1.jobs.reports.html
@@ -78,8 +78,8 @@
   <code><a href="#get">get(jobId, reportId, onBehalfOfContentOwner=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the metadata of a specific report.</p>
 <p class="toc_element">
-  <code><a href="#list">list(jobId, pageSize=None, startTimeAtOrAfter=None, x__xgafv=None, onBehalfOfContentOwner=None, pageToken=None, createdAfter=None, startTimeBefore=None)</a></code></p>
-<p class="firstline">Lists reports created by a specific job. Returns NOT_FOUND if the job does not exist.</p>
+  <code><a href="#list">list(jobId, pageSize=None, startTimeAtOrAfter=None, x__xgafv=None, pageToken=None, createdAfter=None, onBehalfOfContentOwner=None, startTimeBefore=None)</a></code></p>
+<p class="firstline">Lists reports created by a specific job.</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>
@@ -91,50 +91,75 @@
 Args:
   jobId: string, The ID of the job. (required)
   reportId: string, The ID of the report to retrieve. (required)
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # A report's metadata including the URL from which the report itself can be downloaded.
-    "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
+    { # A report's metadata including the URL from which the report itself can be
+      # downloaded.
     "jobExpireTime": "A String", # The date/time when the job this report belongs to will expire/expired.
-    "id": "A String", # The server-generated ID of the report.
     "jobId": "A String", # The ID of the job that created this report.
-    "startTime": "A String", # The start of the time period that the report instance covers. The value is inclusive.
-    "endTime": "A String", # The end of the time period that the report instance covers. The value is exclusive.
+    "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
+    "startTime": "A String", # The start of the time period that the report instance covers. The value is
+        # inclusive.
+    "id": "A String", # The server-generated ID of the report.
+    "endTime": "A String", # The end of the time period that the report instance covers. The value is
+        # exclusive.
     "createTime": "A String", # The date/time when this report was created.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(jobId, pageSize=None, startTimeAtOrAfter=None, x__xgafv=None, onBehalfOfContentOwner=None, pageToken=None, createdAfter=None, startTimeBefore=None)</code>
-  <pre>Lists reports created by a specific job. Returns NOT_FOUND if the job does not exist.
+    <code class="details" id="list">list(jobId, pageSize=None, startTimeAtOrAfter=None, x__xgafv=None, pageToken=None, createdAfter=None, onBehalfOfContentOwner=None, startTimeBefore=None)</code>
+  <pre>Lists reports created by a specific job.
+Returns NOT_FOUND if the job does not exist.
 
 Args:
   jobId: string, The ID of the job. (required)
-  pageSize: integer, Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
-  startTimeAtOrAfter: string, If set, only reports whose start time is greater than or equal the specified date/time are returned.
+  pageSize: integer, Requested page size. Server may return fewer report types than requested.
+If unspecified, server will pick an appropriate default.
+  startTimeAtOrAfter: string, If set, only reports whose start time is greater than or equal the
+specified date/time are returned.
   x__xgafv: string, V1 error format.
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
-  pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, A token identifying a page of results the server should return. Typically,
+this is the value of
+ListReportsResponse.next_page_token
+returned in response to the previous call to the `ListReports` method.
   createdAfter: string, If set, only reports created after the specified date/time are returned.
-  startTimeBefore: string, If set, only reports whose start time is smaller than the specified date/time are returned.
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
+  startTimeBefore: string, If set, only reports whose start time is smaller than the specified
+date/time are returned.
 
 Returns:
   An object of the form:
 
     { # Response message for ReportingService.ListReports.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in the ListReportsRequest.page_token field in the subsequent call to `ListReports` method to retrieve the next page of results.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the
+        # ListReportsRequest.page_token
+        # field in the subsequent call to `ListReports` method to retrieve the next
+        # page of results.
     "reports": [ # The list of report types.
-      { # A report's metadata including the URL from which the report itself can be downloaded.
-        "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
+      { # A report's metadata including the URL from which the report itself can be
+          # downloaded.
         "jobExpireTime": "A String", # The date/time when the job this report belongs to will expire/expired.
-        "id": "A String", # The server-generated ID of the report.
         "jobId": "A String", # The ID of the job that created this report.
-        "startTime": "A String", # The start of the time period that the report instance covers. The value is inclusive.
-        "endTime": "A String", # The end of the time period that the report instance covers. The value is exclusive.
+        "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
+        "startTime": "A String", # The start of the time period that the report instance covers. The value is
+            # inclusive.
+        "id": "A String", # The server-generated ID of the report.
+        "endTime": "A String", # The end of the time period that the report instance covers. The value is
+            # exclusive.
         "createTime": "A String", # The date/time when this report was created.
       },
     ],
diff --git a/docs/dyn/youtubereporting_v1.media.html b/docs/dyn/youtubereporting_v1.media.html
index 555cb68..8e5d4f1 100644
--- a/docs/dyn/youtubereporting_v1.media.html
+++ b/docs/dyn/youtubereporting_v1.media.html
@@ -75,19 +75,24 @@
 <h1><a href="youtubereporting_v1.html">YouTube Reporting API</a> . <a href="youtubereporting_v1.media.html">media</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#download">download(resourceName, x__xgafv=None)</a></code></p>
-<p class="firstline">Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.</p>
+  <code><a href="#download">download(resourceName=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Method for media download. Download is supported</p>
 <p class="toc_element">
-  <code><a href="#download_media">download_media(resourceName, x__xgafv=None)</a></code></p>
-<p class="firstline">Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.</p>
+  <code><a href="#download_media">download_media(resourceName=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Method for media download. Download is supported</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="download">download(resourceName, x__xgafv=None)</code>
-  <pre>Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.
+    <code class="details" id="download">download(resourceName=None, x__xgafv=None)</code>
+  <pre>Method for media download. Download is supported
+on the URI `/v1/media/{+name}?alt=media`.
 
 Args:
-  resourceName: string, Name of the media that is being downloaded. See ReadRequest.resource_name. (required)
+  resourceName: string, Name of the media that is being downloaded.  See
+ReadRequest.resource_name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -98,12 +103,17 @@
 </div>
 
 <div class="method">
-    <code class="details" id="download_media">download_media(resourceName, x__xgafv=None)</code>
-  <pre>Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.
+    <code class="details" id="download_media">download_media(resourceName=None, x__xgafv=None)</code>
+  <pre>Method for media download. Download is supported
+on the URI `/v1/media/{+name}?alt=media`.
 
 Args:
-  resourceName: string, Name of the media that is being downloaded. See ReadRequest.resource_name. (required)
+  resourceName: string, Name of the media that is being downloaded.  See
+ReadRequest.resource_name. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   The media object as a string.
diff --git a/docs/dyn/youtubereporting_v1.reportTypes.html b/docs/dyn/youtubereporting_v1.reportTypes.html
index 314f1c6..e51234e 100644
--- a/docs/dyn/youtubereporting_v1.reportTypes.html
+++ b/docs/dyn/youtubereporting_v1.reportTypes.html
@@ -86,23 +86,39 @@
   <pre>Lists report types.
 
 Args:
-  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
-  pageSize: integer, Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
-  pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method.
+  onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
+not set, the user is acting for himself (his own channel).
+  pageSize: integer, Requested page size. Server may return fewer report types than requested.
+If unspecified, server will pick an appropriate default.
+  pageToken: string, A token identifying a page of results the server should return. Typically,
+this is the value of
+ListReportTypesResponse.next_page_token
+returned in response to the previous call to the `ListReportTypes` method.
   x__xgafv: string, V1 error format.
-  includeSystemManaged: boolean, If set to true, also system-managed report types will be returned; otherwise only the report types that can be used to create new reporting jobs will be returned.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  includeSystemManaged: boolean, If set to true, also system-managed report types will be returned;
+otherwise only the report types that can be used to create new reporting
+jobs will be returned.
 
 Returns:
   An object of the form:
 
     { # Response message for ReportingService.ListReportTypes.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in the ListReportTypesRequest.page_token field in the subsequent call to `ListReportTypes` method to retrieve the next page of results.
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the
+        # ListReportTypesRequest.page_token
+        # field in the subsequent call to `ListReportTypes` method to retrieve the next
+        # page of results.
     "reportTypes": [ # The list of report types.
       { # A report type.
-        "deprecateTime": "A String", # The date/time when this report type was/will be deprecated.
-        "systemManaged": True or False, # True if this a system-managed report type; otherwise false. Reporting jobs for system-managed report types are created automatically and can thus not be used in the `CreateJob` method.
         "id": "A String", # The ID of the report type (max. 100 characters).
+        "systemManaged": True or False, # True if this a system-managed report type; otherwise false. Reporting jobs
+            # for system-managed report types are created automatically and can thus not
+            # be used in the `CreateJob` method.
         "name": "A String", # The name of the report type (max. 100 characters).
+        "deprecateTime": "A String", # The date/time when this report type was/will be deprecated.
       },
     ],
   }</pre>